diff --git a/go.mod b/go.mod
index 7893df2..5759897 100644
--- a/go.mod
+++ b/go.mod
@@ -3,37 +3,40 @@ module github.com/cyrilix/robocar-tools
go 1.18
require (
- github.com/aws/aws-sdk-go-v2 v1.11.0
- github.com/aws/aws-sdk-go-v2/config v1.10.1
- github.com/aws/aws-sdk-go-v2/service/s3 v1.19.0
- github.com/aws/aws-sdk-go-v2/service/sagemaker v1.19.0
- github.com/cyrilix/robocar-base v0.1.4
- github.com/cyrilix/robocar-protobuf/go v1.0.3
+ github.com/aws/aws-sdk-go-v2 v1.16.5
+ github.com/aws/aws-sdk-go-v2/config v1.15.10
+ github.com/aws/aws-sdk-go-v2/service/s3 v1.26.11
+ github.com/aws/aws-sdk-go-v2/service/sagemaker v1.32.1
+ github.com/cyrilix/robocar-base v0.1.7
+ github.com/cyrilix/robocar-protobuf/go v1.0.5
github.com/disintegration/imaging v1.6.2
- github.com/eclipse/paho.mqtt.golang v1.3.5
+ github.com/eclipse/paho.mqtt.golang v1.4.1
github.com/golang/protobuf v1.5.2
- go.uber.org/zap v1.19.1
- gocv.io/x/gocv v0.28.0
+ go.uber.org/zap v1.21.0
+ gocv.io/x/gocv v0.31.0
)
require (
- github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0 // indirect
- github.com/aws/aws-sdk-go-v2/credentials v1.6.1 // indirect
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.0 // indirect
- github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.0 // indirect
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.0 // indirect
- github.com/aws/aws-sdk-go-v2/internal/ini v1.3.0 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.0 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.0 // indirect
- github.com/aws/aws-sdk-go-v2/service/sso v1.6.0 // indirect
- github.com/aws/aws-sdk-go-v2/service/sts v1.10.0 // indirect
- github.com/aws/smithy-go v1.9.0 // indirect
+ github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.2 // indirect
+ github.com/aws/aws-sdk-go-v2/credentials v1.12.5 // indirect
+ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.6 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.12 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.6 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/ini v1.3.13 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.3 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.2 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.7 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.6 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.6 // indirect
+ github.com/aws/aws-sdk-go-v2/service/sso v1.11.8 // indirect
+ github.com/aws/aws-sdk-go-v2/service/sts v1.16.7 // indirect
+ github.com/aws/smithy-go v1.11.3 // indirect
github.com/gorilla/websocket v1.4.2 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
go.uber.org/atomic v1.7.0 // indirect
go.uber.org/multierr v1.6.0 // indirect
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8 // indirect
golang.org/x/net v0.0.0-20210614182718-04defd469f4e // indirect
- google.golang.org/protobuf v1.26.0 // indirect
+ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
+ google.golang.org/protobuf v1.28.0 // indirect
)
diff --git a/go.sum b/go.sum
index 952531d..6fbf3c8 100644
--- a/go.sum
+++ b/go.sum
@@ -1,55 +1,58 @@
-github.com/aws/aws-sdk-go-v2 v1.11.0 h1:HxyD62DyNhCfiFGUHqJ/xITD6rAjJ7Dm/2nLxLmO4Ag=
-github.com/aws/aws-sdk-go-v2 v1.11.0/go.mod h1:SQfA+m2ltnu1cA0soUkj4dRSsmITiVQUJvBIZjzfPyQ=
-github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0 h1:yVUAwvJC/0WNPbyl0nA3j1L6CW1CN8wBubCRqtG7JLI=
-github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0/go.mod h1:Xn6sxgRuIDflLRJFj5Ev7UxABIkNbccFPV/p8itDReM=
-github.com/aws/aws-sdk-go-v2/config v1.10.1 h1:z/ViqIjW6ZeuLWgTWMTSyZzaVWo/1cWeVf1Uu+RF01E=
-github.com/aws/aws-sdk-go-v2/config v1.10.1/go.mod h1:auIv5pIIn3jIBHNRcVQcsczn6Pfa6Dyv80Fai0ueoJU=
-github.com/aws/aws-sdk-go-v2/credentials v1.6.1 h1:A39JYth2fFCx+omN/gib/jIppx3rRnt2r7UKPq7Mh5Y=
-github.com/aws/aws-sdk-go-v2/credentials v1.6.1/go.mod h1:QyvQk1IYTqBWSi1T6UgT/W8DMxBVa5pVuLFSRLLhGf8=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.0 h1:OpZjuUy8Jt3CA1WgJgBC5Bz+uOjE5Ppx4NFTRaooUuA=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.0/go.mod h1:5E1J3/TTYy6z909QNR0QnXGBpfESYGDqd3O0zqONghU=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.0 h1:zY8cNmbBXt3pzjgWgdIbzpQ6qxoCwt+Nx9JbrAf2mbY=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.0/go.mod h1:NO3Q5ZTTQtO2xIg2+xTXYDiT7knSejfeDm7WGDaOo0U=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.0 h1:Z3aR/OXBnkYK9zXkNkfitHX6SmUBzSsx8VMHbH4Lvhw=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.0/go.mod h1:anlUzBoEWglcUxUQwZA7HQOEVEnQALVZsizAapB2hq8=
-github.com/aws/aws-sdk-go-v2/internal/ini v1.3.0 h1:c10Z7fWxtJCoyc8rv06jdh9xrKnu7bAJiRaKWvTb2mU=
-github.com/aws/aws-sdk-go-v2/internal/ini v1.3.0/go.mod h1:6oXGy4GLpypD3uCh8wcqztigGgmhLToMfjavgh+VySg=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0 h1:lPLbw4Gn59uoKqvOfSnkJr54XWk5Ak1NK20ZEiSWb3U=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0/go.mod h1:80NaCIH9YU3rzTTs/J/ECATjXuRqzo/wB6ukO6MZ0XY=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.0 h1:qGZWS/WgiFY+Zgad2u0gwBHpJxz6Ne401JE7iQI1nKs=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.0/go.mod h1:Mq6AEc+oEjCUlBuLiK5YwW4shSOAKCQ3tXN0sQeYoBA=
-github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.0 h1:0BOlTqnNnrEO04oYKzDxMMe68t107pmIotn18HtVonY=
-github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.0/go.mod h1:xKCZ4YFSF2s4Hnb/J0TLeOsKuGzICzcElaOKNGrVnx4=
-github.com/aws/aws-sdk-go-v2/service/s3 v1.19.0 h1:5mRAms4TjSTOGYsqKYte5kHr1PzpMJSyLThjF3J+hw0=
-github.com/aws/aws-sdk-go-v2/service/s3 v1.19.0/go.mod h1:Gwz3aVctJe6mUY9T//bcALArPUaFmNAy2rTB9qN4No8=
-github.com/aws/aws-sdk-go-v2/service/sagemaker v1.19.0 h1:IzWYAKM+1tnENJGfBhR29EMpO0NpDcwjdcn+Pce4w4g=
-github.com/aws/aws-sdk-go-v2/service/sagemaker v1.19.0/go.mod h1:mRNg/Phr90VO7VXZ9z49YvKGVVwraKxomBS7DfbXliw=
-github.com/aws/aws-sdk-go-v2/service/sso v1.6.0 h1:JDgKIUZOmLFu/Rv6zXLrVTWCmzA0jcTdvsT8iFIKrAI=
-github.com/aws/aws-sdk-go-v2/service/sso v1.6.0/go.mod h1:Q/l0ON1annSU+mc0JybDy1Gy6dnJxIcWjphO6qJPzvM=
-github.com/aws/aws-sdk-go-v2/service/sts v1.10.0 h1:1jh8J+JjYRp+QWKOsaZt7rGUgoyrqiiVwIm+w0ymeUw=
-github.com/aws/aws-sdk-go-v2/service/sts v1.10.0/go.mod h1:jLKCFqS+1T4i7HDqCP9GM4Uk75YW1cS0o82LdxpMyOE=
-github.com/aws/smithy-go v1.9.0 h1:c7FUdEqrQA1/UVKKCNDFQPNKGp4FQg3YW4Ck5SLTG58=
-github.com/aws/smithy-go v1.9.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
+github.com/aws/aws-sdk-go-v2 v1.16.5 h1:Ah9h1TZD9E2S1LzHpViBO3Jz9FPL5+rmflmb8hXirtI=
+github.com/aws/aws-sdk-go-v2 v1.16.5/go.mod h1:Wh7MEsmEApyL5hrWzpDkba4gwAPc5/piwLVLFnCxp48=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.2 h1:LFOGNUQxc/8BlhA4FD+JdYjJKQK6tsz9Xiuh+GUTKAQ=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.2/go.mod h1:u/38zebMi809w7YFnqY/07Tw/FSs6DGhPD95Xiig7XQ=
+github.com/aws/aws-sdk-go-v2/config v1.15.10 h1:0HSMRNGlR0/WlGbeKC9DbBphBwRIK5H4cKUbgqNTKcA=
+github.com/aws/aws-sdk-go-v2/config v1.15.10/go.mod h1:XL4DzwzWdwXBzKdwMdpLkMIaGEQCYRQyzA4UnJaUnNk=
+github.com/aws/aws-sdk-go-v2/credentials v1.12.5 h1:WNNCUTWA0vyMy5t8LfS4iB7QshsW0DsHS/VdhyCGZWM=
+github.com/aws/aws-sdk-go-v2/credentials v1.12.5/go.mod h1:DOcdLlkqUiNGyXnjWgspC3eIAdXhj8q0pO1LiSvrTI4=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.6 h1:+NZzDh/RpcQTpo9xMFUgkseIam6PC+YJbdhbQp1NOXI=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.6/go.mod h1:ClLMcuQA/wcHPmOIfNzNI4Y1Q0oDbmEkbYhMFOzHDh8=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.12 h1:Zt7DDk5V7SyQULUUwIKzsROtVzp/kVvcz15uQx/Tkow=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.12/go.mod h1:Afj/U8svX6sJ77Q+FPWMzabJ9QjbwP32YlopgKALUpg=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.6 h1:eeXdGVtXEe+2Jc49+/vAzna3FAQnUD4AagAw8tzbmfc=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.6/go.mod h1:FwpAKI+FBPIELJIdmQzlLtRe8LQSOreMcM2wBsPMvvc=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.3.13 h1:L/l0WbIpIadRO7i44jZh1/XeXpNDX0sokFppb4ZnXUI=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.3.13/go.mod h1:hiM/y1XPp3DoEPhoVEYc/CZcS58dP6RKJRDFp99wdX0=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.3 h1:m1vDVDoNK4tZAoWtcetHopEdIeUlrNNpdLZ7cwZke6s=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.3/go.mod h1:annFthsb7FiHQd5X9wKDNst9OJvVFY0l0LjQ8zQniJA=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.2 h1:T/ywkX1ed+TsZVQccu/8rRJGxKZF/t0Ivgrb4MHTSeo=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.2/go.mod h1:RnloUnyZ4KN9JStGY1LuQ7Wzqh7V0f8FinmRdHYtuaA=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.7 h1:DYUAx8lWAhIzFiD284oq6RUPKppKk3cyqv/hyUkbWuA=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.7/go.mod h1:6tcs0yjwAW2Z9Yb3Z4X/2tm3u9jNox1dvXxVXTd73Zw=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.6 h1:0ZxYAZ1cn7Swi/US55VKciCE6RhRHIwCKIWaMLdT6pg=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.6/go.mod h1:DxAPjquoEHf3rUHh1b9+47RAaXB8/7cB6jkzCt/GOEI=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.6 h1:SSrqxZVhrO371eg/C8Fnj6kduzltKHj/mJl2swkTBGc=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.6/go.mod h1:TzDyqDka0783D93yVirkcysbibVRxjX5HFJEWms4kKA=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.26.11 h1:Wt0512f6GfLiMd6a+NuOCC9r3/trmzHMTB697CBDUwg=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.26.11/go.mod h1:VMTprbiZWqW44viXgPSQhWdeZ8JTAeJwhO7OXpC/Rsg=
+github.com/aws/aws-sdk-go-v2/service/sagemaker v1.32.1 h1:nOjJ5PevzE1ymPIYnJk6X/+EkeL2aDP1E4HpJvCwlAQ=
+github.com/aws/aws-sdk-go-v2/service/sagemaker v1.32.1/go.mod h1:nF9ZnJeXLYw8PPRAtsBbG3aY1P8c5bUH2zqA/IAzaks=
+github.com/aws/aws-sdk-go-v2/service/sso v1.11.8 h1:GNIdO14AHW5CgnzMml3Tg5Fy/+NqPQvnh1HsC1zpcPo=
+github.com/aws/aws-sdk-go-v2/service/sso v1.11.8/go.mod h1:UqRD9bBt15P0ofRyDZX6CfsIqPpzeHOhZKWzgSuAzpo=
+github.com/aws/aws-sdk-go-v2/service/sts v1.16.7 h1:HLzjwQM9975FQWSF3uENDGHT1gFQm/q3QXu2BYIcI08=
+github.com/aws/aws-sdk-go-v2/service/sts v1.16.7/go.mod h1:lVxTdiiSHY3jb1aeg+BBFtDzZGSUCv6qaNOyEGCJ1AY=
+github.com/aws/smithy-go v1.11.3 h1:DQixirEFM9IaKxX1olZ3ke3nvxRS2xMDteKIDWxozW8=
+github.com/aws/smithy-go v1.11.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
-github.com/cyrilix/robocar-base v0.1.4 h1:nfnjRwAcCfS7xGu6tW9rZhmc/HZIsuDJX5NFhgX5dWE=
-github.com/cyrilix/robocar-base v0.1.4/go.mod h1:Tt04UmbGBiQtU0Cn3wFD0q7XoyokTwIlWYQxThKI+04=
-github.com/cyrilix/robocar-protobuf/go v1.0.3 h1:iPHw2+7FVXG2C4+Th1m11hQ+2RpAQzlxKhc5M7XOa6Q=
-github.com/cyrilix/robocar-protobuf/go v1.0.3/go.mod h1:xb95cK07lYXnKcHZKnGafmAgYRrqZWZgV9LMiJAp+gE=
+github.com/cyrilix/robocar-base v0.1.7 h1:EVzZ0KjigSFpke5f3A/PybEH3WFUEIrYSc3z/dhOZ48=
+github.com/cyrilix/robocar-base v0.1.7/go.mod h1:4E11HQSNy2NT8e7MW188y6ST9C0RzarKyn7sK/3V/Lk=
+github.com/cyrilix/robocar-protobuf/go v1.0.5 h1:PX1At+pf6G7gJwT4LzJLQu3/LPFTTNNlZmZSYtnSELY=
+github.com/cyrilix/robocar-protobuf/go v1.0.5/go.mod h1:Y3AE28K5V7EZxMXp/6A8RhkRz15VOfFy4CjST35FbtQ=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
-github.com/eclipse/paho.mqtt.golang v1.3.5 h1:sWtmgNxYM9P2sP+xEItMozsR3w0cqZFlqnNN1bdl41Y=
-github.com/eclipse/paho.mqtt.golang v1.3.5/go.mod h1:eTzb4gxwwyWpqBUHGQZ4ABAV7+Jgm1PklsYT/eo8Hcc=
+github.com/eclipse/paho.mqtt.golang v1.4.1 h1:tUSpviiL5G3P9SZZJPC4ZULZJsxQKXxfENpMvdbAXAI=
+github.com/eclipse/paho.mqtt.golang v1.4.1/go.mod h1:JGt0RsEwEX+Xa/agj90YJ9d9DH2b7upDZMK9HRbFvCA=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
-github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
+github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/hybridgroup/mjpeg v0.0.0-20140228234708-4680f319790e/go.mod h1:eagM805MRKrioHYuU7iKLUyFPVKqVV6um5DAvCkUtXs=
@@ -72,14 +75,14 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
-go.uber.org/goleak v1.1.11-0.20210813005559-691160354723 h1:sHOAIxRGBp443oHZIPB+HsUGaksVCXVQENPxwTfQdH4=
-go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
+go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
+go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
-go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI=
-go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
-gocv.io/x/gocv v0.28.0 h1:hweRS9Js60YEZPZzjhU5I+0E2ngazquLlO78zwnrFvY=
-gocv.io/x/gocv v0.28.0/go.mod h1:oc6FvfYqfBp99p+yOEzs9tbYF9gOrAQSeL/dyIPefJU=
+go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
+go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
+gocv.io/x/gocv v0.31.0 h1:BHDtK8v+YPvoSPQTTiZB2fM/7BLg6511JqkruY2z6LQ=
+gocv.io/x/gocv v0.31.0/go.mod h1:oc6FvfYqfBp99p+yOEzs9tbYF9gOrAQSeL/dyIPefJU=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8 h1:hVwzHzIUGRjiF7EcUjqNxk3NCfkPxbDKRdnNE1Rpg0U=
@@ -94,6 +97,7 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b
golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -111,11 +115,11 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
-google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
+google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/CHANGELOG.md
index 579640f..59f004d 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/CHANGELOG.md
@@ -1,3 +1,2352 @@
+# Release (2022-06-07)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/auditmanager`: [v1.19.0](service/auditmanager/CHANGELOG.md#v1190-2022-06-07)
+ * **Feature**: This release introduces 2 updates to the Audit Manager API. The roleType and roleArn attributes are now required when you use the CreateAssessment or UpdateAssessment operation. We also added a throttling exception to the RegisterAccount API operation.
+* `github.com/aws/aws-sdk-go-v2/service/costexplorer`: [v1.19.0](service/costexplorer/CHANGELOG.md#v1190-2022-06-07)
+ * **Feature**: Added two new APIs to support cost allocation tags operations: ListCostAllocationTags, UpdateCostAllocationTagsStatus.
+
+# Release (2022-06-06)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmessaging`: [v1.10.0](service/chimesdkmessaging/CHANGELOG.md#v1100-2022-06-06)
+ * **Feature**: This release adds support for searching channels by members via the SearchChannels API, removes required restrictions for Name and Mode in UpdateChannel API and enhances CreateChannel API by exposing member and moderator list as well as channel id as optional parameters.
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.26.0](service/connect/CHANGELOG.md#v1260-2022-06-06)
+ * **Feature**: This release adds a new API, GetCurrentUserData, which returns real-time details about users' current activity.
+
+# Release (2022-06-02)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/applicationinsights`: [v1.16.0](service/applicationinsights/CHANGELOG.md#v1160-2022-06-02)
+ * **Feature**: Provide Account Level onboarding support through CFN/CLI
+* `github.com/aws/aws-sdk-go-v2/service/codeartifact`: [v1.12.6](service/codeartifact/CHANGELOG.md#v1126-2022-06-02)
+ * **Documentation**: Documentation updates for CodeArtifact
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.25.0](service/connect/CHANGELOG.md#v1250-2022-06-02)
+ * **Feature**: This release adds the following features: 1) New APIs to manage (create, list, update) task template resources, 2) Updates to startTaskContact API to support task templates, and 3) new TransferContact API to programmatically transfer in-progress tasks via a contact flow.
+* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.28.0](service/kendra/CHANGELOG.md#v1280-2022-06-02)
+ * **Feature**: Amazon Kendra now provides a data source connector for GitHub. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-github.html
+* `github.com/aws/aws-sdk-go-v2/service/proton`: [v1.14.0](service/proton/CHANGELOG.md#v1140-2022-06-02)
+ * **Feature**: Add new "Components" API to enable users to Create, Delete and Update AWS Proton components.
+* `github.com/aws/aws-sdk-go-v2/service/voiceid`: [v1.10.0](service/voiceid/CHANGELOG.md#v1100-2022-06-02)
+ * **Feature**: Added a new attribute ServerSideEncryptionUpdateDetails to Domain and DomainSummary.
+
+# Release (2022-06-01)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/backupgateway`: [v1.6.0](service/backupgateway/CHANGELOG.md#v160-2022-06-01)
+ * **Feature**: Adds GetGateway and UpdateGatewaySoftwareNow API and adds hypervisor name to UpdateHypervisor API
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmeetings`: [v1.10.0](service/chimesdkmeetings/CHANGELOG.md#v1100-2022-06-01)
+ * **Feature**: Adds support for centrally controlling each participant's ability to send and receive audio, video and screen share within a WebRTC session. Attendee capabilities can be specified when the attendee is created and updated during the session with the new BatchUpdateAttendeeCapabilitiesExcept API.
+* `github.com/aws/aws-sdk-go-v2/service/forecast`: [v1.22.0](service/forecast/CHANGELOG.md#v1220-2022-06-01)
+ * **Feature**: Added Format field to Import and Export APIs in Amazon Forecast. Added TimeSeriesSelector to Create Forecast API.
+* `github.com/aws/aws-sdk-go-v2/service/route53`: [v1.21.0](service/route53/CHANGELOG.md#v1210-2022-06-01)
+ * **Feature**: Add new APIs to support Route 53 IP Based Routing
+
+# Release (2022-05-31)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider`: [v1.17.0](service/cognitoidentityprovider/CHANGELOG.md#v1170-2022-05-31)
+ * **Feature**: Amazon Cognito now supports IP Address propagation for all unauthenticated APIs (e.g. SignUp, ForgotPassword).
+* `github.com/aws/aws-sdk-go-v2/service/drs`: [v1.6.0](service/drs/CHANGELOG.md#v160-2022-05-31)
+ * **Feature**: Changed existing APIs and added new APIs to accommodate using multiple AWS accounts with AWS Elastic Disaster Recovery.
+* `github.com/aws/aws-sdk-go-v2/service/iotsitewise`: [v1.22.0](service/iotsitewise/CHANGELOG.md#v1220-2022-05-31)
+ * **Feature**: This release adds the following new optional field to the IoT SiteWise asset resource: assetDescription.
+* `github.com/aws/aws-sdk-go-v2/service/lookoutmetrics`: [v1.15.0](service/lookoutmetrics/CHANGELOG.md#v1150-2022-05-31)
+ * **Feature**: Adding backtest mode to detectors using the Cloudwatch data source.
+* `github.com/aws/aws-sdk-go-v2/service/transcribe`: [v1.20.0](service/transcribe/CHANGELOG.md#v1200-2022-05-31)
+ * **Feature**: Amazon Transcribe now supports automatic language identification for multi-lingual audio in batch mode.
+
+# Release (2022-05-27)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/appflow`: [v1.16.0](service/appflow/CHANGELOG.md#v1160-2022-05-27)
+ * **Feature**: Adding the following features/changes: Parquet output that preserves typing from the source connector, Failed executions threshold before deactivation for scheduled flows, increasing max size of access and refresh token from 2048 to 4096
+* `github.com/aws/aws-sdk-go-v2/service/datasync`: [v1.17.0](service/datasync/CHANGELOG.md#v1170-2022-05-27)
+ * **Feature**: AWS DataSync now supports TLS encryption in transit, file system policies and access points for EFS locations.
+* `github.com/aws/aws-sdk-go-v2/service/emrserverless`: [v1.1.0](service/emrserverless/CHANGELOG.md#v110-2022-05-27)
+ * **Feature**: This release adds support for Amazon EMR Serverless, a serverless runtime environment that simplifies running analytics applications using the latest open source frameworks such as Apache Spark and Apache Hive.
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.32.0](service/sagemaker/CHANGELOG.md#v1320-2022-05-27)
+ * **Feature**: Amazon SageMaker Notebook Instances now allows configuration of Instance Metadata Service version and Amazon SageMaker Studio now supports G5 instance types.
+
+# Release (2022-05-26)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.45.0](service/ec2/CHANGELOG.md#v1450-2022-05-26)
+ * **Feature**: C7g instances, powered by the latest generation AWS Graviton3 processors, provide the best price performance in Amazon EC2 for compute-intensive workloads.
+* `github.com/aws/aws-sdk-go-v2/service/emrserverless`: [v1.0.0](service/emrserverless/CHANGELOG.md#v100-2022-05-26)
+ * **Release**: New AWS service client module
+ * **Feature**: This release adds support for Amazon EMR Serverless, a serverless runtime environment that simplifies running analytics applications using the latest open source frameworks such as Apache Spark and Apache Hive.
+* `github.com/aws/aws-sdk-go-v2/service/forecast`: [v1.21.0](service/forecast/CHANGELOG.md#v1210-2022-05-26)
+ * **Feature**: Introduced a new field in Auto Predictor as Time Alignment Boundary. It helps in aligning the timestamps generated during Forecast exports
+* `github.com/aws/aws-sdk-go-v2/service/lightsail`: [v1.22.0](service/lightsail/CHANGELOG.md#v1220-2022-05-26)
+ * **Feature**: Amazon Lightsail now supports the ability to configure a Lightsail Container Service to pull images from Amazon ECR private repositories in your account.
+
+# Release (2022-05-25)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/apigateway`: [v1.15.6](service/apigateway/CHANGELOG.md#v1156-2022-05-25)
+ * **Documentation**: Documentation updates for Amazon API Gateway
+* `github.com/aws/aws-sdk-go-v2/service/apprunner`: [v1.12.3](service/apprunner/CHANGELOG.md#v1123-2022-05-25)
+ * **Documentation**: Documentation-only update added for CodeConfiguration.
+* `github.com/aws/aws-sdk-go-v2/service/cloudformation`: [v1.21.0](service/cloudformation/CHANGELOG.md#v1210-2022-05-25)
+ * **Feature**: Add a new parameter statusReason to DescribeStackSetOperation output for additional details
+* `github.com/aws/aws-sdk-go-v2/service/fsx`: [v1.24.0](service/fsx/CHANGELOG.md#v1240-2022-05-25)
+ * **Feature**: This release adds root squash support to FSx for Lustre to restrict root level access from clients by mapping root users to a less-privileged user/group with limited permissions.
+* `github.com/aws/aws-sdk-go-v2/service/lookoutmetrics`: [v1.14.0](service/lookoutmetrics/CHANGELOG.md#v1140-2022-05-25)
+ * **Feature**: Adding AthenaSourceConfig for MetricSet APIs to support Athena as a data source.
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.31.0](service/sagemaker/CHANGELOG.md#v1310-2022-05-25)
+ * **Feature**: Amazon SageMaker Autopilot adds support for manually selecting features from the input dataset using the CreateAutoMLJob API.
+* `github.com/aws/aws-sdk-go-v2/service/secretsmanager`: [v1.15.9](service/secretsmanager/CHANGELOG.md#v1159-2022-05-25)
+ * **Documentation**: Documentation updates for Secrets Manager
+* `github.com/aws/aws-sdk-go-v2/service/voiceid`: [v1.9.0](service/voiceid/CHANGELOG.md#v190-2022-05-25)
+ * **Feature**: VoiceID will now automatically expire Speakers if they haven't been accessed for Enrollment, Re-enrollment or Successful Auth for three years. The Speaker APIs now return a "LastAccessedAt" time for Speakers, and the EvaluateSession API returns "SPEAKER_EXPIRED" Auth Decision for EXPIRED Speakers.
+
+# Release (2022-05-24)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider`: [v1.16.0](service/cognitoidentityprovider/CHANGELOG.md#v1160-2022-05-24)
+ * **Feature**: Amazon Cognito now supports requiring attribute verification (ex. email and phone number) before update.
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.44.0](service/ec2/CHANGELOG.md#v1440-2022-05-24)
+ * **Feature**: Stop Protection feature enables customers to protect their instances from accidental stop actions.
+* `github.com/aws/aws-sdk-go-v2/service/ivschat`: [v1.0.4](service/ivschat/CHANGELOG.md#v104-2022-05-24)
+ * **Documentation**: Doc-only update. For MessageReviewHandler structure, added timeout period in the description of the fallbackResult field
+* `github.com/aws/aws-sdk-go-v2/service/mediaconvert`: [v1.24.0](service/mediaconvert/CHANGELOG.md#v1240-2022-05-24)
+ * **Feature**: AWS Elemental MediaConvert SDK has added support for rules that constrain Automatic-ABR rendition selection when generating ABR package ladders.
+* `github.com/aws/aws-sdk-go-v2/service/networkmanager`: [v1.13.0](service/networkmanager/CHANGELOG.md#v1130-2022-05-24)
+ * **Feature**: This release adds Multi Account API support for a TGW Global Network, to enable and disable AWSServiceAccess with AwsOrganizations for Network Manager service and dependency CloudFormation StackSets service.
+
+# Release (2022-05-23)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/elasticache`: [v1.21.0](service/elasticache/CHANGELOG.md#v1210-2022-05-23)
+ * **Feature**: Added support for encryption in transit for Memcached clusters. Customers can now launch Memcached cluster with encryption in transit enabled when using Memcached version 1.6.12 or later.
+* `github.com/aws/aws-sdk-go-v2/service/forecast`: [v1.20.0](service/forecast/CHANGELOG.md#v1200-2022-05-23)
+ * **Feature**: New APIs for Monitor that help you understand how your predictors perform over time.
+* `github.com/aws/aws-sdk-go-v2/service/personalize`: [v1.20.0](service/personalize/CHANGELOG.md#v1200-2022-05-23)
+ * **Feature**: Adding modelMetrics as part of DescribeRecommender API response for Personalize.
+
+# Release (2022-05-20)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs`: [v1.15.7](service/cloudwatchlogs/CHANGELOG.md#v1157-2022-05-20)
+ * **Documentation**: Doc-only update to publish the new valid values for log retention
+* `github.com/aws/aws-sdk-go-v2/service/comprehend`: [v1.18.0](service/comprehend/CHANGELOG.md#v1180-2022-05-20)
+ * **Feature**: Comprehend releases 14 new entity types for DetectPiiEntities and ContainsPiiEntities APIs.
+
+# Release (2022-05-19)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/gamesparks`: [v1.1.0](service/gamesparks/CHANGELOG.md#v110-2022-05-19)
+ * **Feature**: This release adds an optional DeploymentResult field in the responses of GetStageDeploymentIntegrationTests and ListStageDeploymentIntegrationTests APIs.
+* `github.com/aws/aws-sdk-go-v2/service/lookoutmetrics`: [v1.13.0](service/lookoutmetrics/CHANGELOG.md#v1130-2022-05-19)
+ * **Feature**: In this release we added SnsFormat to SNSConfiguration to support human readable alert.
+
+# Release (2022-05-18)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/appmesh`: [v1.14.0](service/appmesh/CHANGELOG.md#v1140-2022-05-18)
+ * **Feature**: This release updates the existing Create and Update APIs for meshes and virtual nodes by adding a new IP preference field. This new IP preference field can be used to control the IP versions being used with the mesh and allows for IPv6 support within App Mesh.
+* `github.com/aws/aws-sdk-go-v2/service/batch`: [v1.18.3](service/batch/CHANGELOG.md#v1183-2022-05-18)
+ * **Documentation**: Documentation updates for AWS Batch.
+* `github.com/aws/aws-sdk-go-v2/service/greengrassv2`: [v1.16.0](service/greengrassv2/CHANGELOG.md#v1160-2022-05-18)
+ * **Feature**: This release adds the new DeleteDeployment API operation that you can use to delete deployment resources. This release also adds support for discontinued AWS-provided components, so AWS can communicate when a component has any issues that you should consider before you deploy it.
+* `github.com/aws/aws-sdk-go-v2/service/ioteventsdata`: [v1.12.0](service/ioteventsdata/CHANGELOG.md#v1120-2022-05-18)
+ * **Feature**: Introducing new API for deleting detectors: BatchDeleteDetector.
+* `github.com/aws/aws-sdk-go-v2/service/quicksight`: [v1.22.0](service/quicksight/CHANGELOG.md#v1220-2022-05-18)
+ * **Feature**: API UpdatePublicSharingSettings enables IAM admins to enable/disable account level setting for public access of dashboards. When enabled, owners/co-owners for dashboards can enable public access on their dashboards. These dashboards can only be accessed through share link or embedding.
+* `github.com/aws/aws-sdk-go-v2/service/transfer`: [v1.19.0](service/transfer/CHANGELOG.md#v1190-2022-05-18)
+ * **Feature**: AWS Transfer Family now supports SetStat server configuration option, which provides the ability to ignore SetStat command issued by file transfer clients, enabling customers to upload files without any errors.
+
+# Release (2022-05-17)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/internal/ini`: [v1.3.12](internal/ini/CHANGELOG.md#v1312-2022-05-17)
+ * **Bug Fix**: Removes the fuzz testing files from the module, as they are invalid and not used.
+* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.25.0](service/glue/CHANGELOG.md#v1250-2022-05-17)
+ * **Feature**: This release adds a new optional parameter called codeGenNodeConfiguration to CRUD job APIs that allows users to manage visual jobs via APIs. The updated CreateJob and UpdateJob will create jobs that can be viewed in Glue Studio as a visual graph. GetJob can be used to get codeGenNodeConfiguration.
+* `github.com/aws/aws-sdk-go-v2/service/iotsecuretunneling`: [v1.13.1](service/iotsecuretunneling/CHANGELOG.md#v1131-2022-05-17)
+ * **Bug Fix**: Fixes iotsecuretunneling and mobile API clients to use the correct name for signing requests, Fixes [#1686](https://github.com/aws/aws-sdk-go-v2/issues/1686).
+* `github.com/aws/aws-sdk-go-v2/service/kms`: [v1.17.2](service/kms/CHANGELOG.md#v1172-2022-05-17)
+ * **Documentation**: Add HMAC best practice tip, annual rotation of AWS managed keys.
+* `github.com/aws/aws-sdk-go-v2/service/mobile`: [v1.11.5](service/mobile/CHANGELOG.md#v1115-2022-05-17)
+ * **Bug Fix**: Fixes iotsecuretunneling and mobile API clients to use the correct name for signing requests, Fixes [#1686](https://github.com/aws/aws-sdk-go-v2/issues/1686).
+
+# Release (2022-05-16)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/applicationdiscoveryservice`: [v1.13.0](service/applicationdiscoveryservice/CHANGELOG.md#v1130-2022-05-16)
+ * **Feature**: Add Migration Evaluator Collector details to the GetDiscoverySummary API response
+* `github.com/aws/aws-sdk-go-v2/service/cloudfront`: [v1.18.0](service/cloudfront/CHANGELOG.md#v1180-2022-05-16)
+ * **Feature**: Introduced a new error (TooLongCSPInResponseHeadersPolicy) that is returned when the value of the Content-Security-Policy header in a response headers policy exceeds the maximum allowed length.
+* `github.com/aws/aws-sdk-go-v2/service/rekognition`: [v1.18.1](service/rekognition/CHANGELOG.md#v1181-2022-05-16)
+ * **Documentation**: Documentation updates for Amazon Rekognition.
+* `github.com/aws/aws-sdk-go-v2/service/resiliencehub`: [v1.6.0](service/resiliencehub/CHANGELOG.md#v160-2022-05-16)
+ * **Feature**: In this release, we are introducing support for Amazon Elastic Container Service, Amazon Route 53, AWS Elastic Disaster Recovery, AWS Backup in addition to the existing supported Services. This release also supports Terraform file input from S3 and scheduling daily assessments
+* `github.com/aws/aws-sdk-go-v2/service/servicecatalog`: [v1.14.2](service/servicecatalog/CHANGELOG.md#v1142-2022-05-16)
+ * **Documentation**: Updated the descriptions for the ListAcceptedPortfolioShares API description and the PortfolioShareType parameters.
+* `github.com/aws/aws-sdk-go-v2/service/sts`: [v1.16.5](service/sts/CHANGELOG.md#v1165-2022-05-16)
+ * **Documentation**: Documentation updates for AWS Security Token Service.
+* `github.com/aws/aws-sdk-go-v2/service/workspacesweb`: [v1.6.0](service/workspacesweb/CHANGELOG.md#v160-2022-05-16)
+ * **Feature**: Amazon WorkSpaces Web now supports Administrator timeout control
+
+# Release (2022-05-13)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/grafana`: [v1.9.0](service/grafana/CHANGELOG.md#v190-2022-05-13)
+ * **Feature**: This release adds APIs for creating and deleting API keys in an Amazon Managed Grafana workspace.
+
+# Release (2022-05-12)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.43.0](service/ec2/CHANGELOG.md#v1430-2022-05-12)
+ * **Feature**: This release introduces a target type Gateway Load Balancer Endpoint for mirrored traffic. Customers can now specify GatewayLoadBalancerEndpoint option during the creation of a traffic mirror target.
+* `github.com/aws/aws-sdk-go-v2/service/finspacedata`: [v1.10.5](service/finspacedata/CHANGELOG.md#v1105-2022-05-12)
+ * **Documentation**: We've now deprecated CreateSnapshot permission for creating a data view, instead use CreateDataView permission.
+* `github.com/aws/aws-sdk-go-v2/service/iot`: [v1.25.1](service/iot/CHANGELOG.md#v1251-2022-05-12)
+ * **Documentation**: Documentation update for China region ListMetricValues for IoT
+* `github.com/aws/aws-sdk-go-v2/service/ivschat`: [v1.0.2](service/ivschat/CHANGELOG.md#v102-2022-05-12)
+ * **Documentation**: Documentation-only updates for IVS Chat API Reference.
+* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.27.0](service/kendra/CHANGELOG.md#v1270-2022-05-12)
+ * **Feature**: Amazon Kendra now provides a data source connector for Jira. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-jira.html
+* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.23.0](service/lambda/CHANGELOG.md#v1230-2022-05-12)
+ * **Feature**: Lambda releases NodeJs 16 managed runtime to be available in all commercial regions.
+* `github.com/aws/aws-sdk-go-v2/service/lightsail`: [v1.21.0](service/lightsail/CHANGELOG.md#v1210-2022-05-12)
+ * **Feature**: This release adds support to include inactive database bundles in the response of the GetRelationalDatabaseBundles request.
+* `github.com/aws/aws-sdk-go-v2/service/outposts`: [v1.19.1](service/outposts/CHANGELOG.md#v1191-2022-05-12)
+ * **Documentation**: Documentation updates for AWS Outposts.
+* `github.com/aws/aws-sdk-go-v2/service/ssmincidents`: [v1.14.0](service/ssmincidents/CHANGELOG.md#v1140-2022-05-12)
+ * **Feature**: Adding support for dynamic SSM Runbook parameter values. Updating validation pattern for engagements. Adding ConflictException to UpdateReplicationSet API contract.
+* `github.com/aws/aws-sdk-go-v2/service/transfer`: [v1.18.6](service/transfer/CHANGELOG.md#v1186-2022-05-12)
+ * **Documentation**: AWS Transfer Family now accepts ECDSA keys for server host keys
+
+# Release (2022-05-11)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.42.0](service/ec2/CHANGELOG.md#v1420-2022-05-11)
+ * **Feature**: This release updates AWS PrivateLink APIs to support IPv6 for PrivateLink Services and Endpoints of type 'Interface'.
+* `github.com/aws/aws-sdk-go-v2/service/secretsmanager`: [v1.15.7](service/secretsmanager/CHANGELOG.md#v1157-2022-05-11)
+ * **Documentation**: Doc only update for Secrets Manager that fixes several customer-reported issues.
+
+# Release (2022-05-10)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/computeoptimizer`: [v1.17.5](service/computeoptimizer/CHANGELOG.md#v1175-2022-05-10)
+ * **Documentation**: Documentation updates for Compute Optimizer
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.41.0](service/ec2/CHANGELOG.md#v1410-2022-05-10)
+ * **Feature**: Added support for using NitroTPM and UEFI Secure Boot on EC2 instances.
+* `github.com/aws/aws-sdk-go-v2/service/eks`: [v1.21.0](service/eks/CHANGELOG.md#v1210-2022-05-10)
+ * **Feature**: Adds BOTTLEROCKET_ARM_64_NVIDIA and BOTTLEROCKET_x86_64_NVIDIA AMI types to EKS managed nodegroups
+* `github.com/aws/aws-sdk-go-v2/service/emr`: [v1.18.0](service/emr/CHANGELOG.md#v1180-2022-05-10)
+ * **Feature**: This release updates the Amazon EMR ModifyInstanceGroups API to support "MERGE" type cluster reconfiguration. Also, added the ability to specify a particular Amazon Linux release for all nodes in a cluster launch request.
+* `github.com/aws/aws-sdk-go-v2/service/migrationhubrefactorspaces`: [v1.5.5](service/migrationhubrefactorspaces/CHANGELOG.md#v155-2022-05-10)
+ * **Documentation**: AWS Migration Hub Refactor Spaces documentation only update to fix a formatting issue.
+
+# Release (2022-05-09)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/config`: [v1.15.5](config/CHANGELOG.md#v1155-2022-05-09)
+ * **Bug Fix**: Fixes a bug in LoadDefaultConfig to correctly assign ConfigSources so all config resolvers have access to the config sources. This fixes the feature/ec2/imds client not having configuration applied via config.LoadOptions such as EC2IMDSClientEnableState. PR [#1682](https://github.com/aws/aws-sdk-go-v2/pull/1682)
+* `github.com/aws/aws-sdk-go-v2/service/cloudcontrol`: [v1.10.0](service/cloudcontrol/CHANGELOG.md#v1100-2022-05-09)
+ * **Feature**: SDK release for Cloud Control API to include paginators for Python SDK.
+* `github.com/aws/aws-sdk-go-v2/service/evidently`: [v1.7.0](service/evidently/CHANGELOG.md#v170-2022-05-09)
+ * **Feature**: Add detail message inside GetExperimentResults API response to indicate experiment result availability
+* `github.com/aws/aws-sdk-go-v2/service/ssmcontacts`: [v1.13.5](service/ssmcontacts/CHANGELOG.md#v1135-2022-05-09)
+ * **Documentation**: Fixed an error in the DescribeEngagement example for AWS Incident Manager.
+
+# Release (2022-05-06)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.40.0](service/ec2/CHANGELOG.md#v1400-2022-05-06)
+ * **Feature**: Add new state values for IPAMs, IPAM Scopes, and IPAM Pools.
+* `github.com/aws/aws-sdk-go-v2/service/location`: [v1.17.0](service/location/CHANGELOG.md#v1170-2022-05-06)
+ * **Feature**: Amazon Location Service now includes a MaxResults parameter for ListGeofences requests.
+* `github.com/aws/aws-sdk-go-v2/service/mediapackage`: [v1.16.0](service/mediapackage/CHANGELOG.md#v1160-2022-05-06)
+ * **Feature**: This release adds Dvb Dash 2014 as an available profile option for Dash Origin Endpoints.
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.21.1](service/rds/CHANGELOG.md#v1211-2022-05-06)
+ * **Documentation**: Various documentation improvements.
+* `github.com/aws/aws-sdk-go-v2/service/redshift`: [v1.24.0](service/redshift/CHANGELOG.md#v1240-2022-05-06)
+ * **Feature**: Introduces new field 'LoadSampleData' in CreateCluster operation. Customers can now specify 'LoadSampleData' option during creation of a cluster, which results in loading of sample data in the cluster that is created.
+* `github.com/aws/aws-sdk-go-v2/service/securityhub`: [v1.21.1](service/securityhub/CHANGELOG.md#v1211-2022-05-06)
+ * **Documentation**: Documentation updates for Security Hub API reference
+
+# Release (2022-05-05)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/datasync`: [v1.16.0](service/datasync/CHANGELOG.md#v1160-2022-05-05)
+ * **Feature**: AWS DataSync now supports a new ObjectTags Task API option that can be used to control whether Object Tags are transferred.
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.39.0](service/ec2/CHANGELOG.md#v1390-2022-05-05)
+ * **Feature**: Amazon EC2 I4i instances are powered by 3rd generation Intel Xeon Scalable processors and feature up to 30 TB of local AWS Nitro SSD storage
+* `github.com/aws/aws-sdk-go-v2/service/iot`: [v1.25.0](service/iot/CHANGELOG.md#v1250-2022-05-05)
+ * **Feature**: AWS IoT Jobs now allows you to create up to 100,000 active continuous and snapshot jobs by using concurrency control.
+* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.26.0](service/kendra/CHANGELOG.md#v1260-2022-05-05)
+ * **Feature**: AWS Kendra now supports hierarchical facets for a query. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/filtering.html
+
+# Release (2022-05-04)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/backup`: [v1.16.0](service/backup/CHANGELOG.md#v1160-2022-05-04)
+ * **Feature**: Adds support to 2 new filters about job complete time for 3 list jobs APIs in AWS Backup
+* `github.com/aws/aws-sdk-go-v2/service/iotsecuretunneling`: [v1.13.0](service/iotsecuretunneling/CHANGELOG.md#v1130-2022-05-04)
+ * **Feature**: This release introduces a new API RotateTunnelAccessToken that allow revoking the existing tokens and generate new tokens
+* `github.com/aws/aws-sdk-go-v2/service/lightsail`: [v1.20.1](service/lightsail/CHANGELOG.md#v1201-2022-05-04)
+ * **Documentation**: Documentation updates for Lightsail
+* `github.com/aws/aws-sdk-go-v2/service/ssm`: [v1.27.0](service/ssm/CHANGELOG.md#v1270-2022-05-04)
+ * **Feature**: This release adds the TargetMaps parameter in SSM State Manager API.
+
+# Release (2022-05-03)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.38.0](service/ec2/CHANGELOG.md#v1380-2022-05-03)
+ * **Feature**: Adds support for allocating Dedicated Hosts on AWS Outposts. The AllocateHosts API now accepts an OutpostArn request parameter, and the DescribeHosts API now includes an OutpostArn response parameter.
+* `github.com/aws/aws-sdk-go-v2/service/kinesisvideo`: [v1.12.0](service/kinesisvideo/CHANGELOG.md#v1120-2022-05-03)
+ * **Feature**: Add support for multiple image feature related APIs for configuring image generation and notification of a video stream. Add "GET_IMAGES" to the list of supported API names for the GetDataEndpoint API.
+* `github.com/aws/aws-sdk-go-v2/service/kinesisvideoarchivedmedia`: [v1.13.0](service/kinesisvideoarchivedmedia/CHANGELOG.md#v1130-2022-05-03)
+ * **Feature**: Add support for GetImages API for retrieving images from a video stream
+* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.26.8](service/s3/CHANGELOG.md#v1268-2022-05-03)
+ * **Documentation**: Documentation only update for doc bug fixes for the S3 API docs.
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.30.0](service/sagemaker/CHANGELOG.md#v1300-2022-05-03)
+ * **Feature**: SageMaker Autopilot adds new metrics for all candidate models generated by Autopilot experiments; RStudio on SageMaker now allows users to bring your own development environment in a custom image.
+
+# Release (2022-05-02)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/organizations`: [v1.16.0](service/organizations/CHANGELOG.md#v1160-2022-05-02)
+ * **Feature**: This release adds the INVALID_PAYMENT_INSTRUMENT as a fail reason and an error message.
+* `github.com/aws/aws-sdk-go-v2/service/outposts`: [v1.19.0](service/outposts/CHANGELOG.md#v1190-2022-05-02)
+ * **Feature**: This release adds a new API called ListAssets to the Outposts SDK, which lists the hardware assets in an Outpost.
+* `github.com/aws/aws-sdk-go-v2/service/synthetics`: [v1.15.0](service/synthetics/CHANGELOG.md#v1150-2022-05-02)
+ * **Feature**: CloudWatch Synthetics has introduced a new feature to provide customers with an option to delete the underlying resources that Synthetics canary creates when the user chooses to delete the canary.
+
+# Release (2022-04-29)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/codegurureviewer`: [v1.16.0](service/codegurureviewer/CHANGELOG.md#v1160-2022-04-29)
+ * **Feature**: Amazon CodeGuru Reviewer now supports suppressing recommendations from being generated on specific files and directories.
+* `github.com/aws/aws-sdk-go-v2/service/mediaconvert`: [v1.23.0](service/mediaconvert/CHANGELOG.md#v1230-2022-04-29)
+ * **Feature**: AWS Elemental MediaConvert SDK nows supports creation of Dolby Vision profile 8.1, the ability to generate black frames of video, and introduces audio-only DASH and CMAF support.
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.21.0](service/rds/CHANGELOG.md#v1210-2022-04-29)
+ * **Feature**: Feature - Adds support for Internet Protocol Version 6 (IPv6) on RDS database instances.
+* `github.com/aws/aws-sdk-go-v2/service/ssm`: [v1.26.0](service/ssm/CHANGELOG.md#v1260-2022-04-29)
+ * **Feature**: Update the StartChangeRequestExecution, adding TargetMaps to the Runbook parameter
+* `github.com/aws/aws-sdk-go-v2/service/wafv2`: [v1.20.0](service/wafv2/CHANGELOG.md#v1200-2022-04-29)
+ * **Feature**: You can now inspect all request headers and all cookies. You can now specify how to handle oversize body contents in your rules that inspect the body.
+
+# Release (2022-04-28)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/auditmanager`: [v1.18.5](service/auditmanager/CHANGELOG.md#v1185-2022-04-28)
+ * **Documentation**: This release adds documentation updates for Audit Manager. We provided examples of how to use the Custom_ prefix for the keywordValue attribute. We also provided more details about the DeleteAssessmentReport operation.
+* `github.com/aws/aws-sdk-go-v2/service/braket`: [v1.16.0](service/braket/CHANGELOG.md#v1160-2022-04-28)
+ * **Feature**: This release enables Braket Hybrid Jobs with Embedded Simulators to have multiple instances.
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.24.0](service/connect/CHANGELOG.md#v1240-2022-04-28)
+ * **Feature**: This release introduces an API for changing the current agent status of a user in Connect.
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.37.0](service/ec2/CHANGELOG.md#v1370-2022-04-28)
+ * **Feature**: This release adds support to query the public key and creation date of EC2 Key Pairs. Additionally, the format (pem or ppk) of a key pair can be specified when creating a new key pair.
+* `github.com/aws/aws-sdk-go-v2/service/guardduty`: [v1.13.5](service/guardduty/CHANGELOG.md#v1135-2022-04-28)
+ * **Documentation**: Documentation update for API description.
+* `github.com/aws/aws-sdk-go-v2/service/networkfirewall`: [v1.17.0](service/networkfirewall/CHANGELOG.md#v1170-2022-04-28)
+ * **Feature**: AWS Network Firewall adds support for stateful threat signature AWS managed rule groups.
+
+# Release (2022-04-27)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/amplify`: [v1.11.5](service/amplify/CHANGELOG.md#v1115-2022-04-27)
+ * **Documentation**: Documentation only update to support the Amplify GitHub App feature launch
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines`: [v1.0.0](service/chimesdkmediapipelines/CHANGELOG.md#v100-2022-04-27)
+ * **Release**: New AWS service client module
+ * **Feature**: For Amazon Chime SDK meetings, the Amazon Chime Media Pipelines SDK allows builders to capture audio, video, and content share streams. You can also capture meeting events, live transcripts, and data messages. The pipelines save the artifacts to an Amazon S3 bucket that you designate.
+* `github.com/aws/aws-sdk-go-v2/service/cloudtrail`: [v1.16.0](service/cloudtrail/CHANGELOG.md#v1160-2022-04-27)
+ * **Feature**: Increases the retention period maximum to 2557 days. Deprecates unused fields of the ListEventDataStores API response. Updates documentation.
+* `github.com/aws/aws-sdk-go-v2/service/internal/checksum`: [v1.1.5](service/internal/checksum/CHANGELOG.md#v115-2022-04-27)
+ * **Bug Fix**: Fixes a bug that could cause the SigV4 payload hash to be incorrectly encoded, leading to signing errors.
+* `github.com/aws/aws-sdk-go-v2/service/iotwireless`: [v1.19.0](service/iotwireless/CHANGELOG.md#v1190-2022-04-27)
+ * **Feature**: Add list support for event configurations, allow to get and update event configurations by resource type, support LoRaWAN events; Make NetworkAnalyzerConfiguration as a resource, add List, Create, Delete API support; Add FCntStart attribute support for ABP WirelessDevice.
+* `github.com/aws/aws-sdk-go-v2/service/lookoutequipment`: [v1.13.0](service/lookoutequipment/CHANGELOG.md#v1130-2022-04-27)
+ * **Feature**: This release adds the following new features: 1) Introduces an option for automatic schema creation 2) Now allows for Ingestion of data containing most common errors and allows automatic data cleaning 3) Introduces new API ListSensorStatistics that gives further information about the ingested data
+* `github.com/aws/aws-sdk-go-v2/service/rekognition`: [v1.18.0](service/rekognition/CHANGELOG.md#v1180-2022-04-27)
+ * **Feature**: This release adds support to configure stream-processor resources for label detections on streaming-videos. UpateStreamProcessor API is also launched with this release, which could be used to update an existing stream-processor.
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.29.0](service/sagemaker/CHANGELOG.md#v1290-2022-04-27)
+ * **Feature**: Amazon SageMaker Autopilot adds support for custom validation dataset and validation ratio through the CreateAutoMLJob and DescribeAutoMLJob APIs.
+
+# Release (2022-04-26)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/cloudfront`: [v1.17.0](service/cloudfront/CHANGELOG.md#v1170-2022-04-26)
+ * **Feature**: CloudFront now supports the Server-Timing header in HTTP responses sent from CloudFront. You can use this header to view metrics that help you gain insights about the behavior and performance of CloudFront. To use this header, enable it in a response headers policy.
+* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.24.2](service/glue/CHANGELOG.md#v1242-2022-04-26)
+ * **Documentation**: This release adds documentation for the APIs to create, read, delete, list, and batch read of AWS Glue custom patterns, and for Lake Formation configuration settings in the AWS Glue crawler.
+* `github.com/aws/aws-sdk-go-v2/service/ivschat`: [v1.0.0](service/ivschat/CHANGELOG.md#v100-2022-04-26)
+ * **Release**: New AWS service client module
+ * **Feature**: Adds new APIs for IVS Chat, a feature for building interactive chat experiences alongside an IVS broadcast.
+* `github.com/aws/aws-sdk-go-v2/service/lightsail`: [v1.20.0](service/lightsail/CHANGELOG.md#v1200-2022-04-26)
+ * **Feature**: This release adds support for Lightsail load balancer HTTP to HTTPS redirect and TLS policy configuration.
+* `github.com/aws/aws-sdk-go-v2/service/networkfirewall`: [v1.16.0](service/networkfirewall/CHANGELOG.md#v1160-2022-04-26)
+ * **Feature**: AWS Network Firewall now enables customers to use a customer managed AWS KMS key for the encryption of their firewall resources.
+* `github.com/aws/aws-sdk-go-v2/service/pricing`: [v1.14.5](service/pricing/CHANGELOG.md#v1145-2022-04-26)
+ * **Documentation**: Documentation updates for Price List API
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.28.0](service/sagemaker/CHANGELOG.md#v1280-2022-04-26)
+ * **Feature**: SageMaker Inference Recommender now accepts customer KMS key ID for encryption of endpoints and compilation outputs created during inference recommendation.
+
+# Release (2022-04-25)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2`: v1.16.3
+ * **Dependency Update**: Update SDK's internal copy of golang.org/x/sync/singleflight to address issue with test failing due to timeing issues
+* `github.com/aws/aws-sdk-go-v2/credentials`: [v1.12.0](credentials/CHANGELOG.md#v1120-2022-04-25)
+ * **Feature**: Adds Duration and Policy options that can be used when creating stscreds.WebIdentityRoleProvider credentials provider.
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.23.0](service/connect/CHANGELOG.md#v1230-2022-04-25)
+ * **Feature**: This release adds SearchUsers API which can be used to search for users with a Connect Instance
+* `github.com/aws/aws-sdk-go-v2/service/gamelift`: [v1.14.4](service/gamelift/CHANGELOG.md#v1144-2022-04-25)
+ * **Documentation**: Documentation updates for Amazon GameLift.
+* `github.com/aws/aws-sdk-go-v2/service/mq`: [v1.13.0](service/mq/CHANGELOG.md#v1130-2022-04-25)
+ * **Feature**: This release adds the CRITICAL_ACTION_REQUIRED broker state and the ActionRequired API property. CRITICAL_ACTION_REQUIRED informs you when your broker is degraded. ActionRequired provides you with a code which you can use to find instructions in the Developer Guide on how to resolve the issue.
+* `github.com/aws/aws-sdk-go-v2/service/rdsdata`: [v1.12.0](service/rdsdata/CHANGELOG.md#v1120-2022-04-25)
+ * **Feature**: Support to receive SQL query results in the form of a simplified JSON string. This enables developers using the new JSON string format to more easily convert it to an object using popular JSON string parsing libraries.
+* `github.com/aws/aws-sdk-go-v2/service/securityhub`: [v1.21.0](service/securityhub/CHANGELOG.md#v1210-2022-04-25)
+ * **Feature**: Security Hub now lets you opt-out of auto-enabling the defaults standards (CIS and FSBP) in accounts that are auto-enabled with Security Hub via Security Hub's integration with AWS Organizations.
+
+# Release (2022-04-22)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmeetings`: [v1.9.0](service/chimesdkmeetings/CHANGELOG.md#v190-2022-04-22)
+ * **Feature**: Include additional exceptions types.
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.36.0](service/ec2/CHANGELOG.md#v1360-2022-04-22)
+ * **Feature**: Adds support for waiters that automatically poll for a deleted NAT Gateway until it reaches the deleted state.
+
+# Release (2022-04-21)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/elasticache`: [v1.20.5](service/elasticache/CHANGELOG.md#v1205-2022-04-21)
+ * **Documentation**: Doc only update for ElastiCache
+* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.24.0](service/glue/CHANGELOG.md#v1240-2022-04-21)
+ * **Feature**: This release adds APIs to create, read, delete, list, and batch read of Glue custom entity types
+* `github.com/aws/aws-sdk-go-v2/service/iotsitewise`: [v1.21.0](service/iotsitewise/CHANGELOG.md#v1210-2022-04-21)
+ * **Feature**: This release adds 3 new batch data query APIs : BatchGetAssetPropertyValue, BatchGetAssetPropertyValueHistory and BatchGetAssetPropertyAggregates
+* `github.com/aws/aws-sdk-go-v2/service/iottwinmaker`: [v1.7.0](service/iottwinmaker/CHANGELOG.md#v170-2022-04-21)
+ * **Feature**: General availability (GA) for AWS IoT TwinMaker. For more information, see https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/Welcome.html
+* `github.com/aws/aws-sdk-go-v2/service/lookoutmetrics`: [v1.12.0](service/lookoutmetrics/CHANGELOG.md#v1120-2022-04-21)
+ * **Feature**: Added DetectMetricSetConfig API for detecting configuration required for creating metric set from provided S3 data source.
+* `github.com/aws/aws-sdk-go-v2/service/mediatailor`: [v1.17.0](service/mediatailor/CHANGELOG.md#v1170-2022-04-21)
+ * **Feature**: This release introduces tiered channels and adds support for live sources. Customers using a STANDARD channel can now create programs using live sources.
+* `github.com/aws/aws-sdk-go-v2/service/secretsmanager`: [v1.15.5](service/secretsmanager/CHANGELOG.md#v1155-2022-04-21)
+ * **Documentation**: Documentation updates for Secrets Manager
+* `github.com/aws/aws-sdk-go-v2/service/storagegateway`: [v1.17.0](service/storagegateway/CHANGELOG.md#v1170-2022-04-21)
+ * **Feature**: This release adds support for minimum of 5 character length virtual tape barcodes.
+* `github.com/aws/aws-sdk-go-v2/service/wisdom`: [v1.8.0](service/wisdom/CHANGELOG.md#v180-2022-04-21)
+ * **Feature**: This release updates the GetRecommendations API to include a trigger event list for classifying and grouping recommendations.
+
+# Release (2022-04-20)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.22.0](service/connect/CHANGELOG.md#v1220-2022-04-20)
+ * **Feature**: This release adds APIs to search, claim, release, list, update, and describe phone numbers. You can also use them to associate and disassociate contact flows to phone numbers.
+* `github.com/aws/aws-sdk-go-v2/service/macie2`: [v1.21.0](service/macie2/CHANGELOG.md#v1210-2022-04-20)
+ * **Feature**: Sensitive data findings in Amazon Macie now indicate how Macie found the sensitive data that produced a finding (originType).
+* `github.com/aws/aws-sdk-go-v2/service/mgn`: [v1.14.0](service/mgn/CHANGELOG.md#v1140-2022-04-20)
+ * **Feature**: Removed required annotation from input fields in Describe operations requests. Added quotaValue to ServiceQuotaExceededException
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.20.0](service/rds/CHANGELOG.md#v1200-2022-04-20)
+ * **Feature**: Added a new cluster-level attribute to set the capacity range for Aurora Serverless v2 instances.
+
+# Release (2022-04-19)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/autoscaling`: [v1.23.0](service/autoscaling/CHANGELOG.md#v1230-2022-04-19)
+ * **Feature**: EC2 Auto Scaling now adds default instance warm-up times for all scaling activities, health check replacements, and other replacement events in the Auto Scaling instance lifecycle.
+* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.25.0](service/kendra/CHANGELOG.md#v1250-2022-04-19)
+ * **Feature**: Amazon Kendra now provides a data source connector for Quip. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-quip.html
+* `github.com/aws/aws-sdk-go-v2/service/kms`: [v1.17.0](service/kms/CHANGELOG.md#v1170-2022-04-19)
+ * **Feature**: Adds support for KMS keys and APIs that generate and verify HMAC codes
+* `github.com/aws/aws-sdk-go-v2/service/personalize`: [v1.19.0](service/personalize/CHANGELOG.md#v1190-2022-04-19)
+ * **Feature**: Adding StartRecommender and StopRecommender APIs for Personalize.
+* `github.com/aws/aws-sdk-go-v2/service/polly`: [v1.15.0](service/polly/CHANGELOG.md#v1150-2022-04-19)
+ * **Feature**: Amazon Polly adds new Austrian German voice - Hannah. Hannah is available as Neural voice only.
+* `github.com/aws/aws-sdk-go-v2/service/redshift`: [v1.23.0](service/redshift/CHANGELOG.md#v1230-2022-04-19)
+ * **Feature**: Introduces new fields for LogDestinationType and LogExports on EnableLogging requests and Enable/Disable/DescribeLogging responses. Customers can now select CloudWatch Logs as a destination for their Audit Logs.
+* `github.com/aws/aws-sdk-go-v2/service/ssm`: [v1.25.0](service/ssm/CHANGELOG.md#v1250-2022-04-19)
+ * **Feature**: Added offset support for specifying the number of days to wait after the date and time specified by a CRON expression when creating SSM association.
+* `github.com/aws/aws-sdk-go-v2/service/textract`: [v1.15.0](service/textract/CHANGELOG.md#v1150-2022-04-19)
+ * **Feature**: This release adds support for specifying and extracting information from documents using the Queries feature within Analyze Document API
+* `github.com/aws/aws-sdk-go-v2/service/transfer`: [v1.18.4](service/transfer/CHANGELOG.md#v1184-2022-04-19)
+ * **Documentation**: This release contains corrected HomeDirectoryMappings examples for several API functions: CreateAccess, UpdateAccess, CreateUser, and UpdateUser,.
+* `github.com/aws/aws-sdk-go-v2/service/worklink`: [v1.12.0](service/worklink/CHANGELOG.md#v1120-2022-04-19)
+ * **Feature**: Amazon WorkLink is no longer supported. This will be removed in a future version of the SDK.
+
+# Release (2022-04-15)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue`: [v1.9.0](feature/dynamodb/attributevalue/CHANGELOG.md#v190-2022-04-15)
+ * **Feature**: Support has been added for specifying a custom time format when encoding and decoding DynamoDB AttributeValues. Use `EncoderOptions.EncodeTime` to specify a custom time encoding function, and use `DecoderOptions.DecodeTime` for specifying how to handle the corresponding AttributeValues using the format. Thank you [Pablo Lopez](https://github.com/plopezlpz) for this contribution.
+* `github.com/aws/aws-sdk-go-v2/feature/dynamodbstreams/attributevalue`: [v1.9.0](feature/dynamodbstreams/attributevalue/CHANGELOG.md#v190-2022-04-15)
+ * **Feature**: Support has been added for specifying a custom time format when encoding and decoding DynamoDB AttributeValues. Use `EncoderOptions.EncodeTime` to specify a custom time encoding function, and use `DecoderOptions.DecodeTime` for specifying how to handle the corresponding AttributeValues using the format. Thank you [Pablo Lopez](https://github.com/plopezlpz) for this contribution.
+* `github.com/aws/aws-sdk-go-v2/service/athena`: [v1.15.0](service/athena/CHANGELOG.md#v1150-2022-04-15)
+ * **Feature**: This release adds subfields, ErrorMessage, Retryable, to the AthenaError response object in the GetQueryExecution API when a query fails.
+* `github.com/aws/aws-sdk-go-v2/service/lightsail`: [v1.19.0](service/lightsail/CHANGELOG.md#v1190-2022-04-15)
+ * **Feature**: This release adds support to describe the synchronization status of the account-level block public access feature for your Amazon Lightsail buckets.
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.19.0](service/rds/CHANGELOG.md#v1190-2022-04-15)
+ * **Feature**: Removes Amazon RDS on VMware with the deletion of APIs related to Custom Availability Zones and Media installation
+
+# Release (2022-04-14)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/appflow`: [v1.15.0](service/appflow/CHANGELOG.md#v1150-2022-04-14)
+ * **Feature**: Enables users to pass custom token URL parameters for Oauth2 authentication during create connector profile
+* `github.com/aws/aws-sdk-go-v2/service/appstream`: [v1.16.0](service/appstream/CHANGELOG.md#v1160-2022-04-14)
+ * **Feature**: Includes updates for create and update fleet APIs to manage the session scripts locations for Elastic fleets.
+* `github.com/aws/aws-sdk-go-v2/service/batch`: [v1.18.0](service/batch/CHANGELOG.md#v1180-2022-04-14)
+ * **Feature**: Enables configuration updates for compute environments with BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies.
+* `github.com/aws/aws-sdk-go-v2/service/cloudwatch`: [v1.18.1](service/cloudwatch/CHANGELOG.md#v1181-2022-04-14)
+ * **Documentation**: Updates documentation for additional statistics in CloudWatch Metric Streams.
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.35.1](service/ec2/CHANGELOG.md#v1351-2022-04-14)
+ * **Documentation**: Documentation updates for Amazon EC2.
+* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.23.0](service/glue/CHANGELOG.md#v1230-2022-04-14)
+ * **Feature**: Auto Scaling for Glue version 3.0 and later jobs to dynamically scale compute resources. This SDK change provides customers with the auto-scaled DPU usage
+
+# Release (2022-04-13)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/cloudwatch`: [v1.18.0](service/cloudwatch/CHANGELOG.md#v1180-2022-04-13)
+ * **Feature**: Adds support for additional statistics in CloudWatch Metric Streams.
+* `github.com/aws/aws-sdk-go-v2/service/fsx`: [v1.23.0](service/fsx/CHANGELOG.md#v1230-2022-04-13)
+ * **Feature**: This release adds support for deploying FSx for ONTAP file systems in a single Availability Zone.
+
+# Release (2022-04-12)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/devopsguru`: [v1.17.0](service/devopsguru/CHANGELOG.md#v1170-2022-04-12)
+ * **Feature**: This release adds new APIs DeleteInsight to deletes the insight along with the associated anomalies, events and recommendations.
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.35.0](service/ec2/CHANGELOG.md#v1350-2022-04-12)
+ * **Feature**: X2idn and X2iedn instances are powered by 3rd generation Intel Xeon Scalable processors with an all-core turbo frequency up to 3.5 GHzAmazon EC2. C6a instances are powered by 3rd generation AMD EPYC processors.
+* `github.com/aws/aws-sdk-go-v2/service/efs`: [v1.17.0](service/efs/CHANGELOG.md#v1170-2022-04-12)
+ * **Feature**: Amazon EFS adds support for a ThrottlingException when using the CreateAccessPoint API if the account is nearing the AccessPoint limit(120).
+* `github.com/aws/aws-sdk-go-v2/service/iottwinmaker`: [v1.6.0](service/iottwinmaker/CHANGELOG.md#v160-2022-04-12)
+ * **Feature**: This release adds the following new features: 1) ListEntities API now supports search using ExternalId. 2) BatchPutPropertyValue and GetPropertyValueHistory API now allows users to represent time in sub-second level precisions.
+* `github.com/aws/aws-sdk-go-v2/service/kinesis`: [v1.15.4](service/kinesis/CHANGELOG.md#v1154-2022-04-12)
+ * **Bug Fix**: Fixes an issue that caused the unexported constructor function names for EventStream types to be swapped for the event reader and writer respectivly.
+* `github.com/aws/aws-sdk-go-v2/service/lexruntimev2`: [v1.14.4](service/lexruntimev2/CHANGELOG.md#v1144-2022-04-12)
+ * **Bug Fix**: Fixes an issue that caused the unexported constructor function names for EventStream types to be swapped for the event reader and writer respectivly.
+* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.26.5](service/s3/CHANGELOG.md#v1265-2022-04-12)
+ * **Bug Fix**: Fixes an issue that caused the unexported constructor function names for EventStream types to be swapped for the event reader and writer respectivly.
+* `github.com/aws/aws-sdk-go-v2/service/transcribestreaming`: [v1.6.4](service/transcribestreaming/CHANGELOG.md#v164-2022-04-12)
+ * **Bug Fix**: Fixes an issue that caused the unexported constructor function names for EventStream types to be swapped for the event reader and writer respectivly.
+
+# Release (2022-04-11)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/amplifyuibuilder`: [v1.6.0](service/amplifyuibuilder/CHANGELOG.md#v160-2022-04-11)
+ * **Feature**: In this release, we have added the ability to bind events to component level actions.
+* `github.com/aws/aws-sdk-go-v2/service/apprunner`: [v1.12.0](service/apprunner/CHANGELOG.md#v1120-2022-04-11)
+ * **Feature**: This release adds tracing for App Runner services with X-Ray using AWS Distro for OpenTelemetry. New APIs: CreateObservabilityConfiguration, DescribeObservabilityConfiguration, ListObservabilityConfigurations, and DeleteObservabilityConfiguration. Updated APIs: CreateService and UpdateService.
+* `github.com/aws/aws-sdk-go-v2/service/workspaces`: [v1.18.0](service/workspaces/CHANGELOG.md#v1180-2022-04-11)
+ * **Feature**: Added API support that allows customers to create GPU-enabled WorkSpaces using EC2 G4dn instances.
+
+# Release (2022-04-08)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/mediaconvert`: [v1.22.0](service/mediaconvert/CHANGELOG.md#v1220-2022-04-08)
+ * **Feature**: AWS Elemental MediaConvert SDK has added support for the pass-through of WebVTT styling to WebVTT outputs, pass-through of KLV metadata to supported formats, and improved filter support for processing 444/RGB content.
+* `github.com/aws/aws-sdk-go-v2/service/mediapackagevod`: [v1.17.0](service/mediapackagevod/CHANGELOG.md#v1170-2022-04-08)
+ * **Feature**: This release adds ScteMarkersSource as an available field for Dash Packaging Configurations. When set to MANIFEST, MediaPackage will source the SCTE-35 markers from the manifest. When set to SEGMENTS, MediaPackage will source the SCTE-35 markers from the segments.
+* `github.com/aws/aws-sdk-go-v2/service/wafv2`: [v1.19.0](service/wafv2/CHANGELOG.md#v1190-2022-04-08)
+ * **Feature**: Add a new CurrentDefaultVersion field to ListAvailableManagedRuleGroupVersions API response; add a new VersioningSupported boolean to each ManagedRuleGroup returned from ListAvailableManagedRuleGroups API response.
+
+# Release (2022-04-07)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/internal/v4a`: [v1.0.0](internal/v4a/CHANGELOG.md#v100-2022-04-07)
+ * **Release**: New internal v4a signing module location.
+* `github.com/aws/aws-sdk-go-v2/service/docdb`: [v1.18.0](service/docdb/CHANGELOG.md#v1180-2022-04-07)
+ * **Feature**: Added support to enable/disable performance insights when creating or modifying db instances
+* `github.com/aws/aws-sdk-go-v2/service/eventbridge`: [v1.16.0](service/eventbridge/CHANGELOG.md#v1160-2022-04-07)
+ * **Feature**: Adds new EventBridge Endpoint resources for disaster recovery, multi-region failover, and cross-region replication capabilities to help you build resilient event-driven applications.
+* `github.com/aws/aws-sdk-go-v2/service/personalize`: [v1.18.0](service/personalize/CHANGELOG.md#v1180-2022-04-07)
+ * **Feature**: This release provides tagging support in AWS Personalize.
+* `github.com/aws/aws-sdk-go-v2/service/pi`: [v1.14.4](service/pi/CHANGELOG.md#v1144-2022-04-07)
+ * **Documentation**: Adds support for DocumentDB to the Performance Insights API.
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.27.0](service/sagemaker/CHANGELOG.md#v1270-2022-04-07)
+ * **Feature**: Amazon Sagemaker Notebook Instances now supports G5 instance types
+
+# Release (2022-04-06)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/configservice`: [v1.21.0](service/configservice/CHANGELOG.md#v1210-2022-04-06)
+ * **Feature**: Add resourceType enums for AWS::EMR::SecurityConfiguration and AWS::SageMaker::CodeRepository
+* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.24.0](service/kendra/CHANGELOG.md#v1240-2022-04-06)
+ * **Feature**: Amazon Kendra now provides a data source connector for Box. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-box.html
+* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.22.0](service/lambda/CHANGELOG.md#v1220-2022-04-06)
+ * **Feature**: This release adds new APIs for creating and managing Lambda Function URLs and adds a new FunctionUrlAuthType parameter to the AddPermission API. Customers can use Function URLs to create built-in HTTPS endpoints on their functions.
+* `github.com/aws/aws-sdk-go-v2/service/panorama`: [v1.7.0](service/panorama/CHANGELOG.md#v170-2022-04-06)
+ * **Feature**: Added Brand field to device listings.
+
+# Release (2022-04-05)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/datasync`: [v1.15.0](service/datasync/CHANGELOG.md#v1150-2022-04-05)
+ * **Feature**: AWS DataSync now supports Amazon FSx for OpenZFS locations.
+* `github.com/aws/aws-sdk-go-v2/service/fsx`: [v1.22.0](service/fsx/CHANGELOG.md#v1220-2022-04-05)
+ * **Feature**: Provide customers more visibility into file system status by adding new "Misconfigured Unavailable" status for Amazon FSx for Windows File Server.
+* `github.com/aws/aws-sdk-go-v2/service/s3control`: [v1.21.4](service/s3control/CHANGELOG.md#v1214-2022-04-05)
+ * **Documentation**: Documentation-only update for doc bug fixes for the S3 Control API docs.
+* `github.com/aws/aws-sdk-go-v2/service/securityhub`: [v1.20.0](service/securityhub/CHANGELOG.md#v1200-2022-04-05)
+ * **Feature**: Added additional ASFF details for RdsSecurityGroup AutoScalingGroup, ElbLoadBalancer, CodeBuildProject and RedshiftCluster.
+
+# Release (2022-04-04)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/iot`: [v1.24.0](service/iot/CHANGELOG.md#v1240-2022-04-04)
+ * **Feature**: AWS IoT - AWS IoT Device Defender adds support to list metric datapoints collected for IoT devices through the ListMetricValues API
+* `github.com/aws/aws-sdk-go-v2/service/proton`: [v1.13.0](service/proton/CHANGELOG.md#v1130-2022-04-04)
+ * **Feature**: SDK release to support tagging for AWS Proton Repository resource
+* `github.com/aws/aws-sdk-go-v2/service/servicecatalog`: [v1.14.0](service/servicecatalog/CHANGELOG.md#v1140-2022-04-04)
+ * **Feature**: This release adds ProvisioningArtifictOutputKeys to DescribeProvisioningParameters to reference the outputs of a Provisioned Product and deprecates ProvisioningArtifactOutputs.
+* `github.com/aws/aws-sdk-go-v2/service/sms`: [v1.12.4](service/sms/CHANGELOG.md#v1124-2022-04-04)
+ * **Documentation**: Revised product update notice for SMS console deprecation.
+
+# Release (2022-04-01)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.21.0](service/connect/CHANGELOG.md#v1210-2022-04-01)
+ * **Feature**: This release updates these APIs: UpdateInstanceAttribute, DescribeInstanceAttribute and ListInstanceAttributes. You can use it to programmatically enable/disable multi-party conferencing using attribute type MULTI_PARTY_CONFERENCING on the specified Amazon Connect instance.
+
+# Release (2022-03-31)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue`: [v1.8.4](feature/dynamodb/attributevalue/CHANGELOG.md#v184-2022-03-31)
+ * **Documentation**: Fixes documentation typos in Number type's helper methods
+* `github.com/aws/aws-sdk-go-v2/feature/dynamodbstreams/attributevalue`: [v1.8.4](feature/dynamodbstreams/attributevalue/CHANGELOG.md#v184-2022-03-31)
+ * **Documentation**: Fixes documentation typos in Number type's helper methods
+* `github.com/aws/aws-sdk-go-v2/service/auditmanager`: [v1.18.3](service/auditmanager/CHANGELOG.md#v1183-2022-03-31)
+ * **Documentation**: This release adds documentation updates for Audit Manager. The updates provide data deletion guidance when a customer deregisters Audit Manager or deregisters a delegated administrator.
+* `github.com/aws/aws-sdk-go-v2/service/cloudcontrol`: [v1.9.0](service/cloudcontrol/CHANGELOG.md#v190-2022-03-31)
+ * **Feature**: SDK release for Cloud Control API in Amazon Web Services China (Beijing) Region, operated by Sinnet, and Amazon Web Services China (Ningxia) Region, operated by NWCD
+* `github.com/aws/aws-sdk-go-v2/service/databrew`: [v1.20.0](service/databrew/CHANGELOG.md#v1200-2022-03-31)
+ * **Feature**: This AWS Glue Databrew release adds feature to support ORC as an input format.
+* `github.com/aws/aws-sdk-go-v2/service/grafana`: [v1.8.0](service/grafana/CHANGELOG.md#v180-2022-03-31)
+ * **Feature**: This release adds tagging support to the Managed Grafana service. New APIs: TagResource, UntagResource and ListTagsForResource. Updates: add optional field tags to support tagging while calling CreateWorkspace.
+* `github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2`: [v1.0.0](service/pinpointsmsvoicev2/CHANGELOG.md#v100-2022-03-31)
+ * **Release**: New AWS service client module
+ * **Feature**: Amazon Pinpoint now offers a version 2.0 suite of SMS and voice APIs, providing increased control over sending and configuration. This release is a new SDK for sending SMS and voice messages called PinpointSMSVoiceV2.
+* `github.com/aws/aws-sdk-go-v2/service/route53recoverycluster`: [v1.9.0](service/route53recoverycluster/CHANGELOG.md#v190-2022-03-31)
+ * **Feature**: This release adds a new API "ListRoutingControls" to list routing control states using the highly reliable Route 53 ARC data plane endpoints.
+* `github.com/aws/aws-sdk-go-v2/service/workspaces`: [v1.17.0](service/workspaces/CHANGELOG.md#v1170-2022-03-31)
+ * **Feature**: Added APIs that allow you to customize the logo, login message, and help links in the WorkSpaces client login page. To learn more, visit https://docs.aws.amazon.com/workspaces/latest/adminguide/customize-branding.html
+
+# Release (2022-03-30)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.34.0](service/ec2/CHANGELOG.md#v1340-2022-03-30)
+ * **Feature**: This release simplifies the auto-recovery configuration process enabling customers to set the recovery behavior to disabled or default
+* `github.com/aws/aws-sdk-go-v2/service/fms`: [v1.17.0](service/fms/CHANGELOG.md#v1170-2022-03-30)
+ * **Feature**: AWS Firewall Manager now supports the configuration of third-party policies that can use either the centralized or distributed deployment models.
+* `github.com/aws/aws-sdk-go-v2/service/fsx`: [v1.21.0](service/fsx/CHANGELOG.md#v1210-2022-03-30)
+ * **Feature**: This release adds support for modifying throughput capacity for FSx for ONTAP file systems.
+* `github.com/aws/aws-sdk-go-v2/service/iot`: [v1.23.3](service/iot/CHANGELOG.md#v1233-2022-03-30)
+ * **Documentation**: Doc only update for IoT that fixes customer-reported issues.
+* `github.com/aws/aws-sdk-go-v2/service/iotdataplane`: [v1.12.0](service/iotdataplane/CHANGELOG.md#v1120-2022-03-30)
+ * **Feature**: Update the default AWS IoT Core Data Plane endpoint from VeriSign signed to ATS signed. If you have firewalls with strict egress rules, configure the rules to grant you access to data-ats.iot.[region].amazonaws.com or data-ats.iot.[region].amazonaws.com.cn.
+
+# Release (2022-03-29)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/organizations`: [v1.15.0](service/organizations/CHANGELOG.md#v1150-2022-03-29)
+ * **Feature**: This release provides the new CloseAccount API that enables principals in the management account to close any member account within an organization.
+
+# Release (2022-03-28)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/acmpca`: [v1.17.3](service/acmpca/CHANGELOG.md#v1173-2022-03-28)
+ * **Documentation**: Updating service name entities
+* `github.com/aws/aws-sdk-go-v2/service/medialive`: [v1.20.0](service/medialive/CHANGELOG.md#v1200-2022-03-28)
+ * **Feature**: This release adds support for selecting a maintenance window.
+
+# Release (2022-03-25)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/batch`: [v1.17.0](service/batch/CHANGELOG.md#v1170-2022-03-25)
+ * **Feature**: Bug Fix: Fixed a bug where shapes were marked as unboxed and were not serialized and sent over the wire, causing an API error from the service.
+ * This is a breaking change, and has been accepted due to the API operation not being usable due to the members modeled as unboxed (aka value) types. The update changes the members to boxed (aka pointer) types so that the zero value of the members can be handled correctly by the SDK and service. Your application will fail to compile with the updated module. To workaround this you'll need to update your application to use pointer types for the members impacted.
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.33.0](service/ec2/CHANGELOG.md#v1330-2022-03-25)
+ * **Feature**: This is release adds support for Amazon VPC Reachability Analyzer to analyze path through a Transit Gateway.
+* `github.com/aws/aws-sdk-go-v2/service/ssm`: [v1.24.0](service/ssm/CHANGELOG.md#v1240-2022-03-25)
+ * **Feature**: This Patch Manager release supports creating, updating, and deleting Patch Baselines for Rocky Linux OS.
+
+# Release (2022-03-24)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/configservice`: [v1.20.0](service/configservice/CHANGELOG.md#v1200-2022-03-24)
+ * **Feature**: Added new APIs GetCustomRulePolicy and GetOrganizationCustomRulePolicy, and updated existing APIs PutConfigRule, DescribeConfigRule, DescribeConfigRuleEvaluationStatus, PutOrganizationConfigRule, DescribeConfigRule to support a new feature for building AWS Config rules with AWS CloudFormation Guard
+* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.21.0](service/lambda/CHANGELOG.md#v1210-2022-03-24)
+ * **Feature**: Adds support for increased ephemeral storage (/tmp) up to 10GB for Lambda functions. Customers can now provision up to 10 GB of ephemeral storage per function instance, a 20x increase over the previous limit of 512 MB.
+* `github.com/aws/aws-sdk-go-v2/service/transcribe`: [v1.19.0](service/transcribe/CHANGELOG.md#v1190-2022-03-24)
+ * **Feature**: This release adds an additional parameter for subtitling with Amazon Transcribe batch jobs: outputStartIndex.
+
+# Release (2022-03-23)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2`: v1.16.0
+ * **Feature**: Update CredentialsCache to make use of two new optional CredentialsProvider interfaces to give the cache, per provider, behavior how the cache handles credentials that fail to refresh, and adjusting expires time. See [aws.CredentialsCache](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws#CredentialsCache) for more details.
+ * **Feature**: Update `ec2rolecreds` package's `Provider` to implememnt support for CredentialsCache new optional caching strategy interfaces, HandleFailRefreshCredentialsCacheStrategy and AdjustExpiresByCredentialsCacheStrategy.
+* `github.com/aws/aws-sdk-go-v2/credentials`: [v1.11.0](credentials/CHANGELOG.md#v1110-2022-03-23)
+ * **Feature**: Update `ec2rolecreds` package's `Provider` to implememnt support for CredentialsCache new optional caching strategy interfaces, HandleFailRefreshCredentialsCacheStrategy and AdjustExpiresByCredentialsCacheStrategy.
+* `github.com/aws/aws-sdk-go-v2/service/auditmanager`: [v1.18.0](service/auditmanager/CHANGELOG.md#v1180-2022-03-23)
+ * **Feature**: This release updates 1 API parameter, the SnsArn attribute. The character length and regex pattern for the SnsArn attribute have been updated, which enables you to deselect an SNS topic when using the UpdateSettings operation.
+* `github.com/aws/aws-sdk-go-v2/service/ebs`: [v1.15.0](service/ebs/CHANGELOG.md#v1150-2022-03-23)
+ * **Feature**: Increased the maximum supported value for the Timeout parameter of the StartSnapshot API from 60 minutes to 4320 minutes. Changed the HTTP error code for ConflictException from 503 to 409.
+* `github.com/aws/aws-sdk-go-v2/service/elasticache`: [v1.20.2](service/elasticache/CHANGELOG.md#v1202-2022-03-23)
+ * **Documentation**: Doc only update for ElastiCache
+* `github.com/aws/aws-sdk-go-v2/service/gamesparks`: [v1.0.0](service/gamesparks/CHANGELOG.md#v100-2022-03-23)
+ * **Release**: New AWS service client module
+ * **Feature**: Released the preview of Amazon GameSparks, a fully managed AWS service that provides a multi-service backend for game developers.
+* `github.com/aws/aws-sdk-go-v2/service/redshift`: [v1.22.0](service/redshift/CHANGELOG.md#v1220-2022-03-23)
+ * **Feature**: This release adds a new [--encrypted | --no-encrypted] field in restore-from-cluster-snapshot API. Customers can now restore an unencrypted snapshot to a cluster encrypted with AWS Managed Key or their own KMS key.
+* `github.com/aws/aws-sdk-go-v2/service/ssm`: [v1.23.0](service/ssm/CHANGELOG.md#v1230-2022-03-23)
+ * **Feature**: Update AddTagsToResource, ListTagsForResource, and RemoveTagsFromResource APIs to reflect the support for tagging Automation resources. Includes other minor documentation updates.
+* `github.com/aws/aws-sdk-go-v2/service/transfer`: [v1.18.1](service/transfer/CHANGELOG.md#v1181-2022-03-23)
+ * **Documentation**: Documentation updates for AWS Transfer Family to describe how to remove an associated workflow from a server.
+
+# Release (2022-03-22)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/costexplorer`: [v1.18.0](service/costexplorer/CHANGELOG.md#v1180-2022-03-22)
+ * **Feature**: Added three new APIs to support tagging and resource-level authorization on Cost Explorer resources: TagResource, UntagResource, ListTagsForResource. Added optional parameters to CreateCostCategoryDefinition, CreateAnomalySubscription and CreateAnomalyMonitor APIs to support Tag On Create.
+* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.18.2](service/ecs/CHANGELOG.md#v1182-2022-03-22)
+ * **Documentation**: Documentation only update to address tickets
+* `github.com/aws/aws-sdk-go-v2/service/lakeformation`: [v1.16.0](service/lakeformation/CHANGELOG.md#v1160-2022-03-22)
+ * **Feature**: The release fixes the incorrect permissions called out in the documentation - DESCRIBE_TAG, ASSOCIATE_TAG, DELETE_TAG, ALTER_TAG. This trebuchet release fixes the corresponding SDK and documentation.
+* `github.com/aws/aws-sdk-go-v2/service/location`: [v1.16.0](service/location/CHANGELOG.md#v1160-2022-03-22)
+ * **Feature**: Amazon Location Service now includes a MaxResults parameter for GetDevicePositionHistory requests.
+* `github.com/aws/aws-sdk-go-v2/service/polly`: [v1.14.0](service/polly/CHANGELOG.md#v1140-2022-03-22)
+ * **Feature**: Amazon Polly adds new Catalan voice - Arlet. Arlet is available as Neural voice only.
+
+# Release (2022-03-21)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmeetings`: [v1.8.0](service/chimesdkmeetings/CHANGELOG.md#v180-2022-03-21)
+ * **Feature**: Add support for media replication to link multiple WebRTC media sessions together to reach larger and global audiences. Participants connected to a replica session can be granted access to join the primary session and can switch sessions with their existing WebRTC connection
+* `github.com/aws/aws-sdk-go-v2/service/ecr`: [v1.17.0](service/ecr/CHANGELOG.md#v1170-2022-03-21)
+ * **Feature**: This release includes a fix in the DescribeImageScanFindings paginated output.
+* `github.com/aws/aws-sdk-go-v2/service/mediaconnect`: [v1.16.0](service/mediaconnect/CHANGELOG.md#v1160-2022-03-21)
+ * **Feature**: This release adds support for selecting a maintenance window.
+* `github.com/aws/aws-sdk-go-v2/service/quicksight`: [v1.21.0](service/quicksight/CHANGELOG.md#v1210-2022-03-21)
+ * **Feature**: AWS QuickSight Service Features - Expand public API support for group management.
+* `github.com/aws/aws-sdk-go-v2/service/ram`: [v1.16.1](service/ram/CHANGELOG.md#v1161-2022-03-21)
+ * **Documentation**: Document improvements to the RAM API operations and parameter descriptions.
+
+# Release (2022-03-18)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.22.0](service/glue/CHANGELOG.md#v1220-2022-03-18)
+ * **Feature**: Added 9 new APIs for AWS Glue Interactive Sessions: ListSessions, StopSession, CreateSession, GetSession, DeleteSession, RunStatement, GetStatement, ListStatements, CancelStatement
+
+# Release (2022-03-16)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/acmpca`: [v1.17.0](service/acmpca/CHANGELOG.md#v1170-2022-03-16)
+ * **Feature**: AWS Certificate Manager (ACM) Private Certificate Authority (CA) now supports customizable certificate subject names and extensions.
+* `github.com/aws/aws-sdk-go-v2/service/amplifybackend`: [v1.13.0](service/amplifybackend/CHANGELOG.md#v1130-2022-03-16)
+ * **Feature**: Adding the ability to customize Cognito verification messages for email and SMS in CreateBackendAuth and UpdateBackendAuth. Adding deprecation documentation for ForgotPassword in CreateBackendAuth and UpdateBackendAuth
+* `github.com/aws/aws-sdk-go-v2/service/billingconductor`: [v1.0.0](service/billingconductor/CHANGELOG.md#v100-2022-03-16)
+ * **Release**: New AWS service client module
+ * **Feature**: This is the initial SDK release for AWS Billing Conductor. The AWS Billing Conductor is a customizable billing service, allowing you to customize your billing data to match your desired business structure.
+* `github.com/aws/aws-sdk-go-v2/service/s3outposts`: [v1.13.0](service/s3outposts/CHANGELOG.md#v1130-2022-03-16)
+ * **Feature**: S3 on Outposts is releasing a new API, ListSharedEndpoints, that lists all endpoints associated with S3 on Outpost, that has been shared by Resource Access Manager (RAM).
+* `github.com/aws/aws-sdk-go-v2/service/ssmincidents`: [v1.13.0](service/ssmincidents/CHANGELOG.md#v1130-2022-03-16)
+ * **Feature**: Removed incorrect validation pattern for IncidentRecordSource.invokedBy
+
+# Release (2022-03-15)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider`: [v1.15.0](service/cognitoidentityprovider/CHANGELOG.md#v1150-2022-03-15)
+ * **Feature**: Updated EmailConfigurationType and SmsConfigurationType to reflect that you can now choose Amazon SES and Amazon SNS resources in the same Region.
+* `github.com/aws/aws-sdk-go-v2/service/dataexchange`: [v1.15.0](service/dataexchange/CHANGELOG.md#v1150-2022-03-15)
+ * **Feature**: This feature enables data providers to use the RevokeRevision operation to revoke subscriber access to a given revision. Subscribers are unable to interact with assets within a revoked revision.
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.32.0](service/ec2/CHANGELOG.md#v1320-2022-03-15)
+ * **Feature**: Adds the Cascade parameter to the DeleteIpam API. Customers can use this parameter to automatically delete their IPAM, including non-default scopes, pools, cidrs, and allocations. There mustn't be any pools provisioned in the default public scope to use this parameter.
+* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.18.1](service/ecs/CHANGELOG.md#v1181-2022-03-15)
+ * **Documentation**: Documentation only update to address tickets
+* `github.com/aws/aws-sdk-go-v2/service/keyspaces`: [v1.0.2](service/keyspaces/CHANGELOG.md#v102-2022-03-15)
+ * **Documentation**: Fixing formatting issues in CLI and SDK documentation
+* `github.com/aws/aws-sdk-go-v2/service/location`: [v1.15.1](service/location/CHANGELOG.md#v1151-2022-03-15)
+ * **Documentation**: New HERE style "VectorHereExplore" and "VectorHereExploreTruck".
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.18.1](service/rds/CHANGELOG.md#v1181-2022-03-15)
+ * **Documentation**: Various documentation improvements
+* `github.com/aws/aws-sdk-go-v2/service/robomaker`: [v1.17.0](service/robomaker/CHANGELOG.md#v1170-2022-03-15)
+ * **Feature**: This release deprecates ROS, Ubuntu and Gazbeo from RoboMaker Simulation Service Software Suites in favor of user-supplied containers and Relaxed Software Suites.
+
+# Release (2022-03-14)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/configservice`: [v1.19.0](service/configservice/CHANGELOG.md#v1190-2022-03-14)
+ * **Feature**: Add resourceType enums for AWS::ECR::PublicRepository and AWS::EC2::LaunchTemplate
+* `github.com/aws/aws-sdk-go-v2/service/elasticache`: [v1.20.1](service/elasticache/CHANGELOG.md#v1201-2022-03-14)
+ * **Documentation**: Doc only update for ElastiCache
+* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.23.0](service/kendra/CHANGELOG.md#v1230-2022-03-14)
+ * **Feature**: Amazon Kendra now provides a data source connector for Slack. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-slack.html
+* `github.com/aws/aws-sdk-go-v2/service/timestreamquery`: [v1.14.0](service/timestreamquery/CHANGELOG.md#v1140-2022-03-14)
+ * **Feature**: Amazon Timestream Scheduled Queries now support Timestamp datatype in a multi-measure record.
+
+# Release (2022-03-11)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/chime`: [v1.20.0](service/chime/CHANGELOG.md#v1200-2022-03-11)
+ * **Feature**: Chime VoiceConnector Logging APIs will now support MediaMetricLogs. Also CreateMeetingDialOut now returns AccessDeniedException.
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.20.0](service/connect/CHANGELOG.md#v1200-2022-03-11)
+ * **Feature**: This release adds support for enabling Rich Messaging when starting a new chat session via the StartChatContact API. Rich Messaging enables the following formatting options: bold, italics, hyperlinks, bulleted lists, and numbered lists.
+* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.20.0](service/lambda/CHANGELOG.md#v1200-2022-03-11)
+ * **Feature**: Adds PrincipalOrgID support to AddPermission API. Customers can use it to manage permissions to lambda functions at AWS Organizations level.
+* `github.com/aws/aws-sdk-go-v2/service/outposts`: [v1.18.0](service/outposts/CHANGELOG.md#v1180-2022-03-11)
+ * **Feature**: This release adds address filters for listSites
+* `github.com/aws/aws-sdk-go-v2/service/secretsmanager`: [v1.15.1](service/secretsmanager/CHANGELOG.md#v1151-2022-03-11)
+ * **Documentation**: Documentation updates for Secrets Manager.
+* `github.com/aws/aws-sdk-go-v2/service/transcribestreaming`: [v1.6.0](service/transcribestreaming/CHANGELOG.md#v160-2022-03-11)
+ * **Feature**: Amazon Transcribe StartTranscription API now supports additional parameters for Language Identification feature: customVocabularies and customFilterVocabularies
+
+# Release (2022-03-10)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/lexmodelsv2`: [v1.20.0](service/lexmodelsv2/CHANGELOG.md#v1200-2022-03-10)
+ * **Feature**: This release makes slotTypeId an optional parameter in CreateSlot and UpdateSlot APIs in Amazon Lex V2 for model building. Customers can create and update slots without specifying a slot type id.
+* `github.com/aws/aws-sdk-go-v2/service/transcribe`: [v1.18.0](service/transcribe/CHANGELOG.md#v1180-2022-03-10)
+ * **Feature**: Documentation fix for API `StartMedicalTranscriptionJobRequest`, now showing min sample rate as 16khz
+* `github.com/aws/aws-sdk-go-v2/service/transfer`: [v1.18.0](service/transfer/CHANGELOG.md#v1180-2022-03-10)
+ * **Feature**: Adding more descriptive error types for managed workflows
+
+# Release (2022-03-09)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/comprehend`: [v1.17.0](service/comprehend/CHANGELOG.md#v1170-2022-03-09)
+ * **Feature**: Amazon Comprehend now supports extracting the sentiment associated with entities such as brands, products and services from text documents.
+
+# Release (2022-03-08.3)
+
+* No change notes available for this release.
+
+# Release (2022-03-08.2)
+
+* No change notes available for this release.
+
+# Release (2022-03-08)
+
+## General Highlights
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/amplify`: [v1.11.0](service/amplify/CHANGELOG.md#v1110-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/amplifyuibuilder`: [v1.5.0](service/amplifyuibuilder/CHANGELOG.md#v150-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/appflow`: [v1.14.0](service/appflow/CHANGELOG.md#v1140-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/apprunner`: [v1.11.0](service/apprunner/CHANGELOG.md#v1110-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/athena`: [v1.14.0](service/athena/CHANGELOG.md#v1140-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/braket`: [v1.15.0](service/braket/CHANGELOG.md#v1150-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmeetings`: [v1.7.0](service/chimesdkmeetings/CHANGELOG.md#v170-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/cloudtrail`: [v1.15.0](service/cloudtrail/CHANGELOG.md#v1150-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.19.0](service/connect/CHANGELOG.md#v1190-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/devopsguru`: [v1.16.0](service/devopsguru/CHANGELOG.md#v1160-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.31.0](service/ec2/CHANGELOG.md#v1310-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/ecr`: [v1.16.0](service/ecr/CHANGELOG.md#v1160-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.18.0](service/ecs/CHANGELOG.md#v1180-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/elasticache`: [v1.20.0](service/elasticache/CHANGELOG.md#v1200-2022-03-08)
+ * **Documentation**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/finspacedata`: [v1.10.0](service/finspacedata/CHANGELOG.md#v1100-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/fis`: [v1.12.0](service/fis/CHANGELOG.md#v1120-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/fsx`: [v1.20.0](service/fsx/CHANGELOG.md#v1200-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/gamelift`: [v1.14.0](service/gamelift/CHANGELOG.md#v1140-2022-03-08)
+ * **Documentation**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/greengrassv2`: [v1.15.0](service/greengrassv2/CHANGELOG.md#v1150-2022-03-08)
+ * **Documentation**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/internal/checksum`: [v1.1.0](service/internal/checksum/CHANGELOG.md#v110-2022-03-08)
+ * **Feature**: Updates the SDK's checksum validation logic to require opt-in to output response payload validation. The SDK was always preforming output response payload checksum validation, not respecting the output validation model option. Fixes [#1606](https://github.com/aws/aws-sdk-go-v2/issues/1606)
+* `github.com/aws/aws-sdk-go-v2/service/kafkaconnect`: [v1.8.0](service/kafkaconnect/CHANGELOG.md#v180-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.22.0](service/kendra/CHANGELOG.md#v1220-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/keyspaces`: [v1.0.0](service/keyspaces/CHANGELOG.md#v100-2022-03-08)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/macie`: [v1.14.0](service/macie/CHANGELOG.md#v1140-2022-03-08)
+ * **Documentation**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/mediapackage`: [v1.15.0](service/mediapackage/CHANGELOG.md#v1150-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/mgn`: [v1.13.0](service/mgn/CHANGELOG.md#v1130-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/migrationhubrefactorspaces`: [v1.5.0](service/migrationhubrefactorspaces/CHANGELOG.md#v150-2022-03-08)
+ * **Documentation**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/mq`: [v1.12.0](service/mq/CHANGELOG.md#v1120-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/panorama`: [v1.6.0](service/panorama/CHANGELOG.md#v160-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.18.0](service/rds/CHANGELOG.md#v1180-2022-03-08)
+ * **Documentation**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/route53recoverycluster`: [v1.8.0](service/route53recoverycluster/CHANGELOG.md#v180-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry`: [v1.12.0](service/servicecatalogappregistry/CHANGELOG.md#v1120-2022-03-08)
+ * **Documentation**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/sqs`: [v1.18.0](service/sqs/CHANGELOG.md#v1180-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/sts`: [v1.16.0](service/sts/CHANGELOG.md#v1160-2022-03-08)
+ * **Documentation**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/synthetics`: [v1.14.0](service/synthetics/CHANGELOG.md#v1140-2022-03-08)
+ * **Documentation**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/timestreamquery`: [v1.13.0](service/timestreamquery/CHANGELOG.md#v1130-2022-03-08)
+ * **Documentation**: Updated service client model to latest release.
+* `github.com/aws/aws-sdk-go-v2/service/transfer`: [v1.17.0](service/transfer/CHANGELOG.md#v1170-2022-03-08)
+ * **Feature**: Updated service client model to latest release.
+
+# Release (2022-02-24.2)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/autoscaling`: [v1.21.0](service/autoscaling/CHANGELOG.md#v1210-2022-02-242)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/databrew`: [v1.18.0](service/databrew/CHANGELOG.md#v1180-2022-02-242)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/fms`: [v1.15.0](service/fms/CHANGELOG.md#v1150-2022-02-242)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lightsail`: [v1.17.0](service/lightsail/CHANGELOG.md#v1170-2022-02-242)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/route53`: [v1.19.0](service/route53/CHANGELOG.md#v1190-2022-02-242)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/s3control`: [v1.20.0](service/s3control/CHANGELOG.md#v1200-2022-02-242)
+ * **Feature**: API client updated
+
+# Release (2022-02-24)
+
+## General Highlights
+* **Feature**: Adds RetryMaxAttempts and RetryMod to API client Options. This allows the API clients' default Retryer to be configured from the shared configuration files or environment variables. Adding a new Retry mode of `Adaptive`. `Adaptive` retry mode is an experimental mode, adding client rate limiting when throttles reponses are received from an API. See [retry.AdaptiveMode](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws/retry#AdaptiveMode) for more details, and configuration options.
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Bug Fix**: Fixes the AWS Sigv4 signer to trim header value's whitespace when computing the canonical headers block of the string to sign.
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2`: v1.14.0
+ * **Feature**: Add new AdaptiveMode retryer to aws/retry package. This new retryer uses dynamic token bucketing with client ratelimiting when throttle responses are received.
+ * **Feature**: Adds new interface aws.RetryerV2, replacing aws.Retryer and deprecating the GetInitialToken method in favor of GetAttemptToken so Context can be provided. The SDK will use aws.RetryerV2 internally. Wrapping aws.Retryers as aws.RetryerV2 automatically.
+* `github.com/aws/aws-sdk-go-v2/config`: [v1.14.0](config/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: Adds support for loading RetryMaxAttempts and RetryMod from the environment and shared configuration files. These parameters drive how the SDK's API client will initialize its default retryer, if custome retryer has not been specified. See [config](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/config) module and [aws.Config](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws#Config) for more information about and how to use these new options.
+ * **Feature**: Adds support for the `ca_bundle` parameter in shared config and credentials files. The usage of the file is the same as environment variable, `AWS_CA_BUNDLE`, but sourced from shared config. Fixes [#1589](https://github.com/aws/aws-sdk-go-v2/issues/1589)
+* `github.com/aws/aws-sdk-go-v2/credentials`: [v1.9.0](credentials/CHANGELOG.md#v190-2022-02-24)
+ * **Feature**: Adds support for `SourceIdentity` to `stscreds.AssumeRoleProvider` [#1588](https://github.com/aws/aws-sdk-go-v2/pull/1588). Fixes [#1575](https://github.com/aws/aws-sdk-go-v2/issues/1575)
+* `github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue`: [v1.7.0](feature/dynamodb/attributevalue/CHANGELOG.md#v170-2022-02-24)
+ * **Feature**: Fixes [#645](https://github.com/aws/aws-sdk-go-v2/issues/645), [#411](https://github.com/aws/aws-sdk-go-v2/issues/411) by adding support for (un)marshaling AttributeValue maps to Go maps key types of string, number, bool, and types implementing encoding.Text(un)Marshaler interface
+ * **Bug Fix**: Fixes [#1569](https://github.com/aws/aws-sdk-go-v2/issues/1569) inconsistent serialization of Go struct field names
+* `github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression`: [v1.4.0](feature/dynamodb/expression/CHANGELOG.md#v140-2022-02-24)
+ * **Feature**: Add support for expression names with dots via new NameBuilder function NameNoDotSplit, related to [aws/aws-sdk-go#2570](https://github.com/aws/aws-sdk-go/issues/2570)
+* `github.com/aws/aws-sdk-go-v2/feature/dynamodbstreams/attributevalue`: [v1.7.0](feature/dynamodbstreams/attributevalue/CHANGELOG.md#v170-2022-02-24)
+ * **Feature**: Fixes [#645](https://github.com/aws/aws-sdk-go-v2/issues/645), [#411](https://github.com/aws/aws-sdk-go-v2/issues/411) by adding support for (un)marshaling AttributeValue maps to Go maps key types of string, number, bool, and types implementing encoding.Text(un)Marshaler interface
+ * **Bug Fix**: Fixes [#1569](https://github.com/aws/aws-sdk-go-v2/issues/1569) inconsistent serialization of Go struct field names
+* `github.com/aws/aws-sdk-go-v2/service/accessanalyzer`: [v1.14.0](service/accessanalyzer/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/account`: [v1.5.0](service/account/CHANGELOG.md#v150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/acm`: [v1.13.0](service/acm/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/acmpca`: [v1.15.0](service/acmpca/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/alexaforbusiness`: [v1.13.0](service/alexaforbusiness/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/amp`: [v1.13.0](service/amp/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/amplify`: [v1.10.0](service/amplify/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/amplifybackend`: [v1.11.0](service/amplifybackend/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/amplifyuibuilder`: [v1.4.0](service/amplifyuibuilder/CHANGELOG.md#v140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/apigateway`: [v1.14.0](service/apigateway/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi`: [v1.9.0](service/apigatewaymanagementapi/CHANGELOG.md#v190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/apigatewayv2`: [v1.11.0](service/apigatewayv2/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/appconfig`: [v1.11.0](service/appconfig/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/appconfigdata`: [v1.3.0](service/appconfigdata/CHANGELOG.md#v130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/appflow`: [v1.13.0](service/appflow/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/appintegrations`: [v1.12.0](service/appintegrations/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/applicationautoscaling`: [v1.14.0](service/applicationautoscaling/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/applicationcostprofiler`: [v1.8.0](service/applicationcostprofiler/CHANGELOG.md#v180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/applicationdiscoveryservice`: [v1.11.0](service/applicationdiscoveryservice/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/applicationinsights`: [v1.14.0](service/applicationinsights/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/appmesh`: [v1.12.0](service/appmesh/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/apprunner`: [v1.10.0](service/apprunner/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/appstream`: [v1.14.0](service/appstream/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/appsync`: [v1.13.0](service/appsync/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/athena`: [v1.13.0](service/athena/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/auditmanager`: [v1.16.0](service/auditmanager/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/autoscaling`: [v1.20.0](service/autoscaling/CHANGELOG.md#v1200-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/autoscalingplans`: [v1.11.0](service/autoscalingplans/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/backup`: [v1.14.0](service/backup/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/backupgateway`: [v1.4.0](service/backupgateway/CHANGELOG.md#v140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/batch`: [v1.15.0](service/batch/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/braket`: [v1.14.0](service/braket/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/budgets`: [v1.11.0](service/budgets/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/chime`: [v1.18.0](service/chime/CHANGELOG.md#v1180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkidentity`: [v1.8.0](service/chimesdkidentity/CHANGELOG.md#v180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmeetings`: [v1.6.0](service/chimesdkmeetings/CHANGELOG.md#v160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmessaging`: [v1.8.0](service/chimesdkmessaging/CHANGELOG.md#v180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloud9`: [v1.15.0](service/cloud9/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudcontrol`: [v1.7.0](service/cloudcontrol/CHANGELOG.md#v170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/clouddirectory`: [v1.11.0](service/clouddirectory/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudformation`: [v1.19.0](service/cloudformation/CHANGELOG.md#v1190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudfront`: [v1.15.0](service/cloudfront/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudhsm`: [v1.11.0](service/cloudhsm/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudhsmv2`: [v1.12.0](service/cloudhsmv2/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudsearch`: [v1.12.0](service/cloudsearch/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudsearchdomain`: [v1.10.0](service/cloudsearchdomain/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudtrail`: [v1.14.0](service/cloudtrail/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudwatch`: [v1.16.0](service/cloudwatch/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudwatchevents`: [v1.13.0](service/cloudwatchevents/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs`: [v1.14.0](service/cloudwatchlogs/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/codeartifact`: [v1.11.0](service/codeartifact/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/codebuild`: [v1.18.0](service/codebuild/CHANGELOG.md#v1180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/codecommit`: [v1.12.0](service/codecommit/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/codedeploy`: [v1.13.0](service/codedeploy/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/codeguruprofiler`: [v1.11.0](service/codeguruprofiler/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/codegurureviewer`: [v1.14.0](service/codegurureviewer/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/codepipeline`: [v1.12.0](service/codepipeline/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/codestar`: [v1.10.0](service/codestar/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/codestarconnections`: [v1.12.0](service/codestarconnections/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/codestarnotifications`: [v1.10.0](service/codestarnotifications/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cognitoidentity`: [v1.12.0](service/cognitoidentity/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider`: [v1.13.0](service/cognitoidentityprovider/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cognitosync`: [v1.10.0](service/cognitosync/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/comprehend`: [v1.15.0](service/comprehend/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/comprehendmedical`: [v1.12.0](service/comprehendmedical/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/computeoptimizer`: [v1.16.0](service/computeoptimizer/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/configservice`: [v1.17.0](service/configservice/CHANGELOG.md#v1170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.18.0](service/connect/CHANGELOG.md#v1180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/connectcontactlens`: [v1.11.0](service/connectcontactlens/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/connectparticipant`: [v1.10.0](service/connectparticipant/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/costandusagereportservice`: [v1.12.0](service/costandusagereportservice/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/costexplorer`: [v1.16.0](service/costexplorer/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/customerprofiles`: [v1.16.0](service/customerprofiles/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/databasemigrationservice`: [v1.17.0](service/databasemigrationservice/CHANGELOG.md#v1170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/databrew`: [v1.17.0](service/databrew/CHANGELOG.md#v1170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/dataexchange`: [v1.13.0](service/dataexchange/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/datapipeline`: [v1.12.0](service/datapipeline/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/datasync`: [v1.13.0](service/datasync/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/dax`: [v1.10.0](service/dax/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/detective`: [v1.14.0](service/detective/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/devicefarm`: [v1.12.0](service/devicefarm/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/devopsguru`: [v1.15.0](service/devopsguru/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/directconnect`: [v1.16.0](service/directconnect/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/directoryservice`: [v1.12.0](service/directoryservice/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/dlm`: [v1.10.0](service/dlm/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/docdb`: [v1.16.0](service/docdb/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/drs`: [v1.4.0](service/drs/CHANGELOG.md#v140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/dynamodb`: [v1.14.0](service/dynamodb/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/dynamodbstreams`: [v1.12.0](service/dynamodbstreams/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ebs`: [v1.13.0](service/ebs/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.30.0](service/ec2/CHANGELOG.md#v1300-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ec2instanceconnect`: [v1.12.0](service/ec2instanceconnect/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ecr`: [v1.15.0](service/ecr/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ecrpublic`: [v1.12.0](service/ecrpublic/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.17.0](service/ecs/CHANGELOG.md#v1170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/efs`: [v1.15.0](service/efs/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/eks`: [v1.19.0](service/eks/CHANGELOG.md#v1190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/elasticache`: [v1.19.0](service/elasticache/CHANGELOG.md#v1190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk`: [v1.13.0](service/elasticbeanstalk/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/elasticinference`: [v1.10.0](service/elasticinference/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing`: [v1.13.0](service/elasticloadbalancing/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2`: [v1.17.0](service/elasticloadbalancingv2/CHANGELOG.md#v1170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/elasticsearchservice`: [v1.14.0](service/elasticsearchservice/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/elastictranscoder`: [v1.12.0](service/elastictranscoder/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/emr`: [v1.16.0](service/emr/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/emrcontainers`: [v1.12.0](service/emrcontainers/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/eventbridge`: [v1.14.0](service/eventbridge/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/evidently`: [v1.5.0](service/evidently/CHANGELOG.md#v150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/finspace`: [v1.7.0](service/finspace/CHANGELOG.md#v170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/finspacedata`: [v1.9.0](service/finspacedata/CHANGELOG.md#v190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/firehose`: [v1.13.0](service/firehose/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/fis`: [v1.11.0](service/fis/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/fms`: [v1.14.0](service/fms/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/forecast`: [v1.18.0](service/forecast/CHANGELOG.md#v1180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/forecastquery`: [v1.10.0](service/forecastquery/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+ * **Bug Fix**: Fixed an issue that resulted in the wrong service endpoints being constructed.
+* `github.com/aws/aws-sdk-go-v2/service/frauddetector`: [v1.18.0](service/frauddetector/CHANGELOG.md#v1180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/fsx`: [v1.19.0](service/fsx/CHANGELOG.md#v1190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/gamelift`: [v1.13.0](service/gamelift/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/glacier`: [v1.12.0](service/glacier/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/globalaccelerator`: [v1.12.0](service/globalaccelerator/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.20.0](service/glue/CHANGELOG.md#v1200-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/grafana`: [v1.6.0](service/grafana/CHANGELOG.md#v160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/greengrass`: [v1.12.0](service/greengrass/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/greengrassv2`: [v1.14.0](service/greengrassv2/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/groundstation`: [v1.12.0](service/groundstation/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/guardduty`: [v1.12.0](service/guardduty/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/health`: [v1.14.0](service/health/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/healthlake`: [v1.13.0](service/healthlake/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/honeycode`: [v1.11.0](service/honeycode/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iam`: [v1.17.0](service/iam/CHANGELOG.md#v1170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/identitystore`: [v1.13.0](service/identitystore/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/imagebuilder`: [v1.18.0](service/imagebuilder/CHANGELOG.md#v1180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/inspector`: [v1.11.0](service/inspector/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/inspector2`: [v1.5.0](service/inspector2/CHANGELOG.md#v150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/internal/checksum`: [v1.0.0](service/internal/checksum/CHANGELOG.md#v100-2022-02-24)
+ * **Release**: New module for computing checksums
+* `github.com/aws/aws-sdk-go-v2/service/iot`: [v1.22.0](service/iot/CHANGELOG.md#v1220-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iot1clickdevicesservice`: [v1.9.0](service/iot1clickdevicesservice/CHANGELOG.md#v190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iot1clickprojects`: [v1.10.0](service/iot1clickprojects/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotanalytics`: [v1.11.0](service/iotanalytics/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotdataplane`: [v1.10.0](service/iotdataplane/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotdeviceadvisor`: [v1.13.0](service/iotdeviceadvisor/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotevents`: [v1.13.0](service/iotevents/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ioteventsdata`: [v1.10.0](service/ioteventsdata/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotfleethub`: [v1.11.0](service/iotfleethub/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotjobsdataplane`: [v1.10.0](service/iotjobsdataplane/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotsecuretunneling`: [v1.11.0](service/iotsecuretunneling/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotsitewise`: [v1.19.0](service/iotsitewise/CHANGELOG.md#v1190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotthingsgraph`: [v1.11.0](service/iotthingsgraph/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iottwinmaker`: [v1.4.0](service/iottwinmaker/CHANGELOG.md#v140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotwireless`: [v1.17.0](service/iotwireless/CHANGELOG.md#v1170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ivs`: [v1.15.0](service/ivs/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kafka`: [v1.16.0](service/kafka/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kafkaconnect`: [v1.7.0](service/kafkaconnect/CHANGELOG.md#v170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.21.0](service/kendra/CHANGELOG.md#v1210-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kinesis`: [v1.14.0](service/kinesis/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kinesisanalytics`: [v1.12.0](service/kinesisanalytics/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2`: [v1.13.0](service/kinesisanalyticsv2/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kinesisvideo`: [v1.10.0](service/kinesisvideo/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kinesisvideoarchivedmedia`: [v1.11.0](service/kinesisvideoarchivedmedia/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kinesisvideomedia`: [v1.9.0](service/kinesisvideomedia/CHANGELOG.md#v190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kinesisvideosignaling`: [v1.9.0](service/kinesisvideosignaling/CHANGELOG.md#v190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kms`: [v1.15.0](service/kms/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lakeformation`: [v1.14.0](service/lakeformation/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.18.0](service/lambda/CHANGELOG.md#v1180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice`: [v1.15.0](service/lexmodelbuildingservice/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lexmodelsv2`: [v1.18.0](service/lexmodelsv2/CHANGELOG.md#v1180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lexruntimeservice`: [v1.11.0](service/lexruntimeservice/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lexruntimev2`: [v1.13.0](service/lexruntimev2/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/licensemanager`: [v1.14.0](service/licensemanager/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lightsail`: [v1.16.0](service/lightsail/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/location`: [v1.14.0](service/location/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lookoutequipment`: [v1.11.0](service/lookoutequipment/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lookoutmetrics`: [v1.10.0](service/lookoutmetrics/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lookoutvision`: [v1.11.0](service/lookoutvision/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/machinelearning`: [v1.13.0](service/machinelearning/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/macie`: [v1.13.0](service/macie/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/macie2`: [v1.19.0](service/macie2/CHANGELOG.md#v1190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/managedblockchain`: [v1.11.0](service/managedblockchain/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/marketplacecatalog`: [v1.11.0](service/marketplacecatalog/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/marketplacecommerceanalytics`: [v1.10.0](service/marketplacecommerceanalytics/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/marketplaceentitlementservice`: [v1.10.0](service/marketplaceentitlementservice/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/marketplacemetering`: [v1.12.0](service/marketplacemetering/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mediaconnect`: [v1.14.0](service/mediaconnect/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mediaconvert`: [v1.20.0](service/mediaconvert/CHANGELOG.md#v1200-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/medialive`: [v1.18.0](service/medialive/CHANGELOG.md#v1180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mediapackage`: [v1.14.0](service/mediapackage/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mediapackagevod`: [v1.15.0](service/mediapackagevod/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mediastore`: [v1.11.0](service/mediastore/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mediastoredata`: [v1.11.0](service/mediastoredata/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mediatailor`: [v1.15.0](service/mediatailor/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/memorydb`: [v1.8.0](service/memorydb/CHANGELOG.md#v180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mgn`: [v1.12.0](service/mgn/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/migrationhub`: [v1.11.0](service/migrationhub/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/migrationhubconfig`: [v1.11.0](service/migrationhubconfig/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/migrationhubrefactorspaces`: [v1.4.0](service/migrationhubrefactorspaces/CHANGELOG.md#v140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/migrationhubstrategy`: [v1.4.0](service/migrationhubstrategy/CHANGELOG.md#v140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mobile`: [v1.10.0](service/mobile/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mq`: [v1.11.0](service/mq/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mturk`: [v1.12.0](service/mturk/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mwaa`: [v1.11.0](service/mwaa/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/neptune`: [v1.15.0](service/neptune/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/networkfirewall`: [v1.14.0](service/networkfirewall/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/networkmanager`: [v1.11.0](service/networkmanager/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/nimble`: [v1.11.0](service/nimble/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/opensearch`: [v1.8.0](service/opensearch/CHANGELOG.md#v180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/opsworks`: [v1.12.0](service/opsworks/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/opsworkscm`: [v1.13.0](service/opsworkscm/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/organizations`: [v1.13.0](service/organizations/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/outposts`: [v1.16.0](service/outposts/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/panorama`: [v1.5.0](service/panorama/CHANGELOG.md#v150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/personalize`: [v1.16.0](service/personalize/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/personalizeevents`: [v1.10.0](service/personalizeevents/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/personalizeruntime`: [v1.10.0](service/personalizeruntime/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/pi`: [v1.13.0](service/pi/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/pinpoint`: [v1.15.0](service/pinpoint/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/pinpointemail`: [v1.10.0](service/pinpointemail/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoice`: [v1.9.0](service/pinpointsmsvoice/CHANGELOG.md#v190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/polly`: [v1.12.0](service/polly/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/pricing`: [v1.13.0](service/pricing/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/proton`: [v1.11.0](service/proton/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/qldb`: [v1.13.0](service/qldb/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/qldbsession`: [v1.12.0](service/qldbsession/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/quicksight`: [v1.19.0](service/quicksight/CHANGELOG.md#v1190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ram`: [v1.15.0](service/ram/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rbin`: [v1.5.0](service/rbin/CHANGELOG.md#v150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.17.0](service/rds/CHANGELOG.md#v1170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rdsdata`: [v1.10.0](service/rdsdata/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/redshift`: [v1.20.0](service/redshift/CHANGELOG.md#v1200-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/redshiftdata`: [v1.14.0](service/redshiftdata/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rekognition`: [v1.16.0](service/rekognition/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/resiliencehub`: [v1.4.0](service/resiliencehub/CHANGELOG.md#v140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/resourcegroups`: [v1.11.0](service/resourcegroups/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi`: [v1.12.0](service/resourcegroupstaggingapi/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/robomaker`: [v1.15.0](service/robomaker/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/route53`: [v1.18.0](service/route53/CHANGELOG.md#v1180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/route53domains`: [v1.11.0](service/route53domains/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/route53recoverycluster`: [v1.7.0](service/route53recoverycluster/CHANGELOG.md#v170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig`: [v1.8.0](service/route53recoverycontrolconfig/CHANGELOG.md#v180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness`: [v1.7.0](service/route53recoveryreadiness/CHANGELOG.md#v170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/route53resolver`: [v1.14.0](service/route53resolver/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rum`: [v1.5.0](service/rum/CHANGELOG.md#v150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.25.0](service/s3/CHANGELOG.md#v1250-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/s3control`: [v1.19.0](service/s3control/CHANGELOG.md#v1190-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/s3outposts`: [v1.11.0](service/s3outposts/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.25.0](service/sagemaker/CHANGELOG.md#v1250-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sagemakera2iruntime`: [v1.11.0](service/sagemakera2iruntime/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sagemakeredge`: [v1.10.0](service/sagemakeredge/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sagemakerfeaturestoreruntime`: [v1.10.0](service/sagemakerfeaturestoreruntime/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sagemakerruntime`: [v1.14.0](service/sagemakerruntime/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/savingsplans`: [v1.10.0](service/savingsplans/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/schemas`: [v1.13.0](service/schemas/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/secretsmanager`: [v1.14.0](service/secretsmanager/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/securityhub`: [v1.18.0](service/securityhub/CHANGELOG.md#v1180-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository`: [v1.10.0](service/serverlessapplicationrepository/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/servicecatalog`: [v1.12.0](service/servicecatalog/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry`: [v1.11.0](service/servicecatalogappregistry/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/servicediscovery`: [v1.16.0](service/servicediscovery/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/servicequotas`: [v1.12.0](service/servicequotas/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ses`: [v1.13.0](service/ses/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sesv2`: [v1.12.0](service/sesv2/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sfn`: [v1.12.0](service/sfn/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/shield`: [v1.15.0](service/shield/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/signer`: [v1.12.0](service/signer/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sms`: [v1.11.0](service/sms/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/snowball`: [v1.14.0](service/snowball/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/snowdevicemanagement`: [v1.7.0](service/snowdevicemanagement/CHANGELOG.md#v170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sns`: [v1.16.0](service/sns/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sqs`: [v1.17.0](service/sqs/CHANGELOG.md#v1170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ssm`: [v1.21.0](service/ssm/CHANGELOG.md#v1210-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ssmcontacts`: [v1.12.0](service/ssmcontacts/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ssmincidents`: [v1.11.0](service/ssmincidents/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sso`: [v1.10.0](service/sso/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ssoadmin`: [v1.13.0](service/ssoadmin/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ssooidc`: [v1.11.0](service/ssooidc/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/storagegateway`: [v1.15.0](service/storagegateway/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sts`: [v1.15.0](service/sts/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/support`: [v1.12.0](service/support/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/swf`: [v1.12.0](service/swf/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/synthetics`: [v1.13.0](service/synthetics/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/textract`: [v1.13.0](service/textract/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/timestreamquery`: [v1.12.0](service/timestreamquery/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/timestreamwrite`: [v1.12.0](service/timestreamwrite/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/transcribe`: [v1.16.0](service/transcribe/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/transcribestreaming`: [v1.4.0](service/transcribestreaming/CHANGELOG.md#v140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/transfer`: [v1.16.0](service/transfer/CHANGELOG.md#v1160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/translate`: [v1.12.0](service/translate/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/voiceid`: [v1.7.0](service/voiceid/CHANGELOG.md#v170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/waf`: [v1.10.0](service/waf/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/wafregional`: [v1.11.0](service/wafregional/CHANGELOG.md#v1110-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/wafv2`: [v1.17.0](service/wafv2/CHANGELOG.md#v1170-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/wellarchitected`: [v1.13.0](service/wellarchitected/CHANGELOG.md#v1130-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/wisdom`: [v1.6.0](service/wisdom/CHANGELOG.md#v160-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/workdocs`: [v1.10.0](service/workdocs/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/worklink`: [v1.10.0](service/worklink/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/workmail`: [v1.14.0](service/workmail/CHANGELOG.md#v1140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/workmailmessageflow`: [v1.10.0](service/workmailmessageflow/CHANGELOG.md#v1100-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/workspaces`: [v1.15.0](service/workspaces/CHANGELOG.md#v1150-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/workspacesweb`: [v1.4.0](service/workspacesweb/CHANGELOG.md#v140-2022-02-24)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/xray`: [v1.12.0](service/xray/CHANGELOG.md#v1120-2022-02-24)
+ * **Feature**: API client updated
+
+# Release (2022-01-28)
+
+## General Highlights
+* **Bug Fix**: Fixes the SDK's handling of `duration_sections` in the shared credentials file or specified in multiple shared config and shared credentials files under the same profile. [#1568](https://github.com/aws/aws-sdk-go-v2/pull/1568). Thanks to [Amir Szekely](https://github.com/kichik) for help reproduce this bug.
+* **Bug Fix**: Updates SDK API client deserialization to pre-allocate byte slice and string response payloads, [#1565](https://github.com/aws/aws-sdk-go-v2/pull/1565). Thanks to [Tyson Mote](https://github.com/tysonmote) for submitting this PR.
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/config`: [v1.13.1](config/CHANGELOG.md#v1131-2022-01-28)
+ * **Bug Fix**: Fixes LoadDefaultConfig handling of errors returned by passed in functional options. Previously errors returned from the LoadOptions passed into LoadDefaultConfig were incorrectly ignored. [#1562](https://github.com/aws/aws-sdk-go-v2/pull/1562). Thanks to [Pinglei Guo](https://github.com/pingleig) for submitting this PR.
+ * **Bug Fix**: Updates `config` module to use os.UserHomeDir instead of hard coded environment variable for OS. [#1563](https://github.com/aws/aws-sdk-go-v2/pull/1563)
+* `github.com/aws/aws-sdk-go-v2/service/applicationinsights`: [v1.13.0](service/applicationinsights/CHANGELOG.md#v1130-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/cloudtrail`: [v1.13.1](service/cloudtrail/CHANGELOG.md#v1131-2022-01-28)
+ * **Documentation**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/codegurureviewer`: [v1.13.1](service/codegurureviewer/CHANGELOG.md#v1131-2022-01-28)
+ * **Documentation**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/configservice`: [v1.16.0](service/configservice/CHANGELOG.md#v1160-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.17.0](service/connect/CHANGELOG.md#v1170-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/ebs`: [v1.12.1](service/ebs/CHANGELOG.md#v1121-2022-01-28)
+ * **Documentation**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.29.0](service/ec2/CHANGELOG.md#v1290-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/ec2instanceconnect`: [v1.11.0](service/ec2instanceconnect/CHANGELOG.md#v1110-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/efs`: [v1.14.0](service/efs/CHANGELOG.md#v1140-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/fis`: [v1.10.0](service/fis/CHANGELOG.md#v1100-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/frauddetector`: [v1.17.0](service/frauddetector/CHANGELOG.md#v1170-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/fsx`: [v1.18.0](service/fsx/CHANGELOG.md#v1180-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/greengrass`: [v1.11.0](service/greengrass/CHANGELOG.md#v1110-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/greengrassv2`: [v1.13.0](service/greengrassv2/CHANGELOG.md#v1130-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/guardduty`: [v1.11.0](service/guardduty/CHANGELOG.md#v1110-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/honeycode`: [v1.10.0](service/honeycode/CHANGELOG.md#v1100-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/ivs`: [v1.14.0](service/ivs/CHANGELOG.md#v1140-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/kafka`: [v1.15.0](service/kafka/CHANGELOG.md#v1150-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/location`: [v1.13.0](service/location/CHANGELOG.md#v1130-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/lookoutmetrics`: [v1.9.0](service/lookoutmetrics/CHANGELOG.md#v190-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/macie2`: [v1.18.0](service/macie2/CHANGELOG.md#v1180-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/mediaconvert`: [v1.19.0](service/mediaconvert/CHANGELOG.md#v1190-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/mediatailor`: [v1.14.0](service/mediatailor/CHANGELOG.md#v1140-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/ram`: [v1.14.0](service/ram/CHANGELOG.md#v1140-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness`: [v1.6.1](service/route53recoveryreadiness/CHANGELOG.md#v161-2022-01-28)
+ * **Documentation**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.24.0](service/sagemaker/CHANGELOG.md#v1240-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/securityhub`: [v1.17.0](service/securityhub/CHANGELOG.md#v1170-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/storagegateway`: [v1.14.0](service/storagegateway/CHANGELOG.md#v1140-2022-01-28)
+ * **Feature**: Updated to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/transcribe`: [v1.15.0](service/transcribe/CHANGELOG.md#v1150-2022-01-28)
+ * **Feature**: Updated to latest API model.
+
+# Release (2022-01-14)
+
+## General Highlights
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2`: v1.13.0
+ * **Bug Fix**: Updates the Retry middleware to release the retry token, on subsequent attempts. This fixes #1413, and is based on PR #1424
+* `github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue`: [v1.6.0](feature/dynamodb/attributevalue/CHANGELOG.md#v160-2022-01-14)
+ * **Feature**: Adds new MarshalWithOptions and UnmarshalWithOptions helpers allowing Encoding and Decoding options to be specified when serializing AttributeValues. Addresses issue: https://github.com/aws/aws-sdk-go-v2/issues/1494
+* `github.com/aws/aws-sdk-go-v2/feature/dynamodbstreams/attributevalue`: [v1.6.0](feature/dynamodbstreams/attributevalue/CHANGELOG.md#v160-2022-01-14)
+ * **Feature**: Adds new MarshalWithOptions and UnmarshalWithOptions helpers allowing Encoding and Decoding options to be specified when serializing AttributeValues. Addresses issue: https://github.com/aws/aws-sdk-go-v2/issues/1494
+* `github.com/aws/aws-sdk-go-v2/service/appsync`: [v1.12.0](service/appsync/CHANGELOG.md#v1120-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/autoscalingplans`: [v1.10.0](service/autoscalingplans/CHANGELOG.md#v1100-2022-01-14)
+ * **Documentation**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/computeoptimizer`: [v1.15.0](service/computeoptimizer/CHANGELOG.md#v1150-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/costexplorer`: [v1.15.0](service/costexplorer/CHANGELOG.md#v1150-2022-01-14)
+ * **Documentation**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/databasemigrationservice`: [v1.16.0](service/databasemigrationservice/CHANGELOG.md#v1160-2022-01-14)
+ * **Documentation**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/databrew`: [v1.16.0](service/databrew/CHANGELOG.md#v1160-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.28.0](service/ec2/CHANGELOG.md#v1280-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/elasticache`: [v1.18.0](service/elasticache/CHANGELOG.md#v1180-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/elasticsearchservice`: [v1.13.0](service/elasticsearchservice/CHANGELOG.md#v1130-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/finspacedata`: [v1.8.0](service/finspacedata/CHANGELOG.md#v180-2022-01-14)
+ * **Documentation**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/fms`: [v1.13.0](service/fms/CHANGELOG.md#v1130-2022-01-14)
+ * **Documentation**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.19.0](service/glue/CHANGELOG.md#v1190-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/honeycode`: [v1.9.0](service/honeycode/CHANGELOG.md#v190-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/identitystore`: [v1.12.0](service/identitystore/CHANGELOG.md#v1120-2022-01-14)
+ * **Documentation**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/ioteventsdata`: [v1.9.0](service/ioteventsdata/CHANGELOG.md#v190-2022-01-14)
+ * **Documentation**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/iotwireless`: [v1.16.0](service/iotwireless/CHANGELOG.md#v1160-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.20.0](service/kendra/CHANGELOG.md#v1200-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/lexmodelsv2`: [v1.17.0](service/lexmodelsv2/CHANGELOG.md#v1170-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/lexruntimev2`: [v1.12.0](service/lexruntimev2/CHANGELOG.md#v1120-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/lookoutmetrics`: [v1.8.0](service/lookoutmetrics/CHANGELOG.md#v180-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/medialive`: [v1.17.0](service/medialive/CHANGELOG.md#v1170-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/mediatailor`: [v1.13.0](service/mediatailor/CHANGELOG.md#v1130-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/mwaa`: [v1.10.0](service/mwaa/CHANGELOG.md#v1100-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/nimble`: [v1.10.0](service/nimble/CHANGELOG.md#v1100-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/opensearch`: [v1.7.0](service/opensearch/CHANGELOG.md#v170-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/pi`: [v1.12.0](service/pi/CHANGELOG.md#v1120-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/pinpoint`: [v1.14.0](service/pinpoint/CHANGELOG.md#v1140-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.16.0](service/rds/CHANGELOG.md#v1160-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/ssm`: [v1.20.0](service/ssm/CHANGELOG.md#v1200-2022-01-14)
+ * **Feature**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/sso`: [v1.9.0](service/sso/CHANGELOG.md#v190-2022-01-14)
+ * **Documentation**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/transcribe`: [v1.14.0](service/transcribe/CHANGELOG.md#v1140-2022-01-14)
+ * **Documentation**: Updated API models
+* `github.com/aws/aws-sdk-go-v2/service/workspaces`: [v1.14.0](service/workspaces/CHANGELOG.md#v1140-2022-01-14)
+ * **Feature**: Updated API models
+
+# Release (2022-01-07)
+
+## General Highlights
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/config`: [v1.12.0](config/CHANGELOG.md#v1120-2022-01-07)
+ * **Feature**: Add load option for CredentialCache. Adds a new member to the LoadOptions struct, CredentialsCacheOptions. This member allows specifying a function that will be used to configure the CredentialsCache. The CredentialsCacheOptions will only be used if the configuration loader will wrap the underlying credential provider in the CredentialsCache.
+* `github.com/aws/aws-sdk-go-v2/service/appstream`: [v1.12.0](service/appstream/CHANGELOG.md#v1120-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudtrail`: [v1.12.0](service/cloudtrail/CHANGELOG.md#v1120-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/detective`: [v1.12.0](service/detective/CHANGELOG.md#v1120-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.27.0](service/ec2/CHANGELOG.md#v1270-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.15.0](service/ecs/CHANGELOG.md#v1150-2022-01-07)
+ * **Documentation**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/eks`: [v1.17.0](service/eks/CHANGELOG.md#v1170-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.18.0](service/glue/CHANGELOG.md#v1180-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/greengrassv2`: [v1.11.0](service/greengrassv2/CHANGELOG.md#v1110-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iot`: [v1.20.0](service/iot/CHANGELOG.md#v1200-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lakeformation`: [v1.12.0](service/lakeformation/CHANGELOG.md#v1120-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.16.0](service/lambda/CHANGELOG.md#v1160-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mediaconvert`: [v1.17.0](service/mediaconvert/CHANGELOG.md#v1170-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/quicksight`: [v1.17.0](service/quicksight/CHANGELOG.md#v1170-2022-01-07)
+ * **Documentation**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.15.0](service/rds/CHANGELOG.md#v1150-2022-01-07)
+ * **Documentation**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rekognition`: [v1.14.0](service/rekognition/CHANGELOG.md#v1140-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.23.0](service/s3/CHANGELOG.md#v1230-2022-01-07)
+ * **Documentation**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/s3control`: [v1.17.0](service/s3control/CHANGELOG.md#v1170-2022-01-07)
+ * **Documentation**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/s3outposts`: [v1.9.0](service/s3outposts/CHANGELOG.md#v190-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.22.0](service/sagemaker/CHANGELOG.md#v1220-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/secretsmanager`: [v1.12.0](service/secretsmanager/CHANGELOG.md#v1120-2022-01-07)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ssooidc`: [v1.9.0](service/ssooidc/CHANGELOG.md#v190-2022-01-07)
+ * **Feature**: API client updated
+
+# Release (2021-12-21)
+
+## General Highlights
+* **Feature**: API Paginators now support specifying the initial starting token, and support stopping on empty string tokens.
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/accessanalyzer`: [v1.11.0](service/accessanalyzer/CHANGELOG.md#v1110-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/acm`: [v1.10.0](service/acm/CHANGELOG.md#v1100-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/apigateway`: [v1.11.0](service/apigateway/CHANGELOG.md#v1110-2021-12-21)
+ * **Documentation**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/applicationautoscaling`: [v1.11.0](service/applicationautoscaling/CHANGELOG.md#v1110-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/appsync`: [v1.10.0](service/appsync/CHANGELOG.md#v1100-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/autoscaling`: [v1.17.0](service/autoscaling/CHANGELOG.md#v1170-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmeetings`: [v1.3.0](service/chimesdkmeetings/CHANGELOG.md#v130-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmessaging`: [v1.5.0](service/chimesdkmessaging/CHANGELOG.md#v150-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudcontrol`: [v1.4.0](service/cloudcontrol/CHANGELOG.md#v140-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/cloudformation`: [v1.16.0](service/cloudformation/CHANGELOG.md#v1160-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/cloudwatch`: [v1.13.0](service/cloudwatch/CHANGELOG.md#v1130-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/cloudwatchevents`: [v1.10.0](service/cloudwatchevents/CHANGELOG.md#v1100-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs`: [v1.11.0](service/cloudwatchlogs/CHANGELOG.md#v1110-2021-12-21)
+ * **Feature**: API client updated
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/codedeploy`: [v1.10.0](service/codedeploy/CHANGELOG.md#v1100-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/comprehendmedical`: [v1.9.0](service/comprehendmedical/CHANGELOG.md#v190-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/configservice`: [v1.13.0](service/configservice/CHANGELOG.md#v1130-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/customerprofiles`: [v1.13.0](service/customerprofiles/CHANGELOG.md#v1130-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/databasemigrationservice`: [v1.14.0](service/databasemigrationservice/CHANGELOG.md#v1140-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/datasync`: [v1.10.0](service/datasync/CHANGELOG.md#v1100-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/devopsguru`: [v1.12.0](service/devopsguru/CHANGELOG.md#v1120-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/directconnect`: [v1.13.0](service/directconnect/CHANGELOG.md#v1130-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/docdb`: [v1.13.0](service/docdb/CHANGELOG.md#v1130-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/dynamodb`: [v1.11.0](service/dynamodb/CHANGELOG.md#v1110-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/dynamodbstreams`: [v1.9.0](service/dynamodbstreams/CHANGELOG.md#v190-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.26.0](service/ec2/CHANGELOG.md#v1260-2021-12-21)
+ * **Feature**: API client updated
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/ecr`: [v1.12.0](service/ecr/CHANGELOG.md#v1120-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.14.0](service/ecs/CHANGELOG.md#v1140-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/elasticache`: [v1.16.0](service/elasticache/CHANGELOG.md#v1160-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing`: [v1.10.0](service/elasticloadbalancing/CHANGELOG.md#v1100-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2`: [v1.14.0](service/elasticloadbalancingv2/CHANGELOG.md#v1140-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/elasticsearchservice`: [v1.11.0](service/elasticsearchservice/CHANGELOG.md#v1110-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/emr`: [v1.13.0](service/emr/CHANGELOG.md#v1130-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/eventbridge`: [v1.11.0](service/eventbridge/CHANGELOG.md#v1110-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/finspacedata`: [v1.6.0](service/finspacedata/CHANGELOG.md#v160-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/forecast`: [v1.15.0](service/forecast/CHANGELOG.md#v1150-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/glacier`: [v1.9.0](service/glacier/CHANGELOG.md#v190-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/groundstation`: [v1.9.0](service/groundstation/CHANGELOG.md#v190-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/health`: [v1.11.0](service/health/CHANGELOG.md#v1110-2021-12-21)
+ * **Documentation**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/imagebuilder`: [v1.15.0](service/imagebuilder/CHANGELOG.md#v1150-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iot`: [v1.19.0](service/iot/CHANGELOG.md#v1190-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kinesis`: [v1.11.0](service/kinesis/CHANGELOG.md#v1110-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/kinesisanalytics`: [v1.9.0](service/kinesisanalytics/CHANGELOG.md#v190-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2`: [v1.10.0](service/kinesisanalyticsv2/CHANGELOG.md#v1100-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/kms`: [v1.12.0](service/kms/CHANGELOG.md#v1120-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.15.0](service/lambda/CHANGELOG.md#v1150-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/lexmodelsv2`: [v1.15.0](service/lexmodelsv2/CHANGELOG.md#v1150-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/location`: [v1.10.0](service/location/CHANGELOG.md#v1100-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lookoutmetrics`: [v1.6.0](service/lookoutmetrics/CHANGELOG.md#v160-2021-12-21)
+ * **Feature**: API client updated
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/lookoutvision`: [v1.8.0](service/lookoutvision/CHANGELOG.md#v180-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/marketplacemetering`: [v1.9.0](service/marketplacemetering/CHANGELOG.md#v190-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/mediaconnect`: [v1.11.0](service/mediaconnect/CHANGELOG.md#v1110-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/neptune`: [v1.12.0](service/neptune/CHANGELOG.md#v1120-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/networkfirewall`: [v1.11.0](service/networkfirewall/CHANGELOG.md#v1110-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/nimble`: [v1.8.0](service/nimble/CHANGELOG.md#v180-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/opensearch`: [v1.5.0](service/opensearch/CHANGELOG.md#v150-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/outposts`: [v1.13.0](service/outposts/CHANGELOG.md#v1130-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/pi`: [v1.10.0](service/pi/CHANGELOG.md#v1100-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/qldb`: [v1.10.0](service/qldb/CHANGELOG.md#v1100-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.14.0](service/rds/CHANGELOG.md#v1140-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/redshift`: [v1.17.0](service/redshift/CHANGELOG.md#v1170-2021-12-21)
+ * **Feature**: API client updated
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/resourcegroups`: [v1.8.0](service/resourcegroups/CHANGELOG.md#v180-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi`: [v1.9.0](service/resourcegroupstaggingapi/CHANGELOG.md#v190-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/route53`: [v1.15.0](service/route53/CHANGELOG.md#v1150-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/route53domains`: [v1.8.0](service/route53domains/CHANGELOG.md#v180-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig`: [v1.5.0](service/route53recoverycontrolconfig/CHANGELOG.md#v150-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.22.0](service/s3/CHANGELOG.md#v1220-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/s3control`: [v1.16.0](service/s3control/CHANGELOG.md#v1160-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.21.0](service/sagemaker/CHANGELOG.md#v1210-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/savingsplans`: [v1.7.3](service/savingsplans/CHANGELOG.md#v173-2021-12-21)
+ * **Documentation**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/secretsmanager`: [v1.11.0](service/secretsmanager/CHANGELOG.md#v1110-2021-12-21)
+ * **Documentation**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/securityhub`: [v1.14.0](service/securityhub/CHANGELOG.md#v1140-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sfn`: [v1.9.0](service/sfn/CHANGELOG.md#v190-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/sms`: [v1.8.0](service/sms/CHANGELOG.md#v180-2021-12-21)
+ * **Documentation**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sns`: [v1.13.0](service/sns/CHANGELOG.md#v1130-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/sqs`: [v1.14.0](service/sqs/CHANGELOG.md#v1140-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/ssm`: [v1.18.0](service/ssm/CHANGELOG.md#v1180-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/sts`: [v1.12.0](service/sts/CHANGELOG.md#v1120-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/support`: [v1.9.0](service/support/CHANGELOG.md#v190-2021-12-21)
+ * **Documentation**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/swf`: [v1.9.0](service/swf/CHANGELOG.md#v190-2021-12-21)
+ * **Feature**: Updated to latest service endpoints
+* `github.com/aws/aws-sdk-go-v2/service/transfer`: [v1.13.0](service/transfer/CHANGELOG.md#v1130-2021-12-21)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/workmail`: [v1.11.0](service/workmail/CHANGELOG.md#v1110-2021-12-21)
+ * **Feature**: API client updated
+
+# Release (2021-12-03)
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/accessanalyzer`: [v1.10.1](service/accessanalyzer/CHANGELOG.md#v1101-2021-12-03)
+ * **Bug Fix**: Fixed an issue that prevent auto-filling of an API's idempotency parameters when not explictly provided by the caller.
+* `github.com/aws/aws-sdk-go-v2/service/amp`: [v1.9.3](service/amp/CHANGELOG.md#v193-2021-12-03)
+ * **Bug Fix**: Fixed an issue that prevent auto-filling of an API's idempotency parameters when not explictly provided by the caller.
+* `github.com/aws/aws-sdk-go-v2/service/amplifyuibuilder`: [v1.0.0](service/amplifyuibuilder/CHANGELOG.md#v100-2021-12-03)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/appmesh`: [v1.8.3](service/appmesh/CHANGELOG.md#v183-2021-12-03)
+ * **Bug Fix**: Fixed an issue that prevent auto-filling of an API's idempotency parameters when not explictly provided by the caller.
+* `github.com/aws/aws-sdk-go-v2/service/braket`: [v1.10.2](service/braket/CHANGELOG.md#v1102-2021-12-03)
+ * **Bug Fix**: Fixed an issue that prevent auto-filling of an API's idempotency parameters when not explictly provided by the caller.
+* `github.com/aws/aws-sdk-go-v2/service/codeguruprofiler`: [v1.7.3](service/codeguruprofiler/CHANGELOG.md#v173-2021-12-03)
+ * **Bug Fix**: Fixed an issue that prevent auto-filling of an API's idempotency parameters when not explictly provided by the caller.
+* `github.com/aws/aws-sdk-go-v2/service/evidently`: [v1.1.1](service/evidently/CHANGELOG.md#v111-2021-12-03)
+ * **Bug Fix**: Fixed a bug that prevented the resolution of the correct endpoint for some API operations.
+* `github.com/aws/aws-sdk-go-v2/service/grafana`: [v1.2.3](service/grafana/CHANGELOG.md#v123-2021-12-03)
+ * **Bug Fix**: Fixed an issue that prevent auto-filling of an API's idempotency parameters when not explictly provided by the caller.
+* `github.com/aws/aws-sdk-go-v2/service/location`: [v1.9.2](service/location/CHANGELOG.md#v192-2021-12-03)
+ * **Bug Fix**: Fixed a bug that prevented the resolution of the correct endpoint for some API operations.
+ * **Bug Fix**: Fixed an issue that caused some operations to not be signed using sigv4, resulting in authentication failures.
+* `github.com/aws/aws-sdk-go-v2/service/networkmanager`: [v1.7.0](service/networkmanager/CHANGELOG.md#v170-2021-12-03)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/nimble`: [v1.7.3](service/nimble/CHANGELOG.md#v173-2021-12-03)
+ * **Bug Fix**: Fixed an issue that prevent auto-filling of an API's idempotency parameters when not explictly provided by the caller.
+* `github.com/aws/aws-sdk-go-v2/service/proton`: [v1.7.2](service/proton/CHANGELOG.md#v172-2021-12-03)
+ * **Bug Fix**: Fixed an issue that prevent auto-filling of an API's idempotency parameters when not explictly provided by the caller.
+* `github.com/aws/aws-sdk-go-v2/service/ram`: [v1.10.0](service/ram/CHANGELOG.md#v1100-2021-12-03)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rekognition`: [v1.12.0](service/rekognition/CHANGELOG.md#v1120-2021-12-03)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/snowdevicemanagement`: [v1.3.3](service/snowdevicemanagement/CHANGELOG.md#v133-2021-12-03)
+ * **Bug Fix**: Fixed an issue that prevent auto-filling of an API's idempotency parameters when not explictly provided by the caller.
+* `github.com/aws/aws-sdk-go-v2/service/wisdom`: [v1.2.3](service/wisdom/CHANGELOG.md#v123-2021-12-03)
+ * **Bug Fix**: Fixed an issue that prevent auto-filling of an API's idempotency parameters when not explictly provided by the caller.
+
+# Release (2021-12-02)
+
+## General Highlights
+* **Bug Fix**: Fixes a bug that prevented aws.EndpointResolverWithOptions from being used by the service client. ([#1514](https://github.com/aws/aws-sdk-go-v2/pull/1514))
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/config`: [v1.11.0](config/CHANGELOG.md#v1110-2021-12-02)
+ * **Feature**: Add support for specifying `EndpointResolverWithOptions` on `LoadOptions`, and associated `WithEndpointResolverWithOptions`.
+* `github.com/aws/aws-sdk-go-v2/service/accessanalyzer`: [v1.10.0](service/accessanalyzer/CHANGELOG.md#v1100-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/applicationinsights`: [v1.9.0](service/applicationinsights/CHANGELOG.md#v190-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/backupgateway`: [v1.0.0](service/backupgateway/CHANGELOG.md#v100-2021-12-02)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/cloudhsm`: [v1.8.0](service/cloudhsm/CHANGELOG.md#v180-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/devopsguru`: [v1.11.0](service/devopsguru/CHANGELOG.md#v1110-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/directconnect`: [v1.12.0](service/directconnect/CHANGELOG.md#v1120-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/dynamodb`: [v1.10.0](service/dynamodb/CHANGELOG.md#v1100-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.25.0](service/ec2/CHANGELOG.md#v1250-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/evidently`: [v1.1.0](service/evidently/CHANGELOG.md#v110-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/fsx`: [v1.14.0](service/fsx/CHANGELOG.md#v1140-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.16.0](service/glue/CHANGELOG.md#v1160-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/inspector2`: [v1.1.0](service/inspector2/CHANGELOG.md#v110-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iot`: [v1.18.0](service/iot/CHANGELOG.md#v1180-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iottwinmaker`: [v1.0.0](service/iottwinmaker/CHANGELOG.md#v100-2021-12-02)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/kafka`: [v1.11.0](service/kafka/CHANGELOG.md#v1110-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.17.0](service/kendra/CHANGELOG.md#v1170-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kinesis`: [v1.10.0](service/kinesis/CHANGELOG.md#v1100-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lakeformation`: [v1.10.0](service/lakeformation/CHANGELOG.md#v1100-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lexmodelsv2`: [v1.14.0](service/lexmodelsv2/CHANGELOG.md#v1140-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lexruntimev2`: [v1.10.0](service/lexruntimev2/CHANGELOG.md#v1100-2021-12-02)
+ * **Feature**: Support has been added for the `StartConversation` API.
+* `github.com/aws/aws-sdk-go-v2/service/outposts`: [v1.12.0](service/outposts/CHANGELOG.md#v1120-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rbin`: [v1.1.0](service/rbin/CHANGELOG.md#v110-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/redshiftdata`: [v1.10.0](service/redshiftdata/CHANGELOG.md#v1100-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rum`: [v1.1.0](service/rum/CHANGELOG.md#v110-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.21.0](service/s3/CHANGELOG.md#v1210-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.20.0](service/sagemaker/CHANGELOG.md#v1200-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sagemakerruntime`: [v1.11.0](service/sagemakerruntime/CHANGELOG.md#v1110-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/shield`: [v1.11.0](service/shield/CHANGELOG.md#v1110-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/snowball`: [v1.10.0](service/snowball/CHANGELOG.md#v1100-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/storagegateway`: [v1.10.0](service/storagegateway/CHANGELOG.md#v1100-2021-12-02)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/workspacesweb`: [v1.0.0](service/workspacesweb/CHANGELOG.md#v100-2021-12-02)
+ * **Release**: New AWS service client module
+
+# Release (2021-11-30)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/autoscaling`: [v1.16.0](service/autoscaling/CHANGELOG.md#v1160-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/backup`: [v1.10.0](service/backup/CHANGELOG.md#v1100-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/braket`: [v1.10.0](service/braket/CHANGELOG.md#v1100-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmeetings`: [v1.2.0](service/chimesdkmeetings/CHANGELOG.md#v120-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudformation`: [v1.15.0](service/cloudformation/CHANGELOG.md#v1150-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/computeoptimizer`: [v1.13.0](service/computeoptimizer/CHANGELOG.md#v1130-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.13.0](service/connect/CHANGELOG.md#v1130-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/customerprofiles`: [v1.12.0](service/customerprofiles/CHANGELOG.md#v1120-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/databasemigrationservice`: [v1.13.0](service/databasemigrationservice/CHANGELOG.md#v1130-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/dataexchange`: [v1.9.0](service/dataexchange/CHANGELOG.md#v190-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/dynamodb`: [v1.9.0](service/dynamodb/CHANGELOG.md#v190-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.24.0](service/ec2/CHANGELOG.md#v1240-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ecr`: [v1.11.0](service/ecr/CHANGELOG.md#v1110-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.13.0](service/ecs/CHANGELOG.md#v1130-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/eks`: [v1.15.0](service/eks/CHANGELOG.md#v1150-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/elasticache`: [v1.15.0](service/elasticache/CHANGELOG.md#v1150-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2`: [v1.13.0](service/elasticloadbalancingv2/CHANGELOG.md#v1130-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/elasticsearchservice`: [v1.10.0](service/elasticsearchservice/CHANGELOG.md#v1100-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/evidently`: [v1.0.0](service/evidently/CHANGELOG.md#v100-2021-11-30)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/finspacedata`: [v1.5.0](service/finspacedata/CHANGELOG.md#v150-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/imagebuilder`: [v1.14.0](service/imagebuilder/CHANGELOG.md#v1140-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/inspector2`: [v1.0.0](service/inspector2/CHANGELOG.md#v100-2021-11-30)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery`: [v1.3.2](service/internal/endpoint-discovery/CHANGELOG.md#v132-2021-11-30)
+ * **Bug Fix**: Fixed a race condition that caused concurrent calls relying on endpoint discovery to share the same `url.URL` reference in their operation's http.Request.
+* `github.com/aws/aws-sdk-go-v2/service/iot`: [v1.17.0](service/iot/CHANGELOG.md#v1170-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotdeviceadvisor`: [v1.9.0](service/iotdeviceadvisor/CHANGELOG.md#v190-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotsitewise`: [v1.15.0](service/iotsitewise/CHANGELOG.md#v1150-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/iotwireless`: [v1.13.0](service/iotwireless/CHANGELOG.md#v1130-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.14.0](service/lambda/CHANGELOG.md#v1140-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/macie2`: [v1.14.0](service/macie2/CHANGELOG.md#v1140-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mgn`: [v1.8.0](service/mgn/CHANGELOG.md#v180-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/migrationhubrefactorspaces`: [v1.0.0](service/migrationhubrefactorspaces/CHANGELOG.md#v100-2021-11-30)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/opensearch`: [v1.4.0](service/opensearch/CHANGELOG.md#v140-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/outposts`: [v1.11.0](service/outposts/CHANGELOG.md#v1110-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/personalize`: [v1.12.0](service/personalize/CHANGELOG.md#v1120-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/personalizeruntime`: [v1.7.0](service/personalizeruntime/CHANGELOG.md#v170-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/pinpoint`: [v1.12.0](service/pinpoint/CHANGELOG.md#v1120-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/proton`: [v1.7.0](service/proton/CHANGELOG.md#v170-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/quicksight`: [v1.15.0](service/quicksight/CHANGELOG.md#v1150-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rbin`: [v1.0.0](service/rbin/CHANGELOG.md#v100-2021-11-30)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.13.0](service/rds/CHANGELOG.md#v1130-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/redshift`: [v1.16.0](service/redshift/CHANGELOG.md#v1160-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/rum`: [v1.0.0](service/rum/CHANGELOG.md#v100-2021-11-30)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.20.0](service/s3/CHANGELOG.md#v1200-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/s3control`: [v1.15.0](service/s3control/CHANGELOG.md#v1150-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sqs`: [v1.13.0](service/sqs/CHANGELOG.md#v1130-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ssm`: [v1.17.0](service/ssm/CHANGELOG.md#v1170-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sts`: [v1.11.0](service/sts/CHANGELOG.md#v1110-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/textract`: [v1.10.0](service/textract/CHANGELOG.md#v1100-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/timestreamquery`: [v1.8.0](service/timestreamquery/CHANGELOG.md#v180-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/timestreamwrite`: [v1.8.0](service/timestreamwrite/CHANGELOG.md#v180-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/transcribestreaming`: [v1.1.0](service/transcribestreaming/CHANGELOG.md#v110-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/translate`: [v1.8.0](service/translate/CHANGELOG.md#v180-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/wellarchitected`: [v1.9.0](service/wellarchitected/CHANGELOG.md#v190-2021-11-30)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/workspaces`: [v1.11.0](service/workspaces/CHANGELOG.md#v1110-2021-11-30)
+ * **Feature**: API client updated
+
+# Release (2021-11-19)
+
+## General Highlights
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2`: v1.11.1
+ * **Bug Fix**: Fixed a bug that prevented aws.EndpointResolverWithOptionsFunc from satisfying the aws.EndpointResolverWithOptions interface.
+* `github.com/aws/aws-sdk-go-v2/service/amplifybackend`: [v1.8.0](service/amplifybackend/CHANGELOG.md#v180-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/apigateway`: [v1.10.0](service/apigateway/CHANGELOG.md#v1100-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/appconfig`: [v1.7.0](service/appconfig/CHANGELOG.md#v170-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/appconfigdata`: [v1.0.0](service/appconfigdata/CHANGELOG.md#v100-2021-11-19)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/applicationinsights`: [v1.8.0](service/applicationinsights/CHANGELOG.md#v180-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/appstream`: [v1.10.0](service/appstream/CHANGELOG.md#v1100-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/auditmanager`: [v1.12.0](service/auditmanager/CHANGELOG.md#v1120-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/batch`: [v1.11.0](service/batch/CHANGELOG.md#v1110-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/chime`: [v1.14.0](service/chime/CHANGELOG.md#v1140-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmeetings`: [v1.1.0](service/chimesdkmeetings/CHANGELOG.md#v110-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudformation`: [v1.14.0](service/cloudformation/CHANGELOG.md#v1140-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudtrail`: [v1.10.0](service/cloudtrail/CHANGELOG.md#v1100-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/cloudwatch`: [v1.12.0](service/cloudwatch/CHANGELOG.md#v1120-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.12.0](service/connect/CHANGELOG.md#v1120-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/databasemigrationservice`: [v1.12.0](service/databasemigrationservice/CHANGELOG.md#v1120-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/databrew`: [v1.13.0](service/databrew/CHANGELOG.md#v1130-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/devopsguru`: [v1.10.0](service/devopsguru/CHANGELOG.md#v1100-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/drs`: [v1.0.0](service/drs/CHANGELOG.md#v100-2021-11-19)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/dynamodbstreams`: [v1.8.0](service/dynamodbstreams/CHANGELOG.md#v180-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.23.0](service/ec2/CHANGELOG.md#v1230-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/eks`: [v1.14.0](service/eks/CHANGELOG.md#v1140-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/forecast`: [v1.14.0](service/forecast/CHANGELOG.md#v1140-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ivs`: [v1.10.0](service/ivs/CHANGELOG.md#v1100-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kafka`: [v1.10.0](service/kafka/CHANGELOG.md#v1100-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.16.0](service/kendra/CHANGELOG.md#v1160-2021-11-19)
+ * **Announcement**: Fix API modeling bug incorrectly generating `DocumentAttributeValue` type as a union instead of a structure. This update corrects this bug by correcting the `DocumentAttributeValue` type to be a `struct` instead of an `interface`. This change also removes the `DocumentAttributeValueMember` types. To migrate to this change your application using service/kendra will need to be updated to use struct members in `DocumentAttributeValue` instead of `DocumentAttributeValueMember` types.
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/kms`: [v1.11.0](service/kms/CHANGELOG.md#v1110-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.13.0](service/lambda/CHANGELOG.md#v1130-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lexmodelsv2`: [v1.13.0](service/lexmodelsv2/CHANGELOG.md#v1130-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/lexruntimev2`: [v1.9.0](service/lexruntimev2/CHANGELOG.md#v190-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/location`: [v1.9.0](service/location/CHANGELOG.md#v190-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mediaconvert`: [v1.15.0](service/mediaconvert/CHANGELOG.md#v1150-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/medialive`: [v1.14.0](service/medialive/CHANGELOG.md#v1140-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/mgn`: [v1.7.0](service/mgn/CHANGELOG.md#v170-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/migrationhubstrategy`: [v1.0.0](service/migrationhubstrategy/CHANGELOG.md#v100-2021-11-19)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/qldb`: [v1.9.0](service/qldb/CHANGELOG.md#v190-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/qldbsession`: [v1.9.0](service/qldbsession/CHANGELOG.md#v190-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/redshift`: [v1.15.0](service/redshift/CHANGELOG.md#v1150-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/sns`: [v1.12.0](service/sns/CHANGELOG.md#v1120-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/ssm`: [v1.16.0](service/ssm/CHANGELOG.md#v1160-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/transfer`: [v1.12.0](service/transfer/CHANGELOG.md#v1120-2021-11-19)
+ * **Feature**: API client updated
+* `github.com/aws/aws-sdk-go-v2/service/wafv2`: [v1.14.0](service/wafv2/CHANGELOG.md#v1140-2021-11-19)
+ * **Feature**: API client updated
+
+# Release (2021-11-12)
+
+## General Highlights
+* **Feature**: Service clients now support custom endpoints that have an initial URI path defined.
+* **Feature**: Waiters now have a `WaitForOutput` method, which can be used to retrieve the output of the successful wait operation. Thank you to [Andrew Haines](https://github.com/haines) for contributing this feature.
+* **Dependency Update**: Updated to the latest SDK module versions
+
+## Module Highlights
+* `github.com/aws/aws-sdk-go-v2/service/backup`: [v1.9.0](service/backup/CHANGELOG.md#v190-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/batch`: [v1.10.0](service/batch/CHANGELOG.md#v1100-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/chimesdkmeetings`: [v1.0.0](service/chimesdkmeetings/CHANGELOG.md#v100-2021-11-12)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/computeoptimizer`: [v1.12.0](service/computeoptimizer/CHANGELOG.md#v1120-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.11.0](service/connect/CHANGELOG.md#v1110-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/docdb`: [v1.12.0](service/docdb/CHANGELOG.md#v1120-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/dynamodb`: [v1.8.0](service/dynamodb/CHANGELOG.md#v180-2021-11-12)
+ * **Documentation**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.22.0](service/ec2/CHANGELOG.md#v1220-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.12.0](service/ecs/CHANGELOG.md#v1120-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/gamelift`: [v1.9.0](service/gamelift/CHANGELOG.md#v190-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/greengrassv2`: [v1.9.0](service/greengrassv2/CHANGELOG.md#v190-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/health`: [v1.10.0](service/health/CHANGELOG.md#v1100-2021-11-12)
+ * **Documentation**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/identitystore`: [v1.9.0](service/identitystore/CHANGELOG.md#v190-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/iotwireless`: [v1.12.0](service/iotwireless/CHANGELOG.md#v1120-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/neptune`: [v1.11.0](service/neptune/CHANGELOG.md#v1110-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.12.0](service/rds/CHANGELOG.md#v1120-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/resiliencehub`: [v1.0.0](service/resiliencehub/CHANGELOG.md#v100-2021-11-12)
+ * **Release**: New AWS service client module
+* `github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi`: [v1.8.0](service/resourcegroupstaggingapi/CHANGELOG.md#v180-2021-11-12)
+ * **Documentation**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/s3control`: [v1.14.0](service/s3control/CHANGELOG.md#v1140-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.19.0](service/sagemaker/CHANGELOG.md#v1190-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/sagemakerruntime`: [v1.10.0](service/sagemakerruntime/CHANGELOG.md#v1100-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/ssmincidents`: [v1.7.0](service/ssmincidents/CHANGELOG.md#v170-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/transcribe`: [v1.11.0](service/transcribe/CHANGELOG.md#v1110-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/translate`: [v1.7.0](service/translate/CHANGELOG.md#v170-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+* `github.com/aws/aws-sdk-go-v2/service/wafv2`: [v1.13.0](service/wafv2/CHANGELOG.md#v1130-2021-11-12)
+ * **Feature**: Updated service to latest API model.
+
# Release (2021-11-06)
## General Highlights
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/Makefile b/vendor/github.com/aws/aws-sdk-go-v2/Makefile
index 6e2a111..bea96ab 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/Makefile
+++ b/vendor/github.com/aws/aws-sdk-go-v2/Makefile
@@ -1,5 +1,6 @@
# Lint rules to ignore
LINTIGNORESINGLEFIGHT='internal/sync/singleflight/singleflight.go:.+error should be the last type'
+LINT_IGNORE_S3MANAGER_INPUT='feature/s3/manager/upload.go:.+struct field SSEKMSKeyId should be SSEKMSKeyID'
UNIT_TEST_TAGS=
BUILD_TAGS=-tags "example,codegen,integration,ec2env,perftest"
@@ -39,6 +40,7 @@ ENDPOINT_PREFIX_JSON=${CODEGEN_RESOURCES_PATH}/endpoint-prefix.json
LICENSE_FILE=$(shell pwd)/LICENSE.txt
SMITHY_GO_VERSION ?=
+PRE_RELEASE_VERSION ?=
RELEASE_MANIFEST_FILE ?=
RELEASE_CHGLOG_DESC_FILE ?=
@@ -57,6 +59,12 @@ REPOTOOLS_CMD_EDIT_MODULE_DEPENDENCY = ${REPOTOOLS_MODULE}/cmd/editmoduledepende
REPOTOOLS_CALCULATE_RELEASE_VERBOSE ?= false
REPOTOOLS_CALCULATE_RELEASE_VERBOSE_FLAG=-v=${REPOTOOLS_CALCULATE_RELEASE_VERBOSE}
+REPOTOOLS_CALCULATE_RELEASE_ADDITIONAL_ARGS ?=
+
+ifneq ($(PRE_RELEASE_VERSION),)
+ REPOTOOLS_CALCULATE_RELEASE_ADDITIONAL_ARGS += -preview=${PRE_RELEASE_VERSION}
+endif
+
.PHONY: all
all: generate unit
@@ -65,13 +73,13 @@ all: generate unit
###################
.PHONY: generate smithy-generate smithy-build smithy-build-% smithy-clean smithy-go-publish-local format \
gen-config-asserts gen-repo-mod-replace gen-mod-replace-smithy gen-mod-dropreplace-smithy gen-aws-ptrs tidy-modules-% \
-add-module-license-files sync-models sync-endpoints-model sync-endpoints.json clone-v1-models gen-endpoint-prefix.json \
+add-module-license-files sync-models sync-endpoints-model sync-endpoints.json clone-v1-models gen-internal-codegen \
sync-api-models copy-attributevalue-feature min-go-version-% update-requires smithy-annotate-stable \
update-module-metadata download-modules-%
generate: smithy-generate update-requires gen-repo-mod-replace update-module-metadata smithy-annotate-stable \
-gen-config-asserts copy-attributevalue-feature gen-mod-dropreplace-smithy min-go-version-. tidy-modules-. \
-add-module-license-files gen-aws-ptrs format
+gen-config-asserts gen-internal-codegen copy-attributevalue-feature gen-mod-dropreplace-smithy min-go-version-. \
+tidy-modules-. add-module-license-files gen-aws-ptrs format
smithy-generate:
cd codegen && ./gradlew clean build -Plog-tests && ./gradlew clean
@@ -109,6 +117,11 @@ gen-config-asserts:
&& go mod tidy \
&& go generate
+gen-internal-codegen:
+ @echo "Generating internal/codegen"
+ cd internal/codegen \
+ && go generate
+
gen-repo-mod-replace:
@echo "Generating go.mod replace for repo modules"
go run ${REPOTOOLS_CMD_MAKE_RELATIVE}
@@ -151,7 +164,7 @@ add-module-license-files:
sync-models: sync-endpoints-model sync-api-models
-sync-endpoints-model: sync-endpoints.json gen-endpoint-prefix.json
+sync-endpoints-model: sync-endpoints.json
sync-endpoints.json:
[[ ! -z "${ENDPOINTS_MODEL}" ]] && cp ${ENDPOINTS_MODEL} ${ENDPOINTS_JSON} || echo "ENDPOINTS_MODEL not set, must not be empty"
@@ -160,12 +173,6 @@ clone-v1-models:
rm -rf /tmp/aws-sdk-go-model-sync
git clone https://github.com/aws/aws-sdk-go.git --depth 1 /tmp/aws-sdk-go-model-sync
-gen-endpoint-prefix.json: clone-v1-models
- cd internal/repotools/cmd/endpointPrefix && \
- go run . \
- -m '/tmp/aws-sdk-go-model-sync/models/apis/*/*/api-2.json' \
- -o ${ENDPOINT_PREFIX_JSON}
-
sync-api-models:
cd internal/repotools/cmd/syncAPIModels && \
go run . \
@@ -398,7 +405,7 @@ ls-changes:
go run ${REPOTOOLS_CMD_CHANGELOG} ls
preview-release:
- go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} ${REPOTOOLS_CALCULATE_RELEASE_VERBOSE_FLAG}
+ go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} ${REPOTOOLS_CALCULATE_RELEASE_VERBOSE_FLAG} ${REPOTOOLS_CALCULATE_RELEASE_ADDITIONAL_ARGS}
pre-release-validation:
@if [[ -z "${RELEASE_MANIFEST_FILE}" ]]; then \
@@ -409,7 +416,7 @@ pre-release-validation:
fi
release: pre-release-validation
- go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} -o ${RELEASE_MANIFEST_FILE} ${REPOTOOLS_CALCULATE_RELEASE_VERBOSE_FLAG}
+ go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} -o ${RELEASE_MANIFEST_FILE} ${REPOTOOLS_CALCULATE_RELEASE_VERBOSE_FLAG} ${REPOTOOLS_CALCULATE_RELEASE_ADDITIONAL_ARGS}
go run ${REPOTOOLS_CMD_UPDATE_REQUIRES} -release ${RELEASE_MANIFEST_FILE}
go run ${REPOTOOLS_CMD_UPDATE_MODULE_METADATA} -release ${RELEASE_MANIFEST_FILE}
go run ${REPOTOOLS_CMD_GENERATE_CHANGELOG} -release ${RELEASE_MANIFEST_FILE} -o ${RELEASE_CHGLOG_DESC_FILE}
@@ -441,6 +448,7 @@ lint:
@echo "go lint SDK and vendor packages"
@lint=`golint ./...`; \
dolint=`echo "$$lint" | grep -E -v \
+ -e ${LINT_IGNORE_S3MANAGER_INPUT} \
-e ${LINTIGNORESINGLEFIGHT}`; \
echo "$$dolint"; \
if [ "$$dolint" != "" ]; then exit 1; fi
@@ -458,6 +466,21 @@ sdkv1check:
echo "$$sdkv1usage"; \
if [ "$$sdkv1usage" != "" ]; then exit 1; fi
+list-deps: list-deps-.
+
+list-deps-%:
+ @# command that uses the pattern to define the root path that the
+ @# module testing will start from. Strips off the "list-deps-" and
+ @# replaces all "_" with "/".
+ @#
+ @# Trim output to only include stdout for list of dependencies only.
+ @# make list-deps 2>&-
+ @#
+ @# e.g. list-deps-internal_protocoltest
+ @cd ./internal/repotools/cmd/eachmodule \
+ && go run . -p $(subst _,/,$(subst list-deps-,,$@)) ${EACHMODULE_FLAGS} \
+ "go list -m all | grep -v 'github.com/aws/aws-sdk-go-v2'" | sort -u
+
###################
# Sandbox Testing #
###################
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/config.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/config.go
index 471fbe2..df2abb5 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/config.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/config.go
@@ -38,24 +38,52 @@ type Config struct {
// will prevent the SDK from modifying the HTTP client.
HTTPClient HTTPClient
- // An endpoint resolver that can be used to provide or override an endpoint for the given
- // service and region Please see the `aws.EndpointResolver` documentation on usage.
+ // An endpoint resolver that can be used to provide or override an endpoint
+ // for the given service and region.
+ //
+ // See the `aws.EndpointResolver` documentation for additional usage
+ // information.
//
// Deprecated: See Config.EndpointResolverWithOptions
EndpointResolver EndpointResolver
- // An endpoint resolver that can be used to provide or override an endpoint for the given
- // service and region Please see the `aws.EndpointResolverWithOptions` documentation on usage.
+ // An endpoint resolver that can be used to provide or override an endpoint
+ // for the given service and region.
+ //
+ // When EndpointResolverWithOptions is specified, it will be used by a
+ // service client rather than using EndpointResolver if also specified.
+ //
+ // See the `aws.EndpointResolverWithOptions` documentation for additional
+ // usage information.
EndpointResolverWithOptions EndpointResolverWithOptions
- // Retryer is a function that provides a Retryer implementation. A Retryer guides how HTTP requests should be
- // retried in case of recoverable failures. When nil the API client will use a default
- // retryer.
+ // RetryMaxAttempts specifies the maximum number attempts an API client
+ // will call an operation that fails with a retryable error.
//
- // In general, the provider function should return a new instance of a Retryer if you are attempting
- // to provide a consistent Retryer configuration across all clients. This will ensure that each client will be
- // provided a new instance of the Retryer implementation, and will avoid issues such as sharing the same retry token
- // bucket across services.
+ // API Clients will only use this value to construct a retryer if the
+ // Config.Retryer member is not nil. This value will be ignored if
+ // Retryer is not nil.
+ RetryMaxAttempts int
+
+ // RetryMode specifies the retry model the API client will be created with.
+ //
+ // API Clients will only use this value to construct a retryer if the
+ // Config.Retryer member is not nil. This value will be ignored if
+ // Retryer is not nil.
+ RetryMode RetryMode
+
+ // Retryer is a function that provides a Retryer implementation. A Retryer
+ // guides how HTTP requests should be retried in case of recoverable
+ // failures. When nil the API client will use a default retryer.
+ //
+ // In general, the provider function should return a new instance of a
+ // Retryer if you are attempting to provide a consistent Retryer
+ // configuration across all clients. This will ensure that each client will
+ // be provided a new instance of the Retryer implementation, and will avoid
+ // issues such as sharing the same retry token bucket across services.
+ //
+ // If not nil, RetryMaxAttempts, and RetryMode will be ignored by API
+ // clients.
Retryer func() Retryer
// ConfigSources are the sources that were used to construct the Config.
@@ -71,13 +99,26 @@ type Config struct {
// standard error.
Logger logging.Logger
- // Configures the events that will be sent to the configured logger.
- // This can be used to configure the logging of signing, retries, request, and responses
- // of the SDK clients.
+ // Configures the events that will be sent to the configured logger. This
+ // can be used to configure the logging of signing, retries, request, and
+ // responses of the SDK clients.
//
- // See the ClientLogMode type documentation for the complete set of logging modes and available
- // configuration.
+ // See the ClientLogMode type documentation for the complete set of logging
+ // modes and available configuration.
ClientLogMode ClientLogMode
+
+ // The configured DefaultsMode. If not specified, service clients will
+ // default to legacy.
+ //
+ // Supported modes are: auto, cross-region, in-region, legacy, mobile,
+ // standard
+ DefaultsMode DefaultsMode
+
+ // The RuntimeEnvironment configuration, only populated if the DefaultsMode
+ // is set to DefaultsModeAuto and is initialized by
+ // `config.LoadDefaultConfig`. You should not populate this structure
+ // programmatically, or rely on the values here within your applications.
+ RuntimeEnvironment RuntimeEnvironment
}
// NewConfig returns a new Config pointer that can be chained with builder
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go
index 1411a5c..dfd2b1d 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go
@@ -2,6 +2,7 @@ package aws
import (
"context"
+ "fmt"
"sync/atomic"
"time"
@@ -24,11 +25,13 @@ type CredentialsCacheOptions struct {
// If ExpiryWindow is 0 or less it will be ignored.
ExpiryWindow time.Duration
- // ExpiryWindowJitterFrac provides a mechanism for randomizing the expiration of credentials
- // within the configured ExpiryWindow by a random percentage. Valid values are between 0.0 and 1.0.
+ // ExpiryWindowJitterFrac provides a mechanism for randomizing the
+ // expiration of credentials within the configured ExpiryWindow by a random
+ // percentage. Valid values are between 0.0 and 1.0.
//
- // As an example if ExpiryWindow is 60 seconds and ExpiryWindowJitterFrac is 0.5 then credentials will be set to
- // expire between 30 to 60 seconds prior to their actual expiration time.
+ // As an example if ExpiryWindow is 60 seconds and ExpiryWindowJitterFrac
+ // is 0.5 then credentials will be set to expire between 30 to 60 seconds
+ // prior to their actual expiration time.
//
// If ExpiryWindow is 0 or less then ExpiryWindowJitterFrac is ignored.
// If ExpiryWindowJitterFrac is 0 then no randomization will be applied to the window.
@@ -39,8 +42,19 @@ type CredentialsCacheOptions struct {
// CredentialsCache provides caching and concurrency safe credentials retrieval
// via the provider's retrieve method.
+//
+// CredentialsCache will look for optional interfaces on the Provider to adjust
+// how the credential cache handles credentials caching.
+//
+// * HandleFailRefreshCredentialsCacheStrategy - Allows provider to handle
+// credential refresh failures. This could return an updated Credentials
+// value, or attempt another means of retrieving credentials.
+//
+// * AdjustExpiresByCredentialsCacheStrategy - Allows provider to adjust how
+// credentials Expires is modified. This could modify how the Credentials
+// Expires is adjusted based on the CredentialsCache ExpiryWindow option.
+// Such as providing a floor not to reduce the Expires below.
type CredentialsCache struct {
- // provider is the CredentialProvider implementation to be wrapped by the CredentialCache.
provider CredentialsProvider
options CredentialsCacheOptions
@@ -48,8 +62,9 @@ type CredentialsCache struct {
sf singleflight.Group
}
-// NewCredentialsCache returns a CredentialsCache that wraps provider. Provider is expected to not be nil. A variadic
-// list of one or more functions can be provided to modify the CredentialsCache configuration. This allows for
+// NewCredentialsCache returns a CredentialsCache that wraps provider. Provider
+// is expected to not be nil. A variadic list of one or more functions can be
+// provided to modify the CredentialsCache configuration. This allows for
// configuration of credential expiry window and jitter.
func NewCredentialsCache(provider CredentialsProvider, optFns ...func(options *CredentialsCacheOptions)) *CredentialsCache {
options := CredentialsCacheOptions{}
@@ -81,8 +96,8 @@ func NewCredentialsCache(provider CredentialsProvider, optFns ...func(options *C
//
// Returns and error if the provider's retrieve method returns an error.
func (p *CredentialsCache) Retrieve(ctx context.Context) (Credentials, error) {
- if creds := p.getCreds(); creds != nil {
- return *creds, nil
+ if creds, ok := p.getCreds(); ok && !creds.Expired() {
+ return creds, nil
}
resCh := p.sf.DoChan("", func() (interface{}, error) {
@@ -97,39 +112,64 @@ func (p *CredentialsCache) Retrieve(ctx context.Context) (Credentials, error) {
}
func (p *CredentialsCache) singleRetrieve(ctx context.Context) (interface{}, error) {
- if creds := p.getCreds(); creds != nil {
- return *creds, nil
+ currCreds, ok := p.getCreds()
+ if ok && !currCreds.Expired() {
+ return currCreds, nil
}
- creds, err := p.provider.Retrieve(ctx)
- if err == nil {
- if creds.CanExpire {
- randFloat64, err := sdkrand.CryptoRandFloat64()
- if err != nil {
- return Credentials{}, err
- }
- jitter := time.Duration(randFloat64 * p.options.ExpiryWindowJitterFrac * float64(p.options.ExpiryWindow))
- creds.Expires = creds.Expires.Add(-(p.options.ExpiryWindow - jitter))
+ newCreds, err := p.provider.Retrieve(ctx)
+ if err != nil {
+ handleFailToRefresh := defaultHandleFailToRefresh
+ if cs, ok := p.provider.(HandleFailRefreshCredentialsCacheStrategy); ok {
+ handleFailToRefresh = cs.HandleFailToRefresh
+ }
+ newCreds, err = handleFailToRefresh(ctx, currCreds, err)
+ if err != nil {
+ return Credentials{}, fmt.Errorf("failed to refresh cached credentials, %w", err)
+ }
+ }
+
+ if newCreds.CanExpire && p.options.ExpiryWindow > 0 {
+ adjustExpiresBy := defaultAdjustExpiresBy
+ if cs, ok := p.provider.(AdjustExpiresByCredentialsCacheStrategy); ok {
+ adjustExpiresBy = cs.AdjustExpiresBy
}
- p.creds.Store(&creds)
+ randFloat64, err := sdkrand.CryptoRandFloat64()
+ if err != nil {
+ return Credentials{}, fmt.Errorf("failed to get random provider, %w", err)
+ }
+
+ var jitter time.Duration
+ if p.options.ExpiryWindowJitterFrac > 0 {
+ jitter = time.Duration(randFloat64 *
+ p.options.ExpiryWindowJitterFrac * float64(p.options.ExpiryWindow))
+ }
+
+ newCreds, err = adjustExpiresBy(newCreds, -(p.options.ExpiryWindow - jitter))
+ if err != nil {
+ return Credentials{}, fmt.Errorf("failed to adjust credentials expires, %w", err)
+ }
}
- return creds, err
+ p.creds.Store(&newCreds)
+ return newCreds, nil
}
-func (p *CredentialsCache) getCreds() *Credentials {
+// getCreds returns the currently stored credentials and true. Returning false
+// if no credentials were stored.
+func (p *CredentialsCache) getCreds() (Credentials, bool) {
v := p.creds.Load()
if v == nil {
- return nil
+ return Credentials{}, false
}
c := v.(*Credentials)
- if c != nil && c.HasKeys() && !c.Expired() {
- return c
+ if c == nil || !c.HasKeys() {
+ return Credentials{}, false
}
- return nil
+ return *c, true
}
// Invalidate will invalidate the cached credentials. The next call to Retrieve
@@ -137,3 +177,42 @@ func (p *CredentialsCache) getCreds() *Credentials {
func (p *CredentialsCache) Invalidate() {
p.creds.Store((*Credentials)(nil))
}
+
+// HandleFailRefreshCredentialsCacheStrategy is an interface for
+// CredentialsCache to allow CredentialsProvider how failed to refresh
+// credentials is handled.
+type HandleFailRefreshCredentialsCacheStrategy interface {
+ // Given the previously cached Credentials, if any, and refresh error, may
+ // returns new or modified set of Credentials, or error.
+ //
+ // Credential caches may use default implementation if nil.
+ HandleFailToRefresh(context.Context, Credentials, error) (Credentials, error)
+}
+
+// defaultHandleFailToRefresh returns the passed in error.
+func defaultHandleFailToRefresh(ctx context.Context, _ Credentials, err error) (Credentials, error) {
+ return Credentials{}, err
+}
+
+// AdjustExpiresByCredentialsCacheStrategy is an interface for CredentialCache
+// to allow CredentialsProvider to intercept adjustments to Credentials expiry
+// based on expectations and use cases of CredentialsProvider.
+//
+// Credential caches may use default implementation if nil.
+type AdjustExpiresByCredentialsCacheStrategy interface {
+ // Given a Credentials as input, applying any mutations and
+ // returning the potentially updated Credentials, or error.
+ AdjustExpiresBy(Credentials, time.Duration) (Credentials, error)
+}
+
+// defaultAdjustExpiresBy adds the duration to the passed in credentials Expires,
+// and returns the updated credentials value. If Credentials value's CanExpire
+// is false, the passed in credentials are returned unchanged.
+func defaultAdjustExpiresBy(creds Credentials, dur time.Duration) (Credentials, error) {
+ if !creds.CanExpire {
+ return creds, nil
+ }
+
+ creds.Expires = creds.Expires.Add(dur)
+ return creds, nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go
index ce3868a..0fffc53 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go
@@ -83,16 +83,20 @@ type Credentials struct {
// Source of the credentials
Source string
- // Time the credentials will expire.
+ // States if the credentials can expire or not.
CanExpire bool
- Expires time.Time
+
+ // The time the credentials will expire at. Should be ignored if CanExpire
+ // is false.
+ Expires time.Time
}
// Expired returns if the credentials have expired.
func (v Credentials) Expired() bool {
if v.CanExpire {
- // Calling Round(0) on the current time will truncate the monotonic reading only. Ensures credential expiry
- // time is always based on reported wall-clock time.
+ // Calling Round(0) on the current time will truncate the monotonic
+ // reading only. Ensures credential expiry time is always based on
+ // reported wall-clock time.
return !v.Expires.After(sdk.NowTime().Round(0))
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/auto.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/auto.go
new file mode 100644
index 0000000..fd408e5
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/auto.go
@@ -0,0 +1,38 @@
+package defaults
+
+import (
+ "github.com/aws/aws-sdk-go-v2/aws"
+ "runtime"
+ "strings"
+)
+
+var getGOOS = func() string {
+ return runtime.GOOS
+}
+
+// ResolveDefaultsModeAuto is used to determine the effective aws.DefaultsMode when the mode
+// is set to aws.DefaultsModeAuto.
+func ResolveDefaultsModeAuto(region string, environment aws.RuntimeEnvironment) aws.DefaultsMode {
+ goos := getGOOS()
+ if goos == "android" || goos == "ios" {
+ return aws.DefaultsModeMobile
+ }
+
+ var currentRegion string
+ if len(environment.EnvironmentIdentifier) > 0 {
+ currentRegion = environment.Region
+ }
+
+ if len(currentRegion) == 0 && len(environment.EC2InstanceMetadataRegion) > 0 {
+ currentRegion = environment.EC2InstanceMetadataRegion
+ }
+
+ if len(region) > 0 && len(currentRegion) > 0 {
+ if strings.EqualFold(region, currentRegion) {
+ return aws.DefaultsModeInRegion
+ }
+ return aws.DefaultsModeCrossRegion
+ }
+
+ return aws.DefaultsModeStandard
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/configuration.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/configuration.go
new file mode 100644
index 0000000..8b7e01f
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/configuration.go
@@ -0,0 +1,43 @@
+package defaults
+
+import (
+ "time"
+
+ "github.com/aws/aws-sdk-go-v2/aws"
+)
+
+// Configuration is the set of SDK configuration options that are determined based
+// on the configured DefaultsMode.
+type Configuration struct {
+ // RetryMode is the configuration's default retry mode API clients should
+ // use for constructing a Retryer.
+ RetryMode aws.RetryMode
+
+ // ConnectTimeout is the maximum amount of time a dial will wait for
+ // a connect to complete.
+ //
+ // See https://pkg.go.dev/net#Dialer.Timeout
+ ConnectTimeout *time.Duration
+
+ // TLSNegotiationTimeout specifies the maximum amount of time waiting to
+ // wait for a TLS handshake.
+ //
+ // See https://pkg.go.dev/net/http#Transport.TLSHandshakeTimeout
+ TLSNegotiationTimeout *time.Duration
+}
+
+// GetConnectTimeout returns the ConnectTimeout value, returns false if the value is not set.
+func (c *Configuration) GetConnectTimeout() (time.Duration, bool) {
+ if c.ConnectTimeout == nil {
+ return 0, false
+ }
+ return *c.ConnectTimeout, true
+}
+
+// GetTLSNegotiationTimeout returns the TLSNegotiationTimeout value, returns false if the value is not set.
+func (c *Configuration) GetTLSNegotiationTimeout() (time.Duration, bool) {
+ if c.TLSNegotiationTimeout == nil {
+ return 0, false
+ }
+ return *c.TLSNegotiationTimeout, true
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/defaults.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/defaults.go
new file mode 100644
index 0000000..dbaa873
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/defaults.go
@@ -0,0 +1,50 @@
+// Code generated by github.com/aws/aws-sdk-go-v2/internal/codegen/cmd/defaultsconfig. DO NOT EDIT.
+
+package defaults
+
+import (
+ "fmt"
+ "github.com/aws/aws-sdk-go-v2/aws"
+ "time"
+)
+
+// GetModeConfiguration returns the default Configuration descriptor for the given mode.
+//
+// Supports the following modes: cross-region, in-region, mobile, standard
+func GetModeConfiguration(mode aws.DefaultsMode) (Configuration, error) {
+ var mv aws.DefaultsMode
+ mv.SetFromString(string(mode))
+
+ switch mv {
+ case aws.DefaultsModeCrossRegion:
+ settings := Configuration{
+ ConnectTimeout: aws.Duration(3100 * time.Millisecond),
+ RetryMode: aws.RetryMode("standard"),
+ TLSNegotiationTimeout: aws.Duration(3100 * time.Millisecond),
+ }
+ return settings, nil
+ case aws.DefaultsModeInRegion:
+ settings := Configuration{
+ ConnectTimeout: aws.Duration(1100 * time.Millisecond),
+ RetryMode: aws.RetryMode("standard"),
+ TLSNegotiationTimeout: aws.Duration(1100 * time.Millisecond),
+ }
+ return settings, nil
+ case aws.DefaultsModeMobile:
+ settings := Configuration{
+ ConnectTimeout: aws.Duration(30000 * time.Millisecond),
+ RetryMode: aws.RetryMode("standard"),
+ TLSNegotiationTimeout: aws.Duration(30000 * time.Millisecond),
+ }
+ return settings, nil
+ case aws.DefaultsModeStandard:
+ settings := Configuration{
+ ConnectTimeout: aws.Duration(3100 * time.Millisecond),
+ RetryMode: aws.RetryMode("standard"),
+ TLSNegotiationTimeout: aws.Duration(3100 * time.Millisecond),
+ }
+ return settings, nil
+ default:
+ return Configuration{}, fmt.Errorf("unsupported defaults mode: %v", mode)
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/doc.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/doc.go
new file mode 100644
index 0000000..2d90011
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/doc.go
@@ -0,0 +1,2 @@
+// Package defaults provides recommended configuration values for AWS SDKs and CLIs.
+package defaults
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/defaultsmode.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/defaultsmode.go
new file mode 100644
index 0000000..fcf9387
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/defaultsmode.go
@@ -0,0 +1,95 @@
+// Code generated by github.com/aws/aws-sdk-go-v2/internal/codegen/cmd/defaultsmode. DO NOT EDIT.
+
+package aws
+
+import (
+ "strings"
+)
+
+// DefaultsMode is the SDK defaults mode setting.
+type DefaultsMode string
+
+// The DefaultsMode constants.
+const (
+ // DefaultsModeAuto is an experimental mode that builds on the standard mode.
+ // The SDK will attempt to discover the execution environment to determine the
+ // appropriate settings automatically.
+ //
+ // Note that the auto detection is heuristics-based and does not guarantee 100%
+ // accuracy. STANDARD mode will be used if the execution environment cannot
+ // be determined. The auto detection might query EC2 Instance Metadata service
+ // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html),
+ // which might introduce latency. Therefore we recommend choosing an explicit
+ // defaults_mode instead if startup latency is critical to your application
+ DefaultsModeAuto DefaultsMode = "auto"
+
+ // DefaultsModeCrossRegion builds on the standard mode and includes optimization
+ // tailored for applications which call AWS services in a different region
+ //
+ // Note that the default values vended from this mode might change as best practices
+ // may evolve. As a result, it is encouraged to perform tests when upgrading
+ // the SDK
+ DefaultsModeCrossRegion DefaultsMode = "cross-region"
+
+ // DefaultsModeInRegion builds on the standard mode and includes optimization
+ // tailored for applications which call AWS services from within the same AWS
+ // region
+ //
+ // Note that the default values vended from this mode might change as best practices
+ // may evolve. As a result, it is encouraged to perform tests when upgrading
+ // the SDK
+ DefaultsModeInRegion DefaultsMode = "in-region"
+
+ // DefaultsModeLegacy provides default settings that vary per SDK and were used
+ // prior to establishment of defaults_mode
+ DefaultsModeLegacy DefaultsMode = "legacy"
+
+ // DefaultsModeMobile builds on the standard mode and includes optimization
+ // tailored for mobile applications
+ //
+ // Note that the default values vended from this mode might change as best practices
+ // may evolve. As a result, it is encouraged to perform tests when upgrading
+ // the SDK
+ DefaultsModeMobile DefaultsMode = "mobile"
+
+ // DefaultsModeStandard provides the latest recommended default values that
+ // should be safe to run in most scenarios
+ //
+ // Note that the default values vended from this mode might change as best practices
+ // may evolve. As a result, it is encouraged to perform tests when upgrading
+ // the SDK
+ DefaultsModeStandard DefaultsMode = "standard"
+)
+
+// SetFromString sets the DefaultsMode value to one of the pre-defined constants that matches
+// the provided string when compared using EqualFold. If the value does not match a known
+// constant it will be set to as-is and the function will return false. As a special case, if the
+// provided value is a zero-length string, the mode will be set to LegacyDefaultsMode.
+func (d *DefaultsMode) SetFromString(v string) (ok bool) {
+ switch {
+ case strings.EqualFold(v, string(DefaultsModeAuto)):
+ *d = DefaultsModeAuto
+ ok = true
+ case strings.EqualFold(v, string(DefaultsModeCrossRegion)):
+ *d = DefaultsModeCrossRegion
+ ok = true
+ case strings.EqualFold(v, string(DefaultsModeInRegion)):
+ *d = DefaultsModeInRegion
+ ok = true
+ case strings.EqualFold(v, string(DefaultsModeLegacy)):
+ *d = DefaultsModeLegacy
+ ok = true
+ case strings.EqualFold(v, string(DefaultsModeMobile)):
+ *d = DefaultsModeMobile
+ ok = true
+ case strings.EqualFold(v, string(DefaultsModeStandard)):
+ *d = DefaultsModeStandard
+ ok = true
+ case len(v) == 0:
+ *d = DefaultsModeLegacy
+ ok = true
+ default:
+ *d = DefaultsMode(v)
+ }
+ return ok
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/endpoints.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/endpoints.go
index 43e14bc..aa10a9b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/endpoints.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/endpoints.go
@@ -160,22 +160,28 @@ func (e *EndpointNotFoundError) Unwrap() error {
// available. If the EndpointResolver returns an EndpointNotFoundError error,
// API clients will fallback to attempting to resolve the endpoint using its
// internal default endpoint resolver.
+//
+// Deprecated: See EndpointResolverWithOptions
type EndpointResolver interface {
ResolveEndpoint(service, region string) (Endpoint, error)
}
// EndpointResolverFunc wraps a function to satisfy the EndpointResolver interface.
+//
+// Deprecated: See EndpointResolverWithOptionsFunc
type EndpointResolverFunc func(service, region string) (Endpoint, error)
// ResolveEndpoint calls the wrapped function and returns the results.
+//
+// Deprecated: See EndpointResolverWithOptions.ResolveEndpoint
func (e EndpointResolverFunc) ResolveEndpoint(service, region string) (Endpoint, error) {
return e(service, region)
}
// EndpointResolverWithOptions is an endpoint resolver that can be used to provide or
-// override an endpoint for the given service, region, and the service clients EndpointOptions. API clients will
-// attempt to use the EndpointResolver first to resolve an endpoint if
-// available. If the EndpointResolver returns an EndpointNotFoundError error,
+// override an endpoint for the given service, region, and the service client's EndpointOptions. API clients will
+// attempt to use the EndpointResolverWithOptions first to resolve an endpoint if
+// available. If the EndpointResolverWithOptions returns an EndpointNotFoundError error,
// API clients will fallback to attempting to resolve the endpoint using its
// internal default endpoint resolver.
type EndpointResolverWithOptions interface {
@@ -183,11 +189,11 @@ type EndpointResolverWithOptions interface {
}
// EndpointResolverWithOptionsFunc wraps a function to satisfy the EndpointResolverWithOptions interface.
-type EndpointResolverWithOptionsFunc func(service, region string, options interface{}) (Endpoint, error)
+type EndpointResolverWithOptionsFunc func(service, region string, options ...interface{}) (Endpoint, error)
// ResolveEndpoint calls the wrapped function and returns the results.
-func (e EndpointResolverWithOptionsFunc) ResolveEndpoint(service, region string, options interface{}) (Endpoint, error) {
- return e(service, region, options)
+func (e EndpointResolverWithOptionsFunc) ResolveEndpoint(service, region string, options ...interface{}) (Endpoint, error) {
+ return e(service, region, options...)
}
// GetDisableHTTPS takes a service's EndpointResolverOptions and returns the DisableHTTPS value.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/from_ptr.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/from_ptr.go
index 72e29c3..2394418 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/from_ptr.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/from_ptr.go
@@ -342,3 +342,24 @@ func ToTimeSlice(vs []*time.Time) []time.Time {
func ToTimeMap(vs map[string]*time.Time) map[string]time.Time {
return ptr.ToTimeMap(vs)
}
+
+// ToDuration returns time.Duration value dereferenced if the passed
+// in pointer was not nil. Returns a time.Duration zero value if the
+// pointer was nil.
+func ToDuration(p *time.Duration) (v time.Duration) {
+ return ptr.ToDuration(p)
+}
+
+// ToDurationSlice returns a slice of time.Duration values, that are
+// dereferenced if the passed in pointer was not nil. Returns a time.Duration
+// zero value if the pointer was nil.
+func ToDurationSlice(vs []*time.Duration) []time.Duration {
+ return ptr.ToDurationSlice(vs)
+}
+
+// ToDurationMap returns a map of time.Duration values, that are
+// dereferenced if the passed in pointer was not nil. The time.Duration
+// zero value is used if the pointer was nil.
+func ToDurationMap(vs map[string]*time.Duration) map[string]time.Duration {
+ return ptr.ToDurationMap(vs)
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go
index abbaf9b..4f24b15 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go
@@ -3,4 +3,4 @@
package aws
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.11.0"
+const goModuleVersion = "1.16.5"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/CHANGELOG.md
index 253c5c9..b0a1826 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/CHANGELOG.md
@@ -1,3 +1,27 @@
+# v1.4.2 (2022-06-07)
+
+* No change notes available for this release.
+
+# v1.4.1 (2022-03-24)
+
+* No change notes available for this release.
+
+# v1.4.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+
+# v1.3.0 (2022-02-24)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+
+# v1.2.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+
+# v1.1.0 (2022-01-07)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+
# v1.0.0 (2021-11-06)
* **Announcement**: Support has been added for AWS EventStream APIs for Kinesis, S3, and Transcribe Streaming. Support for the Lex Runtime V2 EventStream API will be added in a future release.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/go_module_metadata.go
index 4f06c48..7121c6e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/go_module_metadata.go
@@ -3,4 +3,4 @@
package eventstream
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.0.0"
+const goModuleVersion = "1.4.2"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_bucket.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_bucket.go
index f337803..974ef59 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_bucket.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_bucket.go
@@ -7,17 +7,19 @@ import (
// TokenBucket provides a concurrency safe utility for adding and removing
// tokens from the available token bucket.
type TokenBucket struct {
- capacity uint
- maxCapacity uint
- mu sync.Mutex
+ remainingTokens uint
+ maxCapacity uint
+ minCapacity uint
+ mu sync.Mutex
}
// NewTokenBucket returns an initialized TokenBucket with the capacity
// specified.
func NewTokenBucket(i uint) *TokenBucket {
return &TokenBucket{
- capacity: i,
- maxCapacity: i,
+ remainingTokens: i,
+ maxCapacity: i,
+ minCapacity: 1,
}
}
@@ -25,17 +27,18 @@ func NewTokenBucket(i uint) *TokenBucket {
// there are tokens available true will be returned along with the number of
// available tokens remaining. If amount requested is larger than the available
// capacity, false will be returned along with the available capacity. If the
-// amount is less than the available capacity
+// amount is less than the available capacity, the capacity will be reduced by
+// that amount, and the remaining capacity and true will be returned.
func (t *TokenBucket) Retrieve(amount uint) (available uint, retrieved bool) {
t.mu.Lock()
defer t.mu.Unlock()
- if amount > t.capacity {
- return t.capacity, false
+ if amount > t.remainingTokens {
+ return t.remainingTokens, false
}
- t.capacity -= amount
- return t.capacity, true
+ t.remainingTokens -= amount
+ return t.remainingTokens, true
}
// Refund returns the amount of tokens back to the available token bucket, up
@@ -44,8 +47,50 @@ func (t *TokenBucket) Refund(amount uint) {
t.mu.Lock()
defer t.mu.Unlock()
- t.capacity += amount
- if t.capacity > t.maxCapacity {
- t.capacity = t.maxCapacity
- }
+ // Capacity cannot exceed max capacity.
+ t.remainingTokens = uintMin(t.remainingTokens+amount, t.maxCapacity)
+}
+
+// Capacity returns the maximum capacity of tokens that the bucket could
+// contain.
+func (t *TokenBucket) Capacity() uint {
+ t.mu.Lock()
+ defer t.mu.Unlock()
+
+ return t.maxCapacity
+}
+
+// Remaining returns the number of tokens that remaining in the bucket.
+func (t *TokenBucket) Remaining() uint {
+ t.mu.Lock()
+ defer t.mu.Unlock()
+
+ return t.remainingTokens
+}
+
+// Resize adjusts the size of the token bucket. Returns the capacity remaining.
+func (t *TokenBucket) Resize(size uint) uint {
+ t.mu.Lock()
+ defer t.mu.Unlock()
+
+ t.maxCapacity = uintMax(size, t.minCapacity)
+
+ // Capacity needs to be capped at max capacity, if max size reduced.
+ t.remainingTokens = uintMin(t.remainingTokens, t.maxCapacity)
+
+ return t.remainingTokens
+}
+
+func uintMin(a, b uint) uint {
+ if a < b {
+ return a
+ }
+ return b
+}
+
+func uintMax(a, b uint) uint {
+ if a > b {
+ return a
+ }
+ return b
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go
index d7997f4..12a3f0c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go
@@ -69,6 +69,11 @@ func (l *TokenRateLimit) AddTokens(v uint) error {
return nil
}
+// Remaining returns the number of remaining tokens in the bucket.
+func (l *TokenRateLimit) Remaining() uint {
+ return l.bucket.Remaining()
+}
+
// QuotaExceededError provides the SDK error when the retries for a given
// token bucket have been exhausted.
type QuotaExceededError struct {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive.go
new file mode 100644
index 0000000..b9fce01
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive.go
@@ -0,0 +1,156 @@
+package retry
+
+import (
+ "context"
+ "fmt"
+ "time"
+
+ "github.com/aws/aws-sdk-go-v2/aws"
+ "github.com/aws/aws-sdk-go-v2/internal/sdk"
+)
+
+const (
+ // DefaultRequestCost is the cost of a single request from the adaptive
+ // rate limited token bucket.
+ DefaultRequestCost uint = 1
+)
+
+// DefaultThrottles provides the set of errors considered throttle errors that
+// are checked by default.
+var DefaultThrottles = []IsErrorThrottle{
+ ThrottleErrorCode{
+ Codes: DefaultThrottleErrorCodes,
+ },
+}
+
+// AdaptiveModeOptions provides the functional options for configuring the
+// adaptive retry mode, and delay behavior.
+type AdaptiveModeOptions struct {
+ // If the adaptive token bucket is empty, when an attempt will be made
+ // AdaptiveMode will sleep until a token is available. This can occur when
+ // attempts fail with throttle errors. Use this option to disable the sleep
+ // until token is available, and return error immediately.
+ FailOnNoAttemptTokens bool
+
+ // The cost of an attempt from the AdaptiveMode's adaptive token bucket.
+ RequestCost uint
+
+ // Set of strategies to determine if the attempt failed due to a throttle
+ // error.
+ //
+ // It is safe to append to this list in NewAdaptiveMode's functional options.
+ Throttles []IsErrorThrottle
+
+ // Set of options for standard retry mode that AdaptiveMode is built on top
+ // of. AdaptiveMode may apply its own defaults to Standard retry mode that
+ // are different than the defaults of NewStandard. Use these options to
+ // override the default options.
+ StandardOptions []func(*StandardOptions)
+}
+
+// AdaptiveMode provides an experimental retry strategy that expands on the
+// Standard retry strategy, adding client attempt rate limits. The attempt rate
+// limit is initially unrestricted, but becomes restricted when the attempt
+// fails with for a throttle error. When restricted AdaptiveMode may need to
+// sleep before an attempt is made, if too many throttles have been received.
+// AdaptiveMode's sleep can be canceled with context cancel. Set
+// AdaptiveModeOptions FailOnNoAttemptTokens to change the behavior from sleep,
+// to fail fast.
+//
+// Eventually unrestricted attempt rate limit will be restored once attempts no
+// longer are failing due to throttle errors.
+type AdaptiveMode struct {
+ options AdaptiveModeOptions
+ throttles IsErrorThrottles
+
+ retryer aws.RetryerV2
+ rateLimit *adaptiveRateLimit
+}
+
+// NewAdaptiveMode returns an initialized AdaptiveMode retry strategy.
+func NewAdaptiveMode(optFns ...func(*AdaptiveModeOptions)) *AdaptiveMode {
+ o := AdaptiveModeOptions{
+ RequestCost: DefaultRequestCost,
+ Throttles: append([]IsErrorThrottle{}, DefaultThrottles...),
+ }
+ for _, fn := range optFns {
+ fn(&o)
+ }
+
+ return &AdaptiveMode{
+ options: o,
+ throttles: IsErrorThrottles(o.Throttles),
+ retryer: NewStandard(o.StandardOptions...),
+ rateLimit: newAdaptiveRateLimit(),
+ }
+}
+
+// IsErrorRetryable returns if the failed attempt is retryable. This check
+// should determine if the error can be retried, or if the error is
+// terminal.
+func (a *AdaptiveMode) IsErrorRetryable(err error) bool {
+ return a.retryer.IsErrorRetryable(err)
+}
+
+// MaxAttempts returns the maximum number of attempts that can be made for
+// a attempt before failing. A value of 0 implies that the attempt should
+// be retried until it succeeds if the errors are retryable.
+func (a *AdaptiveMode) MaxAttempts() int {
+ return a.retryer.MaxAttempts()
+}
+
+// RetryDelay returns the delay that should be used before retrying the
+// attempt. Will return error if the if the delay could not be determined.
+func (a *AdaptiveMode) RetryDelay(attempt int, opErr error) (
+ time.Duration, error,
+) {
+ return a.retryer.RetryDelay(attempt, opErr)
+}
+
+// GetRetryToken attempts to deduct the retry cost from the retry token pool.
+// Returning the token release function, or error.
+func (a *AdaptiveMode) GetRetryToken(ctx context.Context, opErr error) (
+ releaseToken func(error) error, err error,
+) {
+ return a.retryer.GetRetryToken(ctx, opErr)
+}
+
+// GetInitialToken returns the initial attempt token that can increment the
+// retry token pool if the attempt is successful.
+//
+// Deprecated: This method does not provide a way to block using Context,
+// nor can it return an error. Use RetryerV2, and GetAttemptToken instead. Only
+// present to implement Retryer interface.
+func (a *AdaptiveMode) GetInitialToken() (releaseToken func(error) error) {
+ return nopRelease
+}
+
+// GetAttemptToken returns the attempt token that can be used to rate limit
+// attempt calls. Will be used by the SDK's retry package's Attempt
+// middleware to get a attempt token prior to calling the temp and releasing
+// the attempt token after the attempt has been made.
+func (a *AdaptiveMode) GetAttemptToken(ctx context.Context) (func(error) error, error) {
+ for {
+ acquiredToken, waitTryAgain := a.rateLimit.AcquireToken(a.options.RequestCost)
+ if acquiredToken {
+ break
+ }
+ if a.options.FailOnNoAttemptTokens {
+ return nil, fmt.Errorf(
+ "unable to get attempt token, and FailOnNoAttemptTokens enables")
+ }
+
+ if err := sdk.SleepWithContext(ctx, waitTryAgain); err != nil {
+ return nil, fmt.Errorf("failed to wait for token to be available, %w", err)
+ }
+ }
+
+ return a.handleResponse, nil
+}
+
+func (a *AdaptiveMode) handleResponse(opErr error) error {
+ throttled := a.throttles.IsErrorThrottle(opErr).Bool()
+
+ a.rateLimit.Update(throttled)
+ return nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive_ratelimit.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive_ratelimit.go
new file mode 100644
index 0000000..ad96d9b
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive_ratelimit.go
@@ -0,0 +1,158 @@
+package retry
+
+import (
+ "math"
+ "sync"
+ "time"
+
+ "github.com/aws/aws-sdk-go-v2/internal/sdk"
+)
+
+type adaptiveRateLimit struct {
+ tokenBucketEnabled bool
+
+ smooth float64
+ beta float64
+ scaleConstant float64
+ minFillRate float64
+
+ fillRate float64
+ calculatedRate float64
+ lastRefilled time.Time
+ measuredTxRate float64
+ lastTxRateBucket float64
+ requestCount int64
+ lastMaxRate float64
+ lastThrottleTime time.Time
+ timeWindow float64
+
+ tokenBucket *adaptiveTokenBucket
+
+ mu sync.Mutex
+}
+
+func newAdaptiveRateLimit() *adaptiveRateLimit {
+ now := sdk.NowTime()
+ return &adaptiveRateLimit{
+ smooth: 0.8,
+ beta: 0.7,
+ scaleConstant: 0.4,
+
+ minFillRate: 0.5,
+
+ lastTxRateBucket: math.Floor(timeFloat64Seconds(now)),
+ lastThrottleTime: now,
+
+ tokenBucket: newAdaptiveTokenBucket(0),
+ }
+}
+
+func (a *adaptiveRateLimit) Enable(v bool) {
+ a.mu.Lock()
+ defer a.mu.Unlock()
+
+ a.tokenBucketEnabled = v
+}
+
+func (a *adaptiveRateLimit) AcquireToken(amount uint) (
+ tokenAcquired bool, waitTryAgain time.Duration,
+) {
+ a.mu.Lock()
+ defer a.mu.Unlock()
+
+ if !a.tokenBucketEnabled {
+ return true, 0
+ }
+
+ a.tokenBucketRefill()
+
+ available, ok := a.tokenBucket.Retrieve(float64(amount))
+ if !ok {
+ waitDur := float64Seconds((float64(amount) - available) / a.fillRate)
+ return false, waitDur
+ }
+
+ return true, 0
+}
+
+func (a *adaptiveRateLimit) Update(throttled bool) {
+ a.mu.Lock()
+ defer a.mu.Unlock()
+
+ a.updateMeasuredRate()
+
+ if throttled {
+ rateToUse := a.measuredTxRate
+ if a.tokenBucketEnabled {
+ rateToUse = math.Min(a.measuredTxRate, a.fillRate)
+ }
+
+ a.lastMaxRate = rateToUse
+ a.calculateTimeWindow()
+ a.lastThrottleTime = sdk.NowTime()
+ a.calculatedRate = a.cubicThrottle(rateToUse)
+ a.tokenBucketEnabled = true
+ } else {
+ a.calculateTimeWindow()
+ a.calculatedRate = a.cubicSuccess(sdk.NowTime())
+ }
+
+ newRate := math.Min(a.calculatedRate, 2*a.measuredTxRate)
+ a.tokenBucketUpdateRate(newRate)
+}
+
+func (a *adaptiveRateLimit) cubicSuccess(t time.Time) float64 {
+ dt := secondsFloat64(t.Sub(a.lastThrottleTime))
+ return (a.scaleConstant * math.Pow(dt-a.timeWindow, 3)) + a.lastMaxRate
+}
+
+func (a *adaptiveRateLimit) cubicThrottle(rateToUse float64) float64 {
+ return rateToUse * a.beta
+}
+
+func (a *adaptiveRateLimit) calculateTimeWindow() {
+ a.timeWindow = math.Pow((a.lastMaxRate*(1.-a.beta))/a.scaleConstant, 1./3.)
+}
+
+func (a *adaptiveRateLimit) tokenBucketUpdateRate(newRPS float64) {
+ a.tokenBucketRefill()
+ a.fillRate = math.Max(newRPS, a.minFillRate)
+ a.tokenBucket.Resize(newRPS)
+}
+
+func (a *adaptiveRateLimit) updateMeasuredRate() {
+ now := sdk.NowTime()
+ timeBucket := math.Floor(timeFloat64Seconds(now)*2.) / 2.
+ a.requestCount++
+
+ if timeBucket > a.lastTxRateBucket {
+ currentRate := float64(a.requestCount) / (timeBucket - a.lastTxRateBucket)
+ a.measuredTxRate = (currentRate * a.smooth) + (a.measuredTxRate * (1. - a.smooth))
+ a.requestCount = 0
+ a.lastTxRateBucket = timeBucket
+ }
+}
+
+func (a *adaptiveRateLimit) tokenBucketRefill() {
+ now := sdk.NowTime()
+ if a.lastRefilled.IsZero() {
+ a.lastRefilled = now
+ return
+ }
+
+ fillAmount := secondsFloat64(now.Sub(a.lastRefilled)) * a.fillRate
+ a.tokenBucket.Refund(fillAmount)
+ a.lastRefilled = now
+}
+
+func float64Seconds(v float64) time.Duration {
+ return time.Duration(v * float64(time.Second))
+}
+
+func secondsFloat64(v time.Duration) float64 {
+ return float64(v) / float64(time.Second)
+}
+
+func timeFloat64Seconds(v time.Time) float64 {
+ return float64(v.UnixNano()) / float64(time.Second)
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive_token_bucket.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive_token_bucket.go
new file mode 100644
index 0000000..052723e
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive_token_bucket.go
@@ -0,0 +1,83 @@
+package retry
+
+import (
+ "math"
+ "sync"
+)
+
+// adaptiveTokenBucket provides a concurrency safe utility for adding and
+// removing tokens from the available token bucket.
+type adaptiveTokenBucket struct {
+ remainingTokens float64
+ maxCapacity float64
+ minCapacity float64
+ mu sync.Mutex
+}
+
+// newAdaptiveTokenBucket returns an initialized adaptiveTokenBucket with the
+// capacity specified.
+func newAdaptiveTokenBucket(i float64) *adaptiveTokenBucket {
+ return &adaptiveTokenBucket{
+ remainingTokens: i,
+ maxCapacity: i,
+ minCapacity: 1,
+ }
+}
+
+// Retrieve attempts to reduce the available tokens by the amount requested. If
+// there are tokens available true will be returned along with the number of
+// available tokens remaining. If amount requested is larger than the available
+// capacity, false will be returned along with the available capacity. If the
+// amount is less than the available capacity, the capacity will be reduced by
+// that amount, and the remaining capacity and true will be returned.
+func (t *adaptiveTokenBucket) Retrieve(amount float64) (available float64, retrieved bool) {
+ t.mu.Lock()
+ defer t.mu.Unlock()
+
+ if amount > t.remainingTokens {
+ return t.remainingTokens, false
+ }
+
+ t.remainingTokens -= amount
+ return t.remainingTokens, true
+}
+
+// Refund returns the amount of tokens back to the available token bucket, up
+// to the initial capacity.
+func (t *adaptiveTokenBucket) Refund(amount float64) {
+ t.mu.Lock()
+ defer t.mu.Unlock()
+
+ // Capacity cannot exceed max capacity.
+ t.remainingTokens = math.Min(t.remainingTokens+amount, t.maxCapacity)
+}
+
+// Capacity returns the maximum capacity of tokens that the bucket could
+// contain.
+func (t *adaptiveTokenBucket) Capacity() float64 {
+ t.mu.Lock()
+ defer t.mu.Unlock()
+
+ return t.maxCapacity
+}
+
+// Remaining returns the number of tokens that remaining in the bucket.
+func (t *adaptiveTokenBucket) Remaining() float64 {
+ t.mu.Lock()
+ defer t.mu.Unlock()
+
+ return t.remainingTokens
+}
+
+// Resize adjusts the size of the token bucket. Returns the capacity remaining.
+func (t *adaptiveTokenBucket) Resize(size float64) float64 {
+ t.mu.Lock()
+ defer t.mu.Unlock()
+
+ t.maxCapacity = math.Max(size, t.minCapacity)
+
+ // Capacity needs to be capped at max capacity, if max size reduced.
+ t.remainingTokens = math.Min(t.remainingTokens, t.maxCapacity)
+
+ return t.remainingTokens
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/doc.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/doc.go
index 42ced06..1d019ca 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/doc.go
@@ -2,9 +2,9 @@
//
// Retryer Interface and Implementations
//
-// This packages defines Retryer interface that is used to either implement custom retry behavior
-// or to extend the existing retry implementations provided by the SDK. This packages provides a single
-// retry implementations: Standard.
+// This package defines Retryer interface that is used to either implement custom retry behavior
+// or to extend the existing retry implementations provided by the SDK. This package provides a single
+// retry implementation: Standard.
//
// Standard
//
@@ -33,7 +33,7 @@
// value.
//
// You can configure the standard retryer implementation to fit your applications by constructing a standard retryer
-// using the NewStandard function, and providing one more functional arguments that mutate the StandardOptions
+// using the NewStandard function, and providing one more functional argument that mutate the StandardOptions
// structure. StandardOptions provides the ability to modify the token bucket rate limiter, retryable error conditions,
// and the retry delay policy.
//
@@ -71,7 +71,7 @@
// standard retryer.
//
// IsErrorRetryableFunc - Can be used to wrap a function to satisfy the IsErrorRetryable interface. For example,
-// this can be used to extend the standard retryer to add additional logic ot determine if a
+// this can be used to extend the standard retryer to add additional logic to determine if an
// error should be retried.
//
// IsErrorTimeoutFunc - Can be used to wrap a function to satisfy IsErrorTimeout interface. For example,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go
index cd7ef0b..926f5f5 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go
@@ -16,8 +16,8 @@ import (
"github.com/aws/smithy-go/transport/http"
)
-// RequestCloner is a function that can take an input request type and clone the request
-// for use in a subsequent retry attempt
+// RequestCloner is a function that can take an input request type and clone
+// the request for use in a subsequent retry attempt.
type RequestCloner func(interface{}) interface{}
type retryMetadata struct {
@@ -27,20 +27,24 @@ type retryMetadata struct {
AttemptClockSkew time.Duration
}
-// Attempt is a Smithy FinalizeMiddleware that handles retry attempts using the provided
-// Retryer implementation
+// Attempt is a Smithy Finalize middleware that handles retry attempts using
+// the provided Retryer implementation.
type Attempt struct {
- // Enable the logging of retry attempts performed by the SDK.
- // This will include logging retry attempts, unretryable errors, and when max attempts are reached.
+ // Enable the logging of retry attempts performed by the SDK. This will
+ // include logging retry attempts, unretryable errors, and when max
+ // attempts are reached.
LogAttempts bool
- retryer aws.Retryer
+ retryer aws.RetryerV2
requestCloner RequestCloner
}
// NewAttemptMiddleware returns a new Attempt retry middleware.
func NewAttemptMiddleware(retryer aws.Retryer, requestCloner RequestCloner, optFns ...func(*Attempt)) *Attempt {
- m := &Attempt{retryer: retryer, requestCloner: requestCloner}
+ m := &Attempt{
+ retryer: wrapAsRetryerV2(retryer),
+ requestCloner: requestCloner,
+ }
for _, fn := range optFns {
fn(m)
}
@@ -48,9 +52,7 @@ func NewAttemptMiddleware(retryer aws.Retryer, requestCloner RequestCloner, optF
}
// ID returns the middleware identifier
-func (r *Attempt) ID() string {
- return "Retry"
-}
+func (r *Attempt) ID() string { return "Retry" }
func (r Attempt) logf(logger logging.Logger, classification logging.Classification, format string, v ...interface{}) {
if !r.LogAttempts {
@@ -59,8 +61,9 @@ func (r Attempt) logf(logger logging.Logger, classification logging.Classificati
logger.Logf(classification, format, v...)
}
-// HandleFinalize utilizes the provider Retryer implementation to attempt retries over the next handler
-func (r Attempt) HandleFinalize(ctx context.Context, in smithymiddle.FinalizeInput, next smithymiddle.FinalizeHandler) (
+// HandleFinalize utilizes the provider Retryer implementation to attempt
+// retries over the next handler
+func (r *Attempt) HandleFinalize(ctx context.Context, in smithymiddle.FinalizeInput, next smithymiddle.FinalizeHandler) (
out smithymiddle.FinalizeOutput, metadata smithymiddle.Metadata, err error,
) {
var attemptNum int
@@ -68,12 +71,14 @@ func (r Attempt) HandleFinalize(ctx context.Context, in smithymiddle.FinalizeInp
var attemptResults AttemptResults
maxAttempts := r.retryer.MaxAttempts()
+ releaseRetryToken := nopRelease
for {
attemptNum++
attemptInput := in
attemptInput.Request = r.requestCloner(attemptInput.Request)
+ // Record the metadata for the for attempt being started.
attemptCtx := setRetryMetadata(ctx, retryMetadata{
AttemptNum: attemptNum,
AttemptTime: sdk.NowTime().UTC(),
@@ -82,23 +87,20 @@ func (r Attempt) HandleFinalize(ctx context.Context, in smithymiddle.FinalizeInp
})
var attemptResult AttemptResult
+ out, attemptResult, releaseRetryToken, err = r.handleAttempt(attemptCtx, attemptInput, releaseRetryToken, next)
+ attemptClockSkew, _ = awsmiddle.GetAttemptSkew(attemptResult.ResponseMetadata)
- out, attemptResult, err = r.handleAttempt(attemptCtx, attemptInput, next)
-
- var ok bool
- attemptClockSkew, ok = awsmiddle.GetAttemptSkew(attemptResult.ResponseMetadata)
- if !ok {
- attemptClockSkew = 0
- }
-
+ // AttempResult Retried states that the attempt was not successful, and
+ // should be retried.
shouldRetry := attemptResult.Retried
- // add attempt metadata to list of all attempt metadata
+ // Add attempt metadata to list of all attempt metadata
attemptResults.Results = append(attemptResults.Results, attemptResult)
if !shouldRetry {
// Ensure the last response's metadata is used as the bases for result
- // metadata returned by the stack.
+ // metadata returned by the stack. The Slice of attempt results
+ // will be added to this cloned metadata.
metadata = attemptResult.ResponseMetadata.Clone()
break
@@ -110,81 +112,132 @@ func (r Attempt) HandleFinalize(ctx context.Context, in smithymiddle.FinalizeInp
}
// handleAttempt handles an individual request attempt.
-func (r Attempt) handleAttempt(ctx context.Context, in smithymiddle.FinalizeInput, next smithymiddle.FinalizeHandler) (
- out smithymiddle.FinalizeOutput, attemptResult AttemptResult, err error,
+func (r *Attempt) handleAttempt(
+ ctx context.Context, in smithymiddle.FinalizeInput, releaseRetryToken func(error) error, next smithymiddle.FinalizeHandler,
+) (
+ out smithymiddle.FinalizeOutput, attemptResult AttemptResult, _ func(error) error, err error,
) {
defer func() {
attemptResult.Err = err
}()
- relRetryToken := r.retryer.GetInitialToken()
+ // Short circuit if this attempt never can succeed because the context is
+ // canceled. This reduces the chance of token pools being modified for
+ // attempts that will not be made
+ select {
+ case <-ctx.Done():
+ return out, attemptResult, nopRelease, ctx.Err()
+ default:
+ }
+
+ //------------------------------
+ // Get Attempt Token
+ //------------------------------
+ releaseAttemptToken, err := r.retryer.GetAttemptToken(ctx)
+ if err != nil {
+ return out, attemptResult, nopRelease, fmt.Errorf(
+ "failed to get retry Send token, %w", err)
+ }
+
+ //------------------------------
+ // Send Attempt
+ //------------------------------
logger := smithymiddle.GetLogger(ctx)
service, operation := awsmiddle.GetServiceID(ctx), awsmiddle.GetOperationName(ctx)
-
retryMetadata, _ := getRetryMetadata(ctx)
attemptNum := retryMetadata.AttemptNum
maxAttempts := retryMetadata.MaxAttempts
+ // Following attempts must ensure the request payload stream starts in a
+ // rewound state.
if attemptNum > 1 {
if rewindable, ok := in.Request.(interface{ RewindStream() error }); ok {
if rewindErr := rewindable.RewindStream(); rewindErr != nil {
- err = fmt.Errorf("failed to rewind transport stream for retry, %w", rewindErr)
- return out, attemptResult, err
+ return out, attemptResult, nopRelease, fmt.Errorf(
+ "failed to rewind transport stream for retry, %w", rewindErr)
}
}
- r.logf(logger, logging.Debug, "retrying request %s/%s, attempt %d", service, operation, attemptNum)
+ r.logf(logger, logging.Debug, "retrying request %s/%s, attempt %d",
+ service, operation, attemptNum)
}
var metadata smithymiddle.Metadata
out, metadata, err = next.HandleFinalize(ctx, in)
attemptResult.ResponseMetadata = metadata
- if releaseError := relRetryToken(err); releaseError != nil && err != nil {
- err = fmt.Errorf("failed to release token after request error, %w", err)
- return out, attemptResult, err
+ //------------------------------
+ // Bookkeeping
+ //------------------------------
+ // Release the retry token based on the state of the attempt's error (if any).
+ if releaseError := releaseRetryToken(err); releaseError != nil && err != nil {
+ return out, attemptResult, nopRelease, fmt.Errorf(
+ "failed to release retry token after request error, %w", err)
}
-
+ // Release the attempt token based on the state of the attempt's error (if any).
+ if releaseError := releaseAttemptToken(err); releaseError != nil && err != nil {
+ return out, attemptResult, nopRelease, fmt.Errorf(
+ "failed to release initial token after request error, %w", err)
+ }
+ // If there was no error making the attempt, nothing further to do. There
+ // will be nothing to retry.
if err == nil {
- return out, attemptResult, err
+ return out, attemptResult, nopRelease, err
}
+ //------------------------------
+ // Is Retryable and Should Retry
+ //------------------------------
+ // If the attempt failed with an unretryable error, nothing further to do
+ // but return, and inform the caller about the terminal failure.
retryable := r.retryer.IsErrorRetryable(err)
if !retryable {
r.logf(logger, logging.Debug, "request failed with unretryable error %v", err)
- return out, attemptResult, err
+ return out, attemptResult, nopRelease, err
}
// set retryable to true
attemptResult.Retryable = true
+ // Once the maximum number of attempts have been exhausted there is nothing
+ // further to do other than inform the caller about the terminal failure.
if maxAttempts > 0 && attemptNum >= maxAttempts {
r.logf(logger, logging.Debug, "max retry attempts exhausted, max %d", maxAttempts)
err = &MaxAttemptsError{
Attempt: attemptNum,
Err: err,
}
- return out, attemptResult, err
+ return out, attemptResult, nopRelease, err
}
- relRetryToken, reqErr := r.retryer.GetRetryToken(ctx, err)
- if reqErr != nil {
- return out, attemptResult, reqErr
+ //------------------------------
+ // Get Retry (aka Retry Quota) Token
+ //------------------------------
+ // Get a retry token that will be released after the
+ releaseRetryToken, retryTokenErr := r.retryer.GetRetryToken(ctx, err)
+ if retryTokenErr != nil {
+ return out, attemptResult, nopRelease, retryTokenErr
}
+ //------------------------------
+ // Retry Delay and Sleep
+ //------------------------------
+ // Get the retry delay before another attempt can be made, and sleep for
+ // that time. Potentially early exist if the sleep is canceled via the
+ // context.
retryDelay, reqErr := r.retryer.RetryDelay(attemptNum, err)
if reqErr != nil {
- return out, attemptResult, reqErr
+ return out, attemptResult, releaseRetryToken, reqErr
}
-
if reqErr = sdk.SleepWithContext(ctx, retryDelay); reqErr != nil {
err = &aws.RequestCanceledError{Err: reqErr}
- return out, attemptResult, err
+ return out, attemptResult, releaseRetryToken, err
}
+ // The request should be re-attempted.
attemptResult.Retried = true
- return out, attemptResult, err
+ return out, attemptResult, releaseRetryToken, err
}
// MetricsHeader attaches SDK request metric header for retries to the transport
@@ -195,7 +248,7 @@ func (r *MetricsHeader) ID() string {
return "RetryMetricsHeader"
}
-// HandleFinalize attaches the sdk request metric header to the transport layer
+// HandleFinalize attaches the SDK request metric header to the transport layer
func (r MetricsHeader) HandleFinalize(ctx context.Context, in smithymiddle.FinalizeInput, next smithymiddle.FinalizeHandler) (
out smithymiddle.FinalizeOutput, metadata smithymiddle.Metadata, err error,
) {
@@ -251,13 +304,14 @@ func setRetryMetadata(ctx context.Context, metadata retryMetadata) context.Conte
return middleware.WithStackValue(ctx, retryMetadataKey{}, metadata)
}
-// AddRetryMiddlewaresOptions is the set of options that can be passed to AddRetryMiddlewares for configuring retry
-// associated middleware.
+// AddRetryMiddlewaresOptions is the set of options that can be passed to
+// AddRetryMiddlewares for configuring retry associated middleware.
type AddRetryMiddlewaresOptions struct {
Retryer aws.Retryer
- // Enable the logging of retry attempts performed by the SDK.
- // This will include logging retry attempts, unretryable errors, and when max attempts are reached.
+ // Enable the logging of retry attempts performed by the SDK. This will
+ // include logging retry attempts, unretryable errors, and when max
+ // attempts are reached.
LogRetryAttempts bool
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/retry.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/retry.go
index ad81b8c..af81635 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/retry.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/retry.go
@@ -1,6 +1,7 @@
package retry
import (
+ "context"
"time"
"github.com/aws/aws-sdk-go-v2/aws"
@@ -17,13 +18,13 @@ func AddWithErrorCodes(r aws.Retryer, codes ...string) aws.Retryer {
}
return &withIsErrorRetryable{
- Retryer: r,
+ RetryerV2: wrapAsRetryerV2(r),
Retryable: retryable,
}
}
type withIsErrorRetryable struct {
- aws.Retryer
+ aws.RetryerV2
Retryable IsErrorRetryable
}
@@ -31,20 +32,20 @@ func (r *withIsErrorRetryable) IsErrorRetryable(err error) bool {
if v := r.Retryable.IsErrorRetryable(err); v != aws.UnknownTernary {
return v.Bool()
}
- return r.Retryer.IsErrorRetryable(err)
+ return r.RetryerV2.IsErrorRetryable(err)
}
// AddWithMaxAttempts returns a Retryer with MaxAttempts set to the value
// specified.
func AddWithMaxAttempts(r aws.Retryer, max int) aws.Retryer {
return &withMaxAttempts{
- Retryer: r,
- Max: max,
+ RetryerV2: wrapAsRetryerV2(r),
+ Max: max,
}
}
type withMaxAttempts struct {
- aws.Retryer
+ aws.RetryerV2
Max int
}
@@ -57,16 +58,33 @@ func (w *withMaxAttempts) MaxAttempts() int {
// delay.
func AddWithMaxBackoffDelay(r aws.Retryer, delay time.Duration) aws.Retryer {
return &withMaxBackoffDelay{
- Retryer: r,
- backoff: NewExponentialJitterBackoff(delay),
+ RetryerV2: wrapAsRetryerV2(r),
+ backoff: NewExponentialJitterBackoff(delay),
}
}
type withMaxBackoffDelay struct {
- aws.Retryer
+ aws.RetryerV2
backoff *ExponentialJitterBackoff
}
func (r *withMaxBackoffDelay) RetryDelay(attempt int, err error) (time.Duration, error) {
return r.backoff.BackoffDelay(attempt, err)
}
+
+type wrappedAsRetryerV2 struct {
+ aws.Retryer
+}
+
+func wrapAsRetryerV2(r aws.Retryer) aws.RetryerV2 {
+ v, ok := r.(aws.RetryerV2)
+ if !ok {
+ v = wrappedAsRetryerV2{Retryer: r}
+ }
+
+ return v
+}
+
+func (w wrappedAsRetryerV2) GetAttemptToken(context.Context) (func(error) error, error) {
+ return w.Retryer.GetInitialToken(), nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/standard.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/standard.go
index 29afa3b..25abffc 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/standard.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/standard.go
@@ -2,6 +2,7 @@ package retry
import (
"context"
+ "fmt"
"time"
"github.com/aws/aws-sdk-go-v2/aws/ratelimit"
@@ -52,8 +53,11 @@ var DefaultRetryableHTTPStatusCodes = map[int]struct{}{
var DefaultRetryableErrorCodes = map[string]struct{}{
"RequestTimeout": {},
"RequestTimeoutException": {},
+}
- // Throttled status codes
+// DefaultThrottleErrorCodes provides the set of API error codes that are
+// considered throttle errors.
+var DefaultThrottleErrorCodes = map[string]struct{}{
"Throttling": {},
"ThrottlingException": {},
"ThrottledException": {},
@@ -82,33 +86,66 @@ var DefaultRetryables = []IsErrorRetryable{
RetryableErrorCode{
Codes: DefaultRetryableErrorCodes,
},
+ RetryableErrorCode{
+ Codes: DefaultThrottleErrorCodes,
+ },
+}
+
+// DefaultTimeouts provides the set of timeout checks that are used by default.
+var DefaultTimeouts = []IsErrorTimeout{
+ TimeouterError{},
}
// StandardOptions provides the functional options for configuring the standard
// retryable, and delay behavior.
type StandardOptions struct {
+ // Maximum number of attempts that should be made.
MaxAttempts int
- MaxBackoff time.Duration
- Backoff BackoffDelayer
+ // MaxBackoff duration between retried attempts.
+ MaxBackoff time.Duration
+
+ // Provides the backoff strategy the retryer will use to determine the
+ // delay between retry attempts.
+ Backoff BackoffDelayer
+
+ // Set of strategies to determine if the attempt should be retried based on
+ // the error response received.
+ //
+ // It is safe to append to this list in NewStandard's functional options.
Retryables []IsErrorRetryable
- Timeouts []IsErrorTimeout
- RateLimiter RateLimiter
- RetryCost uint
+ // Set of strategies to determine if the attempt failed due to a timeout
+ // error.
+ //
+ // It is safe to append to this list in NewStandard's functional options.
+ Timeouts []IsErrorTimeout
+
+ // Provides the rate limiting strategy for rate limiting attempt retries
+ // across all attempts the retryer is being used with.
+ RateLimiter RateLimiter
+
+ // The cost to deduct from the RateLimiter's token bucket per retry.
+ RetryCost uint
+
+ // The cost to deduct from the RateLimiter's token bucket per retry caused
+ // by timeout error.
RetryTimeoutCost uint
+
+ // The cost to payback to the RateLimiter's token bucket for successful
+ // attempts.
NoRetryIncrement uint
}
-// RateLimiter provides the interface for limiting the rate of request retries
-// allowed by the retrier.
+// RateLimiter provides the interface for limiting the rate of attempt retries
+// allowed by the retryer.
type RateLimiter interface {
GetToken(ctx context.Context, cost uint) (releaseToken func() error, err error)
AddTokens(uint) error
}
// Standard is the standard retry pattern for the SDK. It uses a set of
-// retryable checks to determine of the failed request should be retried, and
+// retryable checks to determine of the failed attempt should be retried, and
// what retry delay should be used.
type Standard struct {
options StandardOptions
@@ -124,7 +161,8 @@ func NewStandard(fnOpts ...func(*StandardOptions)) *Standard {
o := StandardOptions{
MaxAttempts: DefaultMaxAttempts,
MaxBackoff: DefaultMaxBackoff,
- Retryables: DefaultRetryables,
+ Retryables: append([]IsErrorRetryable{}, DefaultRetryables...),
+ Timeouts: append([]IsErrorTimeout{}, DefaultTimeouts...),
RateLimiter: ratelimit.NewTokenRateLimit(DefaultRetryRateTokens),
RetryCost: DefaultRetryCost,
@@ -134,23 +172,20 @@ func NewStandard(fnOpts ...func(*StandardOptions)) *Standard {
for _, fn := range fnOpts {
fn(&o)
}
+ if o.MaxAttempts <= 0 {
+ o.MaxAttempts = DefaultMaxAttempts
+ }
backoff := o.Backoff
if backoff == nil {
backoff = NewExponentialJitterBackoff(o.MaxBackoff)
}
- rs := make([]IsErrorRetryable, len(o.Retryables))
- copy(rs, o.Retryables)
-
- ts := make([]IsErrorTimeout, len(o.Timeouts))
- copy(ts, o.Timeouts)
-
return &Standard{
options: o,
backoff: backoff,
- retryable: IsErrorRetryables(rs),
- timeout: IsErrorTimeouts(ts),
+ retryable: IsErrorRetryables(o.Retryables),
+ timeout: IsErrorTimeouts(o.Timeouts),
}
}
@@ -171,32 +206,47 @@ func (s *Standard) RetryDelay(attempt int, err error) (time.Duration, error) {
return s.backoff.BackoffDelay(attempt, err)
}
-// GetInitialToken returns the initial request token that can increment the
-// retry token pool if the request is successful.
-func (s *Standard) GetInitialToken() func(error) error {
- return releaseToken(s.incrementTokens).release
+// GetAttemptToken returns the token to be released after then attempt completes.
+// The release token will add NoRetryIncrement to the RateLimiter token pool if
+// the attempt was successful. If the attempt failed, nothing will be done.
+func (s *Standard) GetAttemptToken(context.Context) (func(error) error, error) {
+ return s.GetInitialToken(), nil
}
-func (s *Standard) incrementTokens() error {
+// GetInitialToken returns a token for adding the NoRetryIncrement to the
+// RateLimiter token if the attempt completed successfully without error.
+//
+// InitialToken applies to result of the each attempt, including the first.
+// Whereas the RetryToken applies to the result of subsequent attempts.
+//
+// Deprecated: use GetAttemptToken instead.
+func (s *Standard) GetInitialToken() func(error) error {
+ return releaseToken(s.noRetryIncrement).release
+}
+
+func (s *Standard) noRetryIncrement() error {
return s.options.RateLimiter.AddTokens(s.options.NoRetryIncrement)
}
// GetRetryToken attempts to deduct the retry cost from the retry token pool.
// Returning the token release function, or error.
-func (s *Standard) GetRetryToken(ctx context.Context, err error) (func(error) error, error) {
+func (s *Standard) GetRetryToken(ctx context.Context, opErr error) (func(error) error, error) {
cost := s.options.RetryCost
- if s.timeout.IsErrorTimeout(err).Bool() {
+
+ if s.timeout.IsErrorTimeout(opErr).Bool() {
cost = s.options.RetryTimeoutCost
}
fn, err := s.options.RateLimiter.GetToken(ctx, cost)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("failed to get rate limit token, %w", err)
}
return releaseToken(fn).release, nil
}
+func nopRelease(error) error { return nil }
+
type releaseToken func() error
func (f releaseToken) release(err error) error {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/throttle_error.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/throttle_error.go
new file mode 100644
index 0000000..c4b844d
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/throttle_error.go
@@ -0,0 +1,60 @@
+package retry
+
+import (
+ "errors"
+
+ "github.com/aws/aws-sdk-go-v2/aws"
+)
+
+// IsErrorThrottle provides the interface of an implementation to determine if
+// a error response from an operation is a throttling error.
+type IsErrorThrottle interface {
+ IsErrorThrottle(error) aws.Ternary
+}
+
+// IsErrorThrottles is a collection of checks to determine of the error a
+// throttle error. Iterates through the checks and returns the state of
+// throttle if any check returns something other than unknown.
+type IsErrorThrottles []IsErrorThrottle
+
+// IsErrorThrottle returns if the error is a throttle error if any of the
+// checks in the list return a value other than unknown.
+func (r IsErrorThrottles) IsErrorThrottle(err error) aws.Ternary {
+ for _, re := range r {
+ if v := re.IsErrorThrottle(err); v != aws.UnknownTernary {
+ return v
+ }
+ }
+ return aws.UnknownTernary
+}
+
+// IsErrorThrottleFunc wraps a function with the IsErrorThrottle interface.
+type IsErrorThrottleFunc func(error) aws.Ternary
+
+// IsErrorThrottle returns if the error is a throttle error.
+func (fn IsErrorThrottleFunc) IsErrorThrottle(err error) aws.Ternary {
+ return fn(err)
+}
+
+// ThrottleErrorCode determines if an attempt should be retried based on the
+// API error code.
+type ThrottleErrorCode struct {
+ Codes map[string]struct{}
+}
+
+// IsErrorThrottle return if the error is a throttle error based on the error
+// codes. Returns unknown if the error doesn't have a code or it is unknown.
+func (r ThrottleErrorCode) IsErrorThrottle(err error) aws.Ternary {
+ var v interface{ ErrorCode() string }
+
+ if !errors.As(err, &v) {
+ return aws.UnknownTernary
+ }
+
+ _, ok := r.Codes[v.ErrorCode()]
+ if !ok {
+ return aws.UnknownTernary
+ }
+
+ return aws.TrueTernary
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/retryer.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/retryer.go
index 0489508..1e378f8 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/retryer.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/retryer.go
@@ -6,34 +6,94 @@ import (
"time"
)
+// RetryMode provides the mode the API client will use to create a retryer
+// based on.
+type RetryMode string
+
+const (
+ // RetryModeStandard model provides rate limited retry attempts with
+ // exponential backoff delay.
+ RetryModeStandard RetryMode = "standard"
+
+ // RetryModeAdaptive model provides attempt send rate limiting on throttle
+ // responses in addition to standard mode's retry rate limiting.
+ //
+ // Adaptive retry mode is experimental and is subject to change in the
+ // future.
+ RetryModeAdaptive RetryMode = "adaptive"
+)
+
+// ParseRetryMode attempts to parse a RetryMode from the given string.
+// Returning error if the value is not a known RetryMode.
+func ParseRetryMode(v string) (mode RetryMode, err error) {
+ switch v {
+ case "standard":
+ return RetryModeStandard, nil
+ case "adaptive":
+ return RetryModeAdaptive, nil
+ default:
+ return mode, fmt.Errorf("unknown RetryMode, %v", v)
+ }
+}
+
+func (m RetryMode) String() string { return string(m) }
+
// Retryer is an interface to determine if a given error from a
-// request should be retried, and if so what backoff delay to apply. The
+// attempt should be retried, and if so what backoff delay to apply. The
// default implementation used by most services is the retry package's Standard
// type. Which contains basic retry logic using exponential backoff.
type Retryer interface {
- // IsErrorRetryable returns if the failed request is retryable. This check
+ // IsErrorRetryable returns if the failed attempt is retryable. This check
// should determine if the error can be retried, or if the error is
// terminal.
IsErrorRetryable(error) bool
// MaxAttempts returns the maximum number of attempts that can be made for
- // a request before failing. A value of 0 implies that the request should
+ // a attempt before failing. A value of 0 implies that the attempt should
// be retried until it succeeds if the errors are retryable.
MaxAttempts() int
// RetryDelay returns the delay that should be used before retrying the
- // request. Will return error if the if the delay could not be determined.
+ // attempt. Will return error if the if the delay could not be determined.
RetryDelay(attempt int, opErr error) (time.Duration, error)
// GetRetryToken attempts to deduct the retry cost from the retry token pool.
// Returning the token release function, or error.
GetRetryToken(ctx context.Context, opErr error) (releaseToken func(error) error, err error)
- // GetInitalToken returns the initial request token that can increment the
- // retry token pool if the request is successful.
+ // GetInitialToken returns the initial attempt token that can increment the
+ // retry token pool if the attempt is successful.
GetInitialToken() (releaseToken func(error) error)
}
+// RetryerV2 is an interface to determine if a given error from a attempt
+// should be retried, and if so what backoff delay to apply. The default
+// implementation used by most services is the retry package's Standard type.
+// Which contains basic retry logic using exponential backoff.
+//
+// RetryerV2 replaces the Retryer interface, deprecating the GetInitialToken
+// method in favor of GetAttemptToken which takes a context, and can return an error.
+//
+// The SDK's retry package's Attempt middleware, and utilities will always
+// wrap a Retryer as a RetryerV2. Delegating to GetInitialToken, only if
+// GetAttemptToken is not implemented.
+type RetryerV2 interface {
+ Retryer
+
+ // GetInitialToken returns the initial attempt token that can increment the
+ // retry token pool if the attempt is successful.
+ //
+ // Deprecated: This method does not provide a way to block using Context,
+ // nor can it return an error. Use RetryerV2, and GetAttemptToken instead.
+ GetInitialToken() (releaseToken func(error) error)
+
+ // GetAttemptToken returns the send token that can be used to rate limit
+ // attempt calls. Will be used by the SDK's retry package's Attempt
+ // middleware to get a send token prior to calling the temp and releasing
+ // the send token after the attempt has been made.
+ GetAttemptToken(context.Context) (func(error) error, error)
+}
+
// NopRetryer provides a RequestRetryDecider implementation that will flag
// all attempt errors as not retryable, with a max attempts of 1.
type NopRetryer struct{}
@@ -41,12 +101,12 @@ type NopRetryer struct{}
// IsErrorRetryable returns false for all error values.
func (NopRetryer) IsErrorRetryable(error) bool { return false }
-// MaxAttempts always returns 1 for the original request attempt.
+// MaxAttempts always returns 1 for the original attempt.
func (NopRetryer) MaxAttempts() int { return 1 }
// RetryDelay is not valid for the NopRetryer. Will always return error.
func (NopRetryer) RetryDelay(int, error) (time.Duration, error) {
- return 0, fmt.Errorf("not retrying any request errors")
+ return 0, fmt.Errorf("not retrying any attempt errors")
}
// GetRetryToken returns a stub function that does nothing.
@@ -59,4 +119,9 @@ func (NopRetryer) GetInitialToken() func(error) error {
return nopReleaseToken
}
+// GetAttemptToken returns a stub function that does nothing.
+func (NopRetryer) GetAttemptToken(context.Context) (func(error) error, error) {
+ return nopReleaseToken, nil
+}
+
func nopReleaseToken(error) error { return nil }
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/runtime.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/runtime.go
new file mode 100644
index 0000000..3af9b2b
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/runtime.go
@@ -0,0 +1,14 @@
+package aws
+
+// ExecutionEnvironmentID is the AWS execution environment runtime identifier.
+type ExecutionEnvironmentID string
+
+// RuntimeEnvironment is a collection of values that are determined at runtime
+// based on the environment that the SDK is executing in. Some of these values
+// may or may not be present based on the executing environment and certain SDK
+// configuration properties that drive whether these values are populated..
+type RuntimeEnvironment struct {
+ EnvironmentIdentifier ExecutionEnvironmentID
+ Region string
+ EC2InstanceMetadataRegion string
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/util.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/util.go
index 741019b..0cb9cff 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/util.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/util.go
@@ -8,7 +8,7 @@ import (
const doubleSpace = " "
// StripExcessSpaces will rewrite the passed in slice's string values to not
-// contain muliple side-by-side spaces.
+// contain multiple side-by-side spaces.
func StripExcessSpaces(str string) string {
var j, k, l, m, spaces int
// Trim trailing spaces
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go
index 1d1525a..06ba777 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go
@@ -443,7 +443,15 @@ func (s *httpSigner) buildCanonicalHeaders(host string, rule v4Internal.Rule, he
} else {
canonicalHeaders.WriteString(headers[i])
canonicalHeaders.WriteRune(colon)
- canonicalHeaders.WriteString(strings.Join(signed[headers[i]], ","))
+ // Trim out leading, trailing, and dedup inner spaces from signed header values.
+ values := signed[headers[i]]
+ for j, v := range values {
+ cleanedValue := strings.TrimSpace(v4Internal.StripExcessSpaces(v))
+ canonicalHeaders.WriteString(cleanedValue)
+ if j < len(values)-1 {
+ canonicalHeaders.WriteRune(',')
+ }
+ }
}
canonicalHeaders.WriteRune('\n')
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/to_ptr.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/to_ptr.go
index 28a193b..f3fc4d6 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/to_ptr.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/to_ptr.go
@@ -278,3 +278,20 @@ func TimeSlice(vs []time.Time) []*time.Time {
func TimeMap(vs map[string]time.Time) map[string]*time.Time {
return ptr.TimeMap(vs)
}
+
+// Duration returns a pointer value for the time.Duration value passed in.
+func Duration(v time.Duration) *time.Duration {
+ return ptr.Duration(v)
+}
+
+// DurationSlice returns a slice of time.Duration pointers from the values
+// passed in.
+func DurationSlice(vs []time.Duration) []*time.Duration {
+ return ptr.DurationSlice(vs)
+}
+
+// DurationMap returns a map of time.Duration pointers from the values
+// passed in.
+func DurationMap(vs map[string]time.Duration) map[string]*time.Duration {
+ return ptr.DurationMap(vs)
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/client.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/client.go
index b207a56..26d9071 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/client.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/client.go
@@ -2,6 +2,7 @@ package http
import (
"crypto/tls"
+ "github.com/aws/aws-sdk-go-v2/aws"
"net"
"net/http"
"reflect"
@@ -68,6 +69,14 @@ func (b *BuildableClient) Do(req *http.Request) (*http.Response, error) {
return b.client.Do(req)
}
+// Freeze returns a frozen aws.HTTPClient implementation that is no longer a BuildableClient.
+// Use this to prevent the SDK from applying DefaultMode configuration values to a buildable client.
+func (b *BuildableClient) Freeze() aws.HTTPClient {
+ cpy := b.clone()
+ cpy.build()
+ return cpy.client
+}
+
func (b *BuildableClient) build() {
b.client = wrapWithLimitedRedirect(&http.Client{
Timeout: b.clientTimeout,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md
index 5028481..a50ad10 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md
@@ -1,3 +1,90 @@
+# v1.15.10 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.15.9 (2022-05-26)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.15.8 (2022-05-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.15.7 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.15.6 (2022-05-16)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.15.5 (2022-05-09)
+
+* **Bug Fix**: Fixes a bug in LoadDefaultConfig to correctly assign ConfigSources so all config resolvers have access to the config sources. This fixes the feature/ec2/imds client not having configuration applied via config.LoadOptions such as EC2IMDSClientEnableState. PR [#1682](https://github.com/aws/aws-sdk-go-v2/pull/1682)
+
+# v1.15.4 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.15.3 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.15.2 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.15.1 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.15.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.14.0 (2022-02-24)
+
+* **Feature**: Adds support for loading RetryMaxAttempts and RetryMod from the environment and shared configuration files. These parameters drive how the SDK's API client will initialize its default retryer, if custome retryer has not been specified. See [config](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/config) module and [aws.Config](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws#Config) for more information about and how to use these new options.
+* **Feature**: Adds support for the `ca_bundle` parameter in shared config and credentials files. The usage of the file is the same as environment variable, `AWS_CA_BUNDLE`, but sourced from shared config. Fixes [#1589](https://github.com/aws/aws-sdk-go-v2/issues/1589)
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.13.1 (2022-01-28)
+
+* **Bug Fix**: Fixes LoadDefaultConfig handling of errors returned by passed in functional options. Previously errors returned from the LoadOptions passed into LoadDefaultConfig were incorrectly ignored. [#1562](https://github.com/aws/aws-sdk-go-v2/pull/1562). Thanks to [Pinglei Guo](https://github.com/pingleig) for submitting this PR.
+* **Bug Fix**: Fixes the SDK's handling of `duration_sections` in the shared credentials file or specified in multiple shared config and shared credentials files under the same profile. [#1568](https://github.com/aws/aws-sdk-go-v2/pull/1568). Thanks to [Amir Szekely](https://github.com/kichik) for help reproduce this bug.
+* **Bug Fix**: Updates `config` module to use os.UserHomeDir instead of hard coded environment variable for OS. [#1563](https://github.com/aws/aws-sdk-go-v2/pull/1563)
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.13.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.0 (2022-01-07)
+
+* **Feature**: Add load option for CredentialCache. Adds a new member to the LoadOptions struct, CredentialsCacheOptions. This member allows specifying a function that will be used to configure the CredentialsCache. The CredentialsCacheOptions will only be used if the configuration loader will wrap the underlying credential provider in the CredentialsCache.
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.1 (2021-12-21)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.0 (2021-12-02)
+
+* **Feature**: Add support for specifying `EndpointResolverWithOptions` on `LoadOptions`, and associated `WithEndpointResolverWithOptions`.
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.10.3 (2021-11-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.10.2 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v1.10.1 (2021-11-12)
* **Dependency Update**: Updated to the latest SDK module versions
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/config.go b/vendor/github.com/aws/aws-sdk-go-v2/config/config.go
index fa2df2c..3e9c200 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/config/config.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/config/config.go
@@ -2,6 +2,7 @@ package config
import (
"context"
+
"github.com/aws/aws-sdk-go-v2/aws"
)
@@ -34,8 +35,11 @@ var defaultAWSConfigResolvers = []awsConfigResolver{
// Sets the endpoint resolving behavior the API Clients will use for making
// requests to. Clients default to their own clients this allows overrides
- // to be specified.
+ // to be specified. The resolveEndpointResolver option is deprecated, but
+ // we still need to set it for backwards compatibility on config
+ // construction.
resolveEndpointResolver,
+ resolveEndpointResolverWithOptions,
// Sets the retry behavior API clients will use within their retry attempt
// middleware. Defaults to unset, allowing API clients to define their own
@@ -51,6 +55,15 @@ var defaultAWSConfigResolvers = []awsConfigResolver{
// API client request pipeline middleware.
resolveAPIOptions,
+ // Resolves the DefaultsMode that should be used by SDK clients. If this
+ // mode is set to DefaultsModeAuto.
+ //
+ // Comes after HTTPClient and CustomCABundle to ensure the HTTP client is
+ // configured if provided before invoking IMDS if mode is auto. Comes
+ // before resolving credentials so that those subsequent clients use the
+ // configured auto mode.
+ resolveDefaultsModeOptions,
+
// Sets the resolved credentials the API clients will use for
// authentication. Provides the SDK's default credential chain.
//
@@ -124,17 +137,10 @@ func (cs configs) ResolveAWSConfig(ctx context.Context, resolvers []awsConfigRes
for _, fn := range resolvers {
if err := fn(ctx, &cfg, cs); err != nil {
- // TODO provide better error?
return aws.Config{}, err
}
}
- var sources []interface{}
- for _, s := range cs {
- sources = append(sources, s)
- }
- cfg.ConfigSources = sources
-
return cfg, nil
}
@@ -170,7 +176,9 @@ func (cs configs) ResolveConfig(f func(configs []interface{}) error) error {
func LoadDefaultConfig(ctx context.Context, optFns ...func(*LoadOptions) error) (cfg aws.Config, err error) {
var options LoadOptions
for _, optFn := range optFns {
- optFn(&options)
+ if err := optFn(&options); err != nil {
+ return aws.Config{}, err
+ }
}
// assign Load Options to configs
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/defaultsmode.go b/vendor/github.com/aws/aws-sdk-go-v2/config/defaultsmode.go
new file mode 100644
index 0000000..20b6636
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/config/defaultsmode.go
@@ -0,0 +1,47 @@
+package config
+
+import (
+ "context"
+ "os"
+
+ "github.com/aws/aws-sdk-go-v2/aws"
+ "github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
+)
+
+const execEnvVar = "AWS_EXECUTION_ENV"
+
+// DefaultsModeOptions is the set of options that are used to configure
+type DefaultsModeOptions struct {
+ // The SDK configuration defaults mode. Defaults to legacy if not specified.
+ //
+ // Supported modes are: auto, cross-region, in-region, legacy, mobile, standard
+ Mode aws.DefaultsMode
+
+ // The EC2 Instance Metadata Client that should be used when performing environment
+ // discovery when aws.DefaultsModeAuto is set.
+ //
+ // If not specified the SDK will construct a client if the instance metadata service has not been disabled by
+ // the AWS_EC2_METADATA_DISABLED environment variable.
+ IMDSClient *imds.Client
+}
+
+func resolveDefaultsModeRuntimeEnvironment(ctx context.Context, envConfig *EnvConfig, client *imds.Client) (aws.RuntimeEnvironment, error) {
+ getRegionOutput, err := client.GetRegion(ctx, &imds.GetRegionInput{})
+ // honor context timeouts, but if we couldn't talk to IMDS don't fail runtime environment introspection.
+ select {
+ case <-ctx.Done():
+ return aws.RuntimeEnvironment{}, err
+ default:
+ }
+
+ var imdsRegion string
+ if err == nil {
+ imdsRegion = getRegionOutput.Region
+ }
+
+ return aws.RuntimeEnvironment{
+ EnvironmentIdentifier: aws.ExecutionEnvironmentID(os.Getenv(execEnvVar)),
+ Region: envConfig.Region,
+ EC2InstanceMetadataRegion: imdsRegion,
+ }, nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/env_config.go b/vendor/github.com/aws/aws-sdk-go-v2/config/env_config.go
index c4ddb22..18c8e01 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/config/env_config.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/config/env_config.go
@@ -4,13 +4,14 @@ import (
"bytes"
"context"
"fmt"
- "github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
"io"
"io/ioutil"
"os"
+ "strconv"
"strings"
"github.com/aws/aws-sdk-go-v2/aws"
+ "github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
)
// CredentialsSourceName provides a name of the provider when config is
@@ -63,6 +64,11 @@ const (
awsUseDualStackEndpoint = "AWS_USE_DUALSTACK_ENDPOINT"
awsUseFIPSEndpoint = "AWS_USE_FIPS_ENDPOINT"
+
+ awsDefaultMode = "AWS_DEFAULTS_MODE"
+
+ awsRetryMaxAttempts = "AWS_MAX_ATTEMPTS"
+ awsRetryMode = "AWS_RETRY_MODE"
)
var (
@@ -226,6 +232,22 @@ type EnvConfig struct {
//
// AWS_USE_FIPS_ENDPOINT=true
UseFIPSEndpoint aws.FIPSEndpointState
+
+ // Specifies the SDK Defaults Mode used by services.
+ //
+ // AWS_DEFAULTS_MODE=standard
+ DefaultsMode aws.DefaultsMode
+
+ // Specifies the maximum number attempts an API client will call an
+ // operation that fails with a retryable error.
+ //
+ // AWS_MAX_ATTEMPTS=3
+ RetryMaxAttempts int
+
+ // Specifies the retry model the API client will be created with.
+ //
+ // aws_retry_mode=standard
+ RetryMode aws.RetryMode
}
// loadEnvConfig reads configuration values from the OS's environment variables.
@@ -292,9 +314,45 @@ func NewEnvConfig() (EnvConfig, error) {
return cfg, err
}
+ if err := setDefaultsModeFromEnvVal(&cfg.DefaultsMode, []string{awsDefaultMode}); err != nil {
+ return cfg, err
+ }
+
+ if err := setIntFromEnvVal(&cfg.RetryMaxAttempts, []string{awsRetryMaxAttempts}); err != nil {
+ return cfg, err
+ }
+ if err := setRetryModeFromEnvVal(&cfg.RetryMode, []string{awsRetryMode}); err != nil {
+ return cfg, err
+ }
+
return cfg, nil
}
+func (c EnvConfig) getDefaultsMode(ctx context.Context) (aws.DefaultsMode, bool, error) {
+ if len(c.DefaultsMode) == 0 {
+ return "", false, nil
+ }
+ return c.DefaultsMode, true, nil
+}
+
+// GetRetryMaxAttempts returns the value of AWS_MAX_ATTEMPTS if was specified,
+// and not 0.
+func (c EnvConfig) GetRetryMaxAttempts(ctx context.Context) (int, bool, error) {
+ if c.RetryMaxAttempts == 0 {
+ return 0, false, nil
+ }
+ return c.RetryMaxAttempts, true, nil
+}
+
+// GetRetryMode returns the RetryMode of AWS_RETRY_MODE if was specified, and a
+// valid value.
+func (c EnvConfig) GetRetryMode(ctx context.Context) (aws.RetryMode, bool, error) {
+ if len(c.RetryMode) == 0 {
+ return "", false, nil
+ }
+ return c.RetryMode, true, nil
+}
+
func setEC2IMDSClientEnableState(state *imds.ClientEnableState, keys []string) {
for _, k := range keys {
value := os.Getenv(k)
@@ -313,6 +371,31 @@ func setEC2IMDSClientEnableState(state *imds.ClientEnableState, keys []string) {
}
}
+func setDefaultsModeFromEnvVal(mode *aws.DefaultsMode, keys []string) error {
+ for _, k := range keys {
+ if value := os.Getenv(k); len(value) > 0 {
+ if ok := mode.SetFromString(value); !ok {
+ return fmt.Errorf("invalid %s value: %s", k, value)
+ }
+ break
+ }
+ }
+ return nil
+}
+
+func setRetryModeFromEnvVal(mode *aws.RetryMode, keys []string) (err error) {
+ for _, k := range keys {
+ if value := os.Getenv(k); len(value) > 0 {
+ *mode, err = aws.ParseRetryMode(value)
+ if err != nil {
+ return fmt.Errorf("invalid %s value, %w", k, err)
+ }
+ break
+ }
+ }
+ return nil
+}
+
func setEC2IMDSEndpointMode(mode *imds.EndpointModeState, keys []string) error {
for _, k := range keys {
value := os.Getenv(k)
@@ -438,6 +521,21 @@ func setStringFromEnvVal(dst *string, keys []string) {
}
}
+func setIntFromEnvVal(dst *int, keys []string) error {
+ for _, k := range keys {
+ if v := os.Getenv(k); len(v) > 0 {
+ i, err := strconv.ParseInt(v, 10, 64)
+ if err != nil {
+ return fmt.Errorf("invalid value %s=%s, %w", k, v, err)
+ }
+ *dst = int(i)
+ break
+ }
+ }
+
+ return nil
+}
+
func setBoolPtrFromEnvVal(dst **bool, keys []string) error {
for _, k := range keys {
value := os.Getenv(k)
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go
index 781f47c..b987f2c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go
@@ -3,4 +3,4 @@
package config
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.10.1"
+const goModuleVersion = "1.15.10"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/load_options.go b/vendor/github.com/aws/aws-sdk-go-v2/config/load_options.go
index 15197df..22e6019 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/config/load_options.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/config/load_options.go
@@ -18,7 +18,8 @@ import (
// LoadOptionsFunc is a type alias for LoadOptions functional option
type LoadOptionsFunc func(*LoadOptions) error
-// LoadOptions are discrete set of options that are valid for loading the configuration
+// LoadOptions are discrete set of options that are valid for loading the
+// configuration
type LoadOptions struct {
// Region is the region to send requests to.
@@ -30,12 +31,36 @@ type LoadOptions struct {
// HTTPClient the SDK's API clients will use to invoke HTTP requests.
HTTPClient HTTPClient
- // EndpointResolver that can be used to provide or override an endpoint for the given
- // service and region Please see the `aws.EndpointResolver` documentation on usage.
+ // EndpointResolver that can be used to provide or override an endpoint for
+ // the given service and region.
+ //
+ // See the `aws.EndpointResolver` documentation on usage.
+ //
+ // Deprecated: See EndpointResolverWithOptions
EndpointResolver aws.EndpointResolver
- // Retryer is a function that provides a Retryer implementation. A Retryer guides how HTTP requests should be
- // retried in case of recoverable failures.
+ // EndpointResolverWithOptions that can be used to provide or override an
+ // endpoint for the given service and region.
+ //
+ // See the `aws.EndpointResolverWithOptions` documentation on usage.
+ EndpointResolverWithOptions aws.EndpointResolverWithOptions
+
+ // RetryMaxAttempts specifies the maximum number attempts an API client
+ // will call an operation that fails with a retryable error.
+ //
+ // This value will only be used if Retryer option is nil.
+ RetryMaxAttempts int
+
+ // RetryMode specifies the retry model the API client will be created with.
+ //
+ // This value will only be used if Retryer option is nil.
+ RetryMode aws.RetryMode
+
+ // Retryer is a function that provides a Retryer implementation. A Retryer
+ // guides how HTTP requests should be retried in case of recoverable
+ // failures.
+ //
+ // If not nil, RetryMaxAttempts, and RetryMode will be ignored.
Retryer func() aws.Retryer
// APIOptions provides the set of middleware mutations modify how the API
@@ -46,51 +71,63 @@ type LoadOptions struct {
// Logger writer interface to write logging messages to.
Logger logging.Logger
- // ClientLogMode is used to configure the events that will be sent to the configured logger.
- // This can be used to configure the logging of signing, retries, request, and responses
- // of the SDK clients.
+ // ClientLogMode is used to configure the events that will be sent to the
+ // configured logger. This can be used to configure the logging of signing,
+ // retries, request, and responses of the SDK clients.
//
- // See the ClientLogMode type documentation for the complete set of logging modes and available
- // configuration.
+ // See the ClientLogMode type documentation for the complete set of logging
+ // modes and available configuration.
ClientLogMode *aws.ClientLogMode
// SharedConfigProfile is the profile to be used when loading the SharedConfig
SharedConfigProfile string
- // SharedConfigFiles is the slice of custom shared config files to use when loading the SharedConfig.
- // A non-default profile used within config file must have name defined with prefix 'profile '.
- // eg [profile xyz] indicates a profile with name 'xyz'.
- // To read more on the format of the config file, please refer the documentation at
+ // SharedConfigFiles is the slice of custom shared config files to use when
+ // loading the SharedConfig. A non-default profile used within config file
+ // must have name defined with prefix 'profile '. eg [profile xyz]
+ // indicates a profile with name 'xyz'. To read more on the format of the
+ // config file, please refer the documentation at
// https://docs.aws.amazon.com/credref/latest/refdocs/file-format.html#file-format-config
//
- // If duplicate profiles are provided within the same, or across multiple shared config files, the next parsed
- // profile will override only the properties that conflict with the previously defined profile.
- // Note that if duplicate profiles are provided within the SharedCredentialsFiles and SharedConfigFiles,
- // the properties defined in shared credentials file take precedence.
+ // If duplicate profiles are provided within the same, or across multiple
+ // shared config files, the next parsed profile will override only the
+ // properties that conflict with the previously defined profile. Note that
+ // if duplicate profiles are provided within the SharedCredentialsFiles and
+ // SharedConfigFiles, the properties defined in shared credentials file
+ // take precedence.
SharedConfigFiles []string
- // SharedCredentialsFile is the slice of custom shared credentials files to use when loading the SharedConfig.
- // The profile name used within credentials file must not prefix 'profile '.
- // eg [xyz] indicates a profile with name 'xyz'. Profile declared as [profile xyz] will be ignored.
- // To read more on the format of the credentials file, please refer the documentation at
+ // SharedCredentialsFile is the slice of custom shared credentials files to
+ // use when loading the SharedConfig. The profile name used within
+ // credentials file must not prefix 'profile '. eg [xyz] indicates a
+ // profile with name 'xyz'. Profile declared as [profile xyz] will be
+ // ignored. To read more on the format of the credentials file, please
+ // refer the documentation at
// https://docs.aws.amazon.com/credref/latest/refdocs/file-format.html#file-format-creds
//
- // If duplicate profiles are provided with a same, or across multiple shared credentials files, the next parsed
- // profile will override only properties that conflict with the previously defined profile.
- // Note that if duplicate profiles are provided within the SharedCredentialsFiles and SharedConfigFiles,
- // the properties defined in shared credentials file take precedence.
+ // If duplicate profiles are provided with a same, or across multiple
+ // shared credentials files, the next parsed profile will override only
+ // properties that conflict with the previously defined profile. Note that
+ // if duplicate profiles are provided within the SharedCredentialsFiles and
+ // SharedConfigFiles, the properties defined in shared credentials file
+ // take precedence.
SharedCredentialsFiles []string
// CustomCABundle is CA bundle PEM bytes reader
CustomCABundle io.Reader
- // DefaultRegion is the fall back region, used if a region was not resolved from other sources
+ // DefaultRegion is the fall back region, used if a region was not resolved
+ // from other sources
DefaultRegion string
// UseEC2IMDSRegion indicates if SDK should retrieve the region
// from the EC2 Metadata service
UseEC2IMDSRegion *UseEC2IMDSRegion
+ // CredentialsCacheOptions is a function for setting the
+ // aws.CredentialsCacheOptions
+ CredentialsCacheOptions func(*aws.CredentialsCacheOptions)
+
// ProcessCredentialOptions is a function for setting
// the processcreds.Options
ProcessCredentialOptions func(*processcreds.Options)
@@ -132,10 +169,12 @@ type LoadOptions struct {
// AWS_EC2_METADATA_DISABLED=true
EC2IMDSClientEnableState imds.ClientEnableState
- // Specifies the EC2 Instance Metadata Service default endpoint selection mode (IPv4 or IPv6)
+ // Specifies the EC2 Instance Metadata Service default endpoint selection
+ // mode (IPv4 or IPv6)
EC2IMDSEndpointMode imds.EndpointModeState
- // Specifies the EC2 Instance Metadata Service endpoint to use. If specified it overrides EC2IMDSEndpointMode.
+ // Specifies the EC2 Instance Metadata Service endpoint to use. If
+ // specified it overrides EC2IMDSEndpointMode.
EC2IMDSEndpoint string
// Specifies that SDK clients must resolve a dual-stack endpoint for
@@ -145,6 +184,40 @@ type LoadOptions struct {
// Specifies that SDK clients must resolve a FIPS endpoint for
// services.
UseFIPSEndpoint aws.FIPSEndpointState
+
+ // Specifies the SDK configuration mode for defaults.
+ DefaultsModeOptions DefaultsModeOptions
+}
+
+func (o LoadOptions) getDefaultsMode(ctx context.Context) (aws.DefaultsMode, bool, error) {
+ if len(o.DefaultsModeOptions.Mode) == 0 {
+ return "", false, nil
+ }
+ return o.DefaultsModeOptions.Mode, true, nil
+}
+
+// GetRetryMaxAttempts returns the RetryMaxAttempts if specified in the
+// LoadOptions and not 0.
+func (o LoadOptions) GetRetryMaxAttempts(ctx context.Context) (int, bool, error) {
+ if o.RetryMaxAttempts == 0 {
+ return 0, false, nil
+ }
+ return o.RetryMaxAttempts, true, nil
+}
+
+// GetRetryMode returns the RetryMode specified in the LoadOptions.
+func (o LoadOptions) GetRetryMode(ctx context.Context) (aws.RetryMode, bool, error) {
+ if len(o.RetryMode) == 0 {
+ return "", false, nil
+ }
+ return o.RetryMode, true, nil
+}
+
+func (o LoadOptions) getDefaultsModeIMDSClient(ctx context.Context) (*imds.Client, bool, error) {
+ if o.DefaultsModeOptions.IMDSClient == nil {
+ return nil, false, nil
+ }
+ return o.DefaultsModeOptions.IMDSClient, true, nil
}
// getRegion returns Region from config's LoadOptions
@@ -355,6 +428,29 @@ func WithCredentialsProvider(v aws.CredentialsProvider) LoadOptionsFunc {
}
}
+// getCredentialsCacheOptionsProvider returns the wrapped function to set aws.CredentialsCacheOptions
+func (o LoadOptions) getCredentialsCacheOptions(ctx context.Context) (func(*aws.CredentialsCacheOptions), bool, error) {
+ if o.CredentialsCacheOptions == nil {
+ return nil, false, nil
+ }
+
+ return o.CredentialsCacheOptions, true, nil
+}
+
+// WithCredentialsCacheOptions is a helper function to construct functional
+// options that sets a function to modify the aws.CredentialsCacheOptions the
+// aws.CredentialsCache will be configured with, if the CredentialsCache is used
+// by the configuration loader.
+//
+// If multiple WithCredentialsCacheOptions calls are made, the last call
+// overrides the previous call values.
+func WithCredentialsCacheOptions(v func(*aws.CredentialsCacheOptions)) LoadOptionsFunc {
+ return func(o *LoadOptions) error {
+ o.CredentialsCacheOptions = v
+ return nil
+ }
+}
+
// getProcessCredentialOptions returns the wrapped function to set processcreds.Options
func (o LoadOptions) getProcessCredentialOptions(ctx context.Context) (func(*processcreds.Options), bool, error) {
if o.ProcessCredentialOptions == nil {
@@ -505,6 +601,48 @@ func WithAPIOptions(v []func(*middleware.Stack) error) LoadOptionsFunc {
}
}
+func (o LoadOptions) getRetryMaxAttempts(ctx context.Context) (int, bool, error) {
+ if o.RetryMaxAttempts == 0 {
+ return 0, false, nil
+ }
+
+ return o.RetryMaxAttempts, true, nil
+}
+
+// WithRetryMaxAttempts is a helper function to construct functional options that sets
+// RetryMaxAttempts on LoadOptions. If RetryMaxAttempts is unset, the RetryMaxAttempts value is
+// ignored. If multiple WithRetryMaxAttempts calls are made, the last call overrides
+// the previous call values.
+//
+// Will be ignored of LoadOptions.Retryer or WithRetryer are used.
+func WithRetryMaxAttempts(v int) LoadOptionsFunc {
+ return func(o *LoadOptions) error {
+ o.RetryMaxAttempts = v
+ return nil
+ }
+}
+
+func (o LoadOptions) getRetryMode(ctx context.Context) (aws.RetryMode, bool, error) {
+ if o.RetryMode == "" {
+ return "", false, nil
+ }
+
+ return o.RetryMode, true, nil
+}
+
+// WithRetryMode is a helper function to construct functional options that sets
+// RetryMode on LoadOptions. If RetryMode is unset, the RetryMode value is
+// ignored. If multiple WithRetryMode calls are made, the last call overrides
+// the previous call values.
+//
+// Will be ignored of LoadOptions.Retryer or WithRetryer are used.
+func WithRetryMode(v aws.RetryMode) LoadOptionsFunc {
+ return func(o *LoadOptions) error {
+ o.RetryMode = v
+ return nil
+ }
+}
+
func (o LoadOptions) getRetryer(ctx context.Context) (func() aws.Retryer, bool, error) {
if o.Retryer == nil {
return nil, false, nil
@@ -533,9 +671,11 @@ func (o LoadOptions) getEndpointResolver(ctx context.Context) (aws.EndpointResol
}
// WithEndpointResolver is a helper function to construct functional options
-// that sets endpoint resolver on LoadOptions. The EndpointResolver is set to nil,
+// that sets the EndpointResolver on LoadOptions. If the EndpointResolver is set to nil,
// the EndpointResolver value is ignored. If multiple WithEndpointResolver calls
// are made, the last call overrides the previous call values.
+//
+// Deprecated: See WithEndpointResolverWithOptions
func WithEndpointResolver(v aws.EndpointResolver) LoadOptionsFunc {
return func(o *LoadOptions) error {
o.EndpointResolver = v
@@ -543,6 +683,25 @@ func WithEndpointResolver(v aws.EndpointResolver) LoadOptionsFunc {
}
}
+func (o LoadOptions) getEndpointResolverWithOptions(ctx context.Context) (aws.EndpointResolverWithOptions, bool, error) {
+ if o.EndpointResolverWithOptions == nil {
+ return nil, false, nil
+ }
+
+ return o.EndpointResolverWithOptions, true, nil
+}
+
+// WithEndpointResolverWithOptions is a helper function to construct functional options
+// that sets the EndpointResolverWithOptions on LoadOptions. If the EndpointResolverWithOptions is set to nil,
+// the EndpointResolver value is ignored. If multiple WithEndpointResolver calls
+// are made, the last call overrides the previous call values.
+func WithEndpointResolverWithOptions(v aws.EndpointResolverWithOptions) LoadOptionsFunc {
+ return func(o *LoadOptions) error {
+ o.EndpointResolverWithOptions = v
+ return nil
+ }
+}
+
func (o LoadOptions) getLogger(ctx context.Context) (logging.Logger, bool, error) {
if o.Logger == nil {
return nil, false, nil
@@ -748,3 +907,20 @@ func (o LoadOptions) GetUseFIPSEndpoint(ctx context.Context) (value aws.FIPSEndp
}
return o.UseFIPSEndpoint, true, nil
}
+
+// WithDefaultsMode sets the SDK defaults configuration mode to the value provided.
+//
+// Zero or more functional options can be provided to provide configuration options for performing
+// environment discovery when using aws.DefaultsModeAuto.
+func WithDefaultsMode(mode aws.DefaultsMode, optFns ...func(options *DefaultsModeOptions)) LoadOptionsFunc {
+ do := DefaultsModeOptions{
+ Mode: mode,
+ }
+ for _, fn := range optFns {
+ fn(&do)
+ }
+ return func(options *LoadOptions) error {
+ options.DefaultsModeOptions = do
+ return nil
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/provider.go b/vendor/github.com/aws/aws-sdk-go-v2/config/provider.go
index a430836..3f12df1 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/config/provider.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/config/provider.go
@@ -11,6 +11,7 @@ import (
"github.com/aws/aws-sdk-go-v2/credentials/processcreds"
"github.com/aws/aws-sdk-go-v2/credentials/ssocreds"
"github.com/aws/aws-sdk-go-v2/credentials/stscreds"
+ "github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
"github.com/aws/smithy-go/logging"
"github.com/aws/smithy-go/middleware"
)
@@ -162,6 +163,28 @@ func getCredentialsProvider(ctx context.Context, configs configs) (p aws.Credent
return
}
+// credentialsCacheOptionsProvider is an interface for retrieving a function for setting
+// the aws.CredentialsCacheOptions.
+type credentialsCacheOptionsProvider interface {
+ getCredentialsCacheOptions(ctx context.Context) (func(*aws.CredentialsCacheOptions), bool, error)
+}
+
+// getCredentialsCacheOptionsProvider is an interface for retrieving a function for setting
+// the aws.CredentialsCacheOptions.
+func getCredentialsCacheOptionsProvider(ctx context.Context, configs configs) (
+ f func(*aws.CredentialsCacheOptions), found bool, err error,
+) {
+ for _, config := range configs {
+ if p, ok := config.(credentialsCacheOptionsProvider); ok {
+ f, found, err = p.getCredentialsCacheOptions(ctx)
+ if err != nil || found {
+ break
+ }
+ }
+ }
+ return
+}
+
// processCredentialOptions is an interface for retrieving a function for setting
// the processcreds.Options.
type processCredentialOptions interface {
@@ -336,6 +359,25 @@ func getEndpointResolver(ctx context.Context, configs configs) (f aws.EndpointRe
return
}
+// endpointResolverWithOptionsProvider is an interface for retrieving an aws.EndpointResolverWithOptions from a configuration source
+type endpointResolverWithOptionsProvider interface {
+ getEndpointResolverWithOptions(ctx context.Context) (aws.EndpointResolverWithOptions, bool, error)
+}
+
+// getEndpointResolver searches the provided config sources for a EndpointResolverFunc that can be used
+// to configure the aws.Config.EndpointResolver value.
+func getEndpointResolverWithOptions(ctx context.Context, configs configs) (f aws.EndpointResolverWithOptions, found bool, err error) {
+ for _, c := range configs {
+ if p, ok := c.(endpointResolverWithOptionsProvider); ok {
+ f, found, err = p.getEndpointResolverWithOptions(ctx)
+ if err != nil || found {
+ break
+ }
+ }
+ }
+ return
+}
+
// loggerProvider is an interface for retrieving a logging.Logger from a configuration source.
type loggerProvider interface {
getLogger(ctx context.Context) (logging.Logger, bool, error)
@@ -423,5 +465,69 @@ func getSSOProviderOptions(ctx context.Context, configs configs) (v func(options
}
}
}
- return
+ return v, found, err
+}
+
+type defaultsModeIMDSClientProvider interface {
+ getDefaultsModeIMDSClient(context.Context) (*imds.Client, bool, error)
+}
+
+func getDefaultsModeIMDSClient(ctx context.Context, configs configs) (v *imds.Client, found bool, err error) {
+ for _, c := range configs {
+ if p, ok := c.(defaultsModeIMDSClientProvider); ok {
+ v, found, err = p.getDefaultsModeIMDSClient(ctx)
+ if err != nil || found {
+ break
+ }
+ }
+ }
+ return v, found, err
+}
+
+type defaultsModeProvider interface {
+ getDefaultsMode(context.Context) (aws.DefaultsMode, bool, error)
+}
+
+func getDefaultsMode(ctx context.Context, configs configs) (v aws.DefaultsMode, found bool, err error) {
+ for _, c := range configs {
+ if p, ok := c.(defaultsModeProvider); ok {
+ v, found, err = p.getDefaultsMode(ctx)
+ if err != nil || found {
+ break
+ }
+ }
+ }
+ return v, found, err
+}
+
+type retryMaxAttemptsProvider interface {
+ GetRetryMaxAttempts(context.Context) (int, bool, error)
+}
+
+func getRetryMaxAttempts(ctx context.Context, configs configs) (v int, found bool, err error) {
+ for _, c := range configs {
+ if p, ok := c.(retryMaxAttemptsProvider); ok {
+ v, found, err = p.GetRetryMaxAttempts(ctx)
+ if err != nil || found {
+ break
+ }
+ }
+ }
+ return v, found, err
+}
+
+type retryModeProvider interface {
+ GetRetryMode(context.Context) (aws.RetryMode, bool, error)
+}
+
+func getRetryMode(ctx context.Context, configs configs) (v aws.RetryMode, found bool, err error) {
+ for _, c := range configs {
+ if p, ok := c.(retryModeProvider); ok {
+ v, found, err = p.GetRetryMode(ctx)
+ if err != nil || found {
+ break
+ }
+ }
+ }
+ return v, found, err
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/resolve.go b/vendor/github.com/aws/aws-sdk-go-v2/config/resolve.go
index 550ca4e..4428ba4 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/config/resolve.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/config/resolve.go
@@ -11,6 +11,7 @@ import (
"github.com/aws/aws-sdk-go-v2/aws"
awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http"
+ "github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
"github.com/aws/smithy-go/logging"
)
@@ -20,9 +21,15 @@ import (
// This should be used as the first resolver in the slice of resolvers when
// resolving external configuration.
func resolveDefaultAWSConfig(ctx context.Context, cfg *aws.Config, cfgs configs) error {
+ var sources []interface{}
+ for _, s := range cfgs {
+ sources = append(sources, s)
+ }
+
*cfg = aws.Config{
- Credentials: aws.AnonymousCredentials{},
- Logger: logging.NewStandardLogger(os.Stderr),
+ Credentials: aws.AnonymousCredentials{},
+ Logger: logging.NewStandardLogger(os.Stderr),
+ ConfigSources: sources,
}
return nil
}
@@ -166,6 +173,22 @@ func resolveEndpointResolver(ctx context.Context, cfg *aws.Config, configs confi
return nil
}
+// resolveEndpointResolver extracts the first instance of a EndpointResolverFunc from the config slice
+// and sets the functions result on the aws.Config.EndpointResolver
+func resolveEndpointResolverWithOptions(ctx context.Context, cfg *aws.Config, configs configs) error {
+ endpointResolver, found, err := getEndpointResolverWithOptions(ctx, configs)
+ if err != nil {
+ return err
+ }
+ if !found {
+ return nil
+ }
+
+ cfg.EndpointResolverWithOptions = endpointResolver
+
+ return nil
+}
+
func resolveLogger(ctx context.Context, cfg *aws.Config, configs configs) error {
logger, found, err := getLogger(ctx, configs)
if err != nil {
@@ -199,13 +222,17 @@ func resolveRetryer(ctx context.Context, cfg *aws.Config, configs configs) error
if err != nil {
return err
}
- if !found {
+
+ if found {
+ cfg.Retryer = retryer
return nil
}
- cfg.Retryer = retryer
-
- return nil
+ // Only load the retry options if a custom retryer has not be specified.
+ if err = resolveRetryMaxAttempts(ctx, cfg, configs); err != nil {
+ return err
+ }
+ return resolveRetryMode(ctx, cfg, configs)
}
func resolveEC2IMDSRegion(ctx context.Context, cfg *aws.Config, configs configs) error {
@@ -225,3 +252,56 @@ func resolveEC2IMDSRegion(ctx context.Context, cfg *aws.Config, configs configs)
return nil
}
+
+func resolveDefaultsModeOptions(ctx context.Context, cfg *aws.Config, configs configs) error {
+ defaultsMode, found, err := getDefaultsMode(ctx, configs)
+ if err != nil {
+ return err
+ }
+ if !found {
+ defaultsMode = aws.DefaultsModeLegacy
+ }
+
+ var environment aws.RuntimeEnvironment
+ if defaultsMode == aws.DefaultsModeAuto {
+ envConfig, _, _ := getAWSConfigSources(configs)
+
+ client, found, err := getDefaultsModeIMDSClient(ctx, configs)
+ if err != nil {
+ return err
+ }
+ if !found {
+ client = imds.NewFromConfig(*cfg)
+ }
+
+ environment, err = resolveDefaultsModeRuntimeEnvironment(ctx, envConfig, client)
+ if err != nil {
+ return err
+ }
+ }
+
+ cfg.DefaultsMode = defaultsMode
+ cfg.RuntimeEnvironment = environment
+
+ return nil
+}
+
+func resolveRetryMaxAttempts(ctx context.Context, cfg *aws.Config, configs configs) error {
+ maxAttempts, found, err := getRetryMaxAttempts(ctx, configs)
+ if err != nil || !found {
+ return err
+ }
+ cfg.RetryMaxAttempts = maxAttempts
+
+ return nil
+}
+
+func resolveRetryMode(ctx context.Context, cfg *aws.Config, configs configs) error {
+ retryMode, found, err := getRetryMode(ctx, configs)
+ if err != nil || !found {
+ return err
+ }
+ cfg.RetryMode = retryMode
+
+ return nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/resolve_credentials.go b/vendor/github.com/aws/aws-sdk-go-v2/config/resolve_credentials.go
index 7dfe740..42904ed 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/config/resolve_credentials.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/config/resolve_credentials.go
@@ -59,8 +59,8 @@ func resolveCredentials(ctx context.Context, cfg *aws.Config, configs configs) e
//
// Config providers used:
// * credentialsProviderProvider
-func resolveCredentialProvider(ctx context.Context, cfg *aws.Config, cfgs configs) (bool, error) {
- credProvider, found, err := getCredentialsProvider(ctx, cfgs)
+func resolveCredentialProvider(ctx context.Context, cfg *aws.Config, configs configs) (bool, error) {
+ credProvider, found, err := getCredentialsProvider(ctx, configs)
if err != nil {
return false, err
}
@@ -68,7 +68,10 @@ func resolveCredentialProvider(ctx context.Context, cfg *aws.Config, cfgs config
return false, nil
}
- cfg.Credentials = wrapWithCredentialsCache(credProvider)
+ cfg.Credentials, err = wrapWithCredentialsCache(ctx, configs, credProvider)
+ if err != nil {
+ return false, err
+ }
return true, nil
}
@@ -105,7 +108,10 @@ func resolveCredentialChain(ctx context.Context, cfg *aws.Config, configs config
}
// Wrap the resolved provider in a cache so the SDK will cache credentials.
- cfg.Credentials = wrapWithCredentialsCache(cfg.Credentials)
+ cfg.Credentials, err = wrapWithCredentialsCache(ctx, configs, cfg.Credentials)
+ if err != nil {
+ return err
+ }
return nil
}
@@ -248,9 +254,12 @@ func resolveHTTPCredProvider(ctx context.Context, cfg *aws.Config, url, authToke
provider := endpointcreds.New(url, optFns...)
- cfg.Credentials = wrapWithCredentialsCache(provider, func(options *aws.CredentialsCacheOptions) {
+ cfg.Credentials, err = wrapWithCredentialsCache(ctx, configs, provider, func(options *aws.CredentialsCacheOptions) {
options.ExpiryWindow = 5 * time.Minute
})
+ if err != nil {
+ return err
+ }
return nil
}
@@ -296,9 +305,10 @@ func resolveEC2RoleCredentials(ctx context.Context, cfg *aws.Config, configs con
provider := ec2rolecreds.New(optFns...)
- cfg.Credentials = wrapWithCredentialsCache(provider, func(options *aws.CredentialsCacheOptions) {
- options.ExpiryWindow = 5 * time.Minute
- })
+ cfg.Credentials, err = wrapWithCredentialsCache(ctx, configs, provider)
+ if err != nil {
+ return err
+ }
return nil
}
@@ -430,12 +440,31 @@ func credsFromAssumeRole(ctx context.Context, cfg *aws.Config, sharedCfg *Shared
return nil
}
-// wrapWithCredentialsCache will wrap provider with an aws.CredentialsCache with the provided options if the provider is not already a aws.CredentialsCache.
-func wrapWithCredentialsCache(provider aws.CredentialsProvider, optFns ...func(options *aws.CredentialsCacheOptions)) aws.CredentialsProvider {
+// wrapWithCredentialsCache will wrap provider with an aws.CredentialsCache
+// with the provided options if the provider is not already a
+// aws.CredentialsCache.
+func wrapWithCredentialsCache(
+ ctx context.Context,
+ cfgs configs,
+ provider aws.CredentialsProvider,
+ optFns ...func(options *aws.CredentialsCacheOptions),
+) (aws.CredentialsProvider, error) {
_, ok := provider.(*aws.CredentialsCache)
if ok {
- return provider
+ return provider, nil
}
- return aws.NewCredentialsCache(provider, optFns...)
+ credCacheOptions, found, err := getCredentialsCacheOptionsProvider(ctx, cfgs)
+ if err != nil {
+ return nil, err
+ }
+
+ // force allocation of a new slice if the additional options are
+ // needed, to prevent overwriting the passed in slice of options.
+ optFns = optFns[:len(optFns):len(optFns)]
+ if found {
+ optFns = append(optFns, credCacheOptions)
+ }
+
+ return aws.NewCredentialsCache(provider, optFns...), nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/shared_config.go b/vendor/github.com/aws/aws-sdk-go-v2/config/shared_config.go
index b7222d0..4c43a16 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/config/shared_config.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/config/shared_config.go
@@ -1,17 +1,19 @@
package config
import (
+ "bytes"
"context"
"errors"
"fmt"
- "github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
+ "io"
+ "io/ioutil"
"os"
"path/filepath"
- "runtime"
"strings"
"time"
"github.com/aws/aws-sdk-go-v2/aws"
+ "github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
"github.com/aws/aws-sdk-go-v2/internal/ini"
"github.com/aws/smithy-go/logging"
)
@@ -76,6 +78,14 @@ const (
s3DisableMultiRegionAccessPointsKey = `s3_disable_multiregion_access_points`
useFIPSEndpointKey = "use_fips_endpoint"
+
+ defaultsModeKey = "defaults_mode"
+
+ // Retry options
+ retryMaxAttemptsKey = "max_attempts"
+ retryModeKey = "retry_mode"
+
+ caBundleKey = "ca_bundle"
)
// defaultSharedConfigProfile allows for swapping the default profile for testing
@@ -166,12 +176,14 @@ type SharedConfig struct {
// s3_use_arn_region=true
S3UseARNRegion *bool
- // Specifies the EC2 Instance Metadata Service default endpoint selection mode (IPv4 or IPv6)
+ // Specifies the EC2 Instance Metadata Service default endpoint selection
+ // mode (IPv4 or IPv6)
//
// ec2_metadata_service_endpoint_mode=IPv6
EC2IMDSEndpointMode imds.EndpointModeState
- // Specifies the EC2 Instance Metadata Service endpoint to use. If specified it overrides EC2IMDSEndpointMode.
+ // Specifies the EC2 Instance Metadata Service endpoint to use. If
+ // specified it overrides EC2IMDSEndpointMode.
//
// ec2_metadata_service_endpoint=http://fd00:ec2::254
EC2IMDSEndpoint string
@@ -193,6 +205,65 @@ type SharedConfig struct {
//
// use_fips_endpoint=true
UseFIPSEndpoint aws.FIPSEndpointState
+
+ // Specifies which defaults mode should be used by services.
+ //
+ // defaults_mode=standard
+ DefaultsMode aws.DefaultsMode
+
+ // Specifies the maximum number attempts an API client will call an
+ // operation that fails with a retryable error.
+ //
+ // max_attempts=3
+ RetryMaxAttempts int
+
+ // Specifies the retry model the API client will be created with.
+ //
+ // retry_mode=standard
+ RetryMode aws.RetryMode
+
+ // Sets the path to a custom Credentials Authority (CA) Bundle PEM file
+ // that the SDK will use instead of the system's root CA bundle. Only use
+ // this if you want to configure the SDK to use a custom set of CAs.
+ //
+ // Enabling this option will attempt to merge the Transport into the SDK's
+ // HTTP client. If the client's Transport is not a http.Transport an error
+ // will be returned. If the Transport's TLS config is set this option will
+ // cause the SDK to overwrite the Transport's TLS config's RootCAs value.
+ //
+ // Setting a custom HTTPClient in the aws.Config options will override this
+ // setting. To use this option and custom HTTP client, the HTTP client
+ // needs to be provided when creating the config. Not the service client.
+ //
+ // ca_bundle=$HOME/my_custom_ca_bundle
+ CustomCABundle string
+}
+
+func (c SharedConfig) getDefaultsMode(ctx context.Context) (value aws.DefaultsMode, ok bool, err error) {
+ if len(c.DefaultsMode) == 0 {
+ return "", false, nil
+ }
+
+ return c.DefaultsMode, true, nil
+}
+
+// GetRetryMaxAttempts returns the maximum number of attempts an API client
+// created Retryer should attempt an operation call before failing.
+func (c SharedConfig) GetRetryMaxAttempts(ctx context.Context) (value int, ok bool, err error) {
+ if c.RetryMaxAttempts == 0 {
+ return 0, false, nil
+ }
+
+ return c.RetryMaxAttempts, true, nil
+}
+
+// GetRetryMode returns the model the API client should create its Retryer in.
+func (c SharedConfig) GetRetryMode(ctx context.Context) (value aws.RetryMode, ok bool, err error) {
+ if len(c.RetryMode) == 0 {
+ return "", false, nil
+ }
+
+ return c.RetryMode, true, nil
}
// GetS3UseARNRegion returns if the S3 service should allow ARNs to direct the region
@@ -275,6 +346,19 @@ func (c SharedConfig) GetUseFIPSEndpoint(ctx context.Context) (value aws.FIPSEnd
return c.UseFIPSEndpoint, true, nil
}
+// GetCustomCABundle returns the custom CA bundle's PEM bytes if the file was
+func (c SharedConfig) getCustomCABundle(context.Context) (io.Reader, bool, error) {
+ if len(c.CustomCABundle) == 0 {
+ return nil, false, nil
+ }
+
+ b, err := ioutil.ReadFile(c.CustomCABundle)
+ if err != nil {
+ return nil, false, err
+ }
+ return bytes.NewReader(b), true, nil
+}
+
// loadSharedConfigIgnoreNotExist is an alias for loadSharedConfig with the
// addition of ignoring when none of the files exist or when the profile
// is not found in any of the files.
@@ -549,12 +633,8 @@ func mergeSections(dst, src ini.Sections) error {
secretKey := srcSection.String(secretAccessKey)
if dstSection.Has(accessKeyIDKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding credentials value for aws access key id, "+
- "and aws secret access key, defined in %v, with values found in a duplicate profile "+
- "defined at file %v. \n",
- sectionName, dstSection.SourceFile[accessKeyIDKey],
- srcSection.SourceFile[accessKeyIDKey]))
+ dstSection.Logs = append(dstSection.Logs, newMergeKeyLogMessage(sectionName, accessKeyIDKey,
+ dstSection.SourceFile[accessKeyIDKey], srcSection.SourceFile[accessKeyIDKey]))
}
// update access key
@@ -572,24 +652,8 @@ func mergeSections(dst, src ini.Sections) error {
dstSection.UpdateValue(secretAccessKey, v)
// update session token
- if srcSection.Has(sessionTokenKey) {
- sessionKey := srcSection.String(sessionTokenKey)
-
- val, e := ini.NewStringValue(sessionKey)
- if e != nil {
- return fmt.Errorf("error merging session key, %w", e)
- }
-
- if dstSection.Has(sessionTokenKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, sessionTokenKey, dstSection.SourceFile[sessionTokenKey],
- sessionTokenKey, srcSection.SourceFile[sessionTokenKey]))
- }
-
- dstSection.UpdateValue(sessionTokenKey, val)
- dstSection.UpdateSourceFile(sessionTokenKey, srcSection.SourceFile[sessionTokenKey])
+ if err = mergeStringKey(&srcSection, &dstSection, sectionName, sessionTokenKey); err != nil {
+ return err
}
// update source file to reflect where the static creds came from
@@ -597,244 +661,40 @@ func mergeSections(dst, src ini.Sections) error {
dstSection.UpdateSourceFile(secretAccessKey, srcSection.SourceFile[secretAccessKey])
}
- if srcSection.Has(roleArnKey) {
- key := srcSection.String(roleArnKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging roleArnKey, %w", err)
+ stringKeys := []string{
+ roleArnKey,
+ sourceProfileKey,
+ credentialSourceKey,
+ externalIDKey,
+ mfaSerialKey,
+ roleSessionNameKey,
+ regionKey,
+ enableEndpointDiscoveryKey,
+ credentialProcessKey,
+ webIdentityTokenFileKey,
+ s3UseARNRegionKey,
+ s3DisableMultiRegionAccessPointsKey,
+ ec2MetadataServiceEndpointModeKey,
+ ec2MetadataServiceEndpointKey,
+ useDualStackEndpoint,
+ useFIPSEndpointKey,
+ defaultsModeKey,
+ retryModeKey,
+ }
+ for i := range stringKeys {
+ if err := mergeStringKey(&srcSection, &dstSection, sectionName, stringKeys[i]); err != nil {
+ return err
}
-
- if dstSection.Has(roleArnKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, roleArnKey, dstSection.SourceFile[roleArnKey],
- roleArnKey, srcSection.SourceFile[roleArnKey]))
- }
-
- dstSection.UpdateValue(roleArnKey, val)
- dstSection.UpdateSourceFile(roleArnKey, srcSection.SourceFile[roleArnKey])
}
- if srcSection.Has(sourceProfileKey) {
- key := srcSection.String(sourceProfileKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging sourceProfileKey, %w", err)
- }
-
- if dstSection.Has(sourceProfileKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, sourceProfileKey, dstSection.SourceFile[sourceProfileKey],
- sourceProfileKey, srcSection.SourceFile[sourceProfileKey]))
- }
-
- dstSection.UpdateValue(sourceProfileKey, val)
- dstSection.UpdateSourceFile(sourceProfileKey, srcSection.SourceFile[sourceProfileKey])
+ intKeys := []string{
+ roleDurationSecondsKey,
+ retryMaxAttemptsKey,
}
-
- if srcSection.Has(credentialSourceKey) {
- key := srcSection.String(credentialSourceKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging credentialSourceKey, %w", err)
+ for i := range intKeys {
+ if err := mergeIntKey(&srcSection, &dstSection, sectionName, intKeys[i]); err != nil {
+ return err
}
-
- if dstSection.Has(credentialSourceKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, credentialSourceKey, dstSection.SourceFile[credentialSourceKey],
- credentialSourceKey, srcSection.SourceFile[credentialSourceKey]))
- }
-
- dstSection.UpdateValue(credentialSourceKey, val)
- dstSection.UpdateSourceFile(credentialSourceKey, srcSection.SourceFile[credentialSourceKey])
- }
-
- if srcSection.Has(externalIDKey) {
- key := srcSection.String(externalIDKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging externalIDKey, %w", err)
- }
-
- if dstSection.Has(externalIDKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, externalIDKey, dstSection.SourceFile[externalIDKey],
- externalIDKey, srcSection.SourceFile[externalIDKey]))
- }
-
- dstSection.UpdateValue(externalIDKey, val)
- dstSection.UpdateSourceFile(externalIDKey, srcSection.SourceFile[externalIDKey])
- }
-
- if srcSection.Has(mfaSerialKey) {
- key := srcSection.String(mfaSerialKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging mfaSerialKey, %w", err)
- }
-
- if dstSection.Has(mfaSerialKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, mfaSerialKey, dstSection.SourceFile[mfaSerialKey],
- mfaSerialKey, srcSection.SourceFile[mfaSerialKey]))
- }
-
- dstSection.UpdateValue(mfaSerialKey, val)
- dstSection.UpdateSourceFile(mfaSerialKey, srcSection.SourceFile[mfaSerialKey])
- }
-
- if srcSection.Has(roleSessionNameKey) {
- key := srcSection.String(roleSessionNameKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging roleSessionNameKey, %w", err)
- }
-
- if dstSection.Has(roleSessionNameKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, roleSessionNameKey, dstSection.SourceFile[roleSessionNameKey],
- roleSessionNameKey, srcSection.SourceFile[roleSessionNameKey]))
- }
-
- dstSection.UpdateValue(roleSessionNameKey, val)
- dstSection.UpdateSourceFile(roleSessionNameKey, srcSection.SourceFile[roleSessionNameKey])
- }
-
- // role duration seconds key update
- if srcSection.Has(roleDurationSecondsKey) {
- roleDurationSeconds := srcSection.Int(roleDurationSecondsKey)
- v, err := ini.NewIntValue(roleDurationSeconds)
- if err != nil {
- return fmt.Errorf("error merging role duration seconds key, %w", err)
- }
- dstSection.UpdateValue(roleDurationSecondsKey, v)
-
- dstSection.UpdateSourceFile(roleDurationSecondsKey, srcSection.SourceFile[roleDurationSecondsKey])
- }
-
- if srcSection.Has(regionKey) {
- key := srcSection.String(regionKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging regionKey, %w", err)
- }
-
- if dstSection.Has(regionKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, regionKey, dstSection.SourceFile[regionKey],
- regionKey, srcSection.SourceFile[regionKey]))
- }
-
- dstSection.UpdateValue(regionKey, val)
- dstSection.UpdateSourceFile(regionKey, srcSection.SourceFile[regionKey])
- }
-
- if srcSection.Has(enableEndpointDiscoveryKey) {
- key := srcSection.String(enableEndpointDiscoveryKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging enableEndpointDiscoveryKey, %w", err)
- }
-
- if dstSection.Has(enableEndpointDiscoveryKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, enableEndpointDiscoveryKey, dstSection.SourceFile[enableEndpointDiscoveryKey],
- enableEndpointDiscoveryKey, srcSection.SourceFile[enableEndpointDiscoveryKey]))
- }
-
- dstSection.UpdateValue(enableEndpointDiscoveryKey, val)
- dstSection.UpdateSourceFile(enableEndpointDiscoveryKey, srcSection.SourceFile[enableEndpointDiscoveryKey])
- }
-
- if srcSection.Has(credentialProcessKey) {
- key := srcSection.String(credentialProcessKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging credentialProcessKey, %w", err)
- }
-
- if dstSection.Has(credentialProcessKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, credentialProcessKey, dstSection.SourceFile[credentialProcessKey],
- credentialProcessKey, srcSection.SourceFile[credentialProcessKey]))
- }
-
- dstSection.UpdateValue(credentialProcessKey, val)
- dstSection.UpdateSourceFile(credentialProcessKey, srcSection.SourceFile[credentialProcessKey])
- }
-
- if srcSection.Has(webIdentityTokenFileKey) {
- key := srcSection.String(webIdentityTokenFileKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging webIdentityTokenFileKey, %w", err)
- }
-
- if dstSection.Has(webIdentityTokenFileKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, webIdentityTokenFileKey, dstSection.SourceFile[webIdentityTokenFileKey],
- webIdentityTokenFileKey, srcSection.SourceFile[webIdentityTokenFileKey]))
- }
-
- dstSection.UpdateValue(webIdentityTokenFileKey, val)
- dstSection.UpdateSourceFile(webIdentityTokenFileKey, srcSection.SourceFile[webIdentityTokenFileKey])
- }
-
- if srcSection.Has(s3UseARNRegionKey) {
- key := srcSection.String(s3UseARNRegionKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging s3UseARNRegionKey, %w", err)
- }
-
- if dstSection.Has(s3UseARNRegionKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, s3UseARNRegionKey, dstSection.SourceFile[s3UseARNRegionKey],
- s3UseARNRegionKey, srcSection.SourceFile[s3UseARNRegionKey]))
- }
-
- dstSection.UpdateValue(s3UseARNRegionKey, val)
- dstSection.UpdateSourceFile(s3UseARNRegionKey, srcSection.SourceFile[s3UseARNRegionKey])
- }
-
- if srcSection.Has(s3DisableMultiRegionAccessPointsKey) {
- key := srcSection.String(s3DisableMultiRegionAccessPointsKey)
- val, err := ini.NewStringValue(key)
- if err != nil {
- return fmt.Errorf("error merging s3DisableMultiRegionAccessPointsKey, %w", err)
- }
-
- if dstSection.Has(s3DisableMultiRegionAccessPointsKey) {
- dstSection.Logs = append(dstSection.Logs,
- fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
- "with a %v value found in a duplicate profile defined at file %v. \n",
- sectionName, s3DisableMultiRegionAccessPointsKey, dstSection.SourceFile[s3DisableMultiRegionAccessPointsKey],
- s3DisableMultiRegionAccessPointsKey, srcSection.SourceFile[s3DisableMultiRegionAccessPointsKey]))
- }
-
- dstSection.UpdateValue(s3DisableMultiRegionAccessPointsKey, val)
- dstSection.UpdateSourceFile(s3DisableMultiRegionAccessPointsKey, srcSection.SourceFile[s3DisableMultiRegionAccessPointsKey])
}
// set srcSection on dst srcSection
@@ -844,6 +704,51 @@ func mergeSections(dst, src ini.Sections) error {
return nil
}
+func mergeStringKey(srcSection *ini.Section, dstSection *ini.Section, sectionName, key string) error {
+ if srcSection.Has(key) {
+ srcValue := srcSection.String(key)
+ val, err := ini.NewStringValue(srcValue)
+ if err != nil {
+ return fmt.Errorf("error merging %s, %w", key, err)
+ }
+
+ if dstSection.Has(key) {
+ dstSection.Logs = append(dstSection.Logs, newMergeKeyLogMessage(sectionName, key,
+ dstSection.SourceFile[key], srcSection.SourceFile[key]))
+ }
+
+ dstSection.UpdateValue(key, val)
+ dstSection.UpdateSourceFile(key, srcSection.SourceFile[key])
+ }
+ return nil
+}
+
+func mergeIntKey(srcSection *ini.Section, dstSection *ini.Section, sectionName, key string) error {
+ if srcSection.Has(key) {
+ srcValue := srcSection.Int(key)
+ v, err := ini.NewIntValue(srcValue)
+ if err != nil {
+ return fmt.Errorf("error merging %s, %w", key, err)
+ }
+
+ if dstSection.Has(key) {
+ dstSection.Logs = append(dstSection.Logs, newMergeKeyLogMessage(sectionName, key,
+ dstSection.SourceFile[key], srcSection.SourceFile[key]))
+
+ }
+
+ dstSection.UpdateValue(key, v)
+ dstSection.UpdateSourceFile(key, srcSection.SourceFile[key])
+ }
+ return nil
+}
+
+func newMergeKeyLogMessage(sectionName, key, dstSourceFile, srcSourceFile string) string {
+ return fmt.Sprintf("For profile: %v, overriding %v value, defined in %v "+
+ "with a %v value found in a duplicate profile defined at file %v. \n",
+ sectionName, key, dstSourceFile, key, srcSourceFile)
+}
+
// Returns an error if all of the files fail to load. If at least one file is
// successfully loaded and contains the profile, no error will be returned.
func (c *SharedConfig) setFromIniSections(profiles map[string]struct{}, profile string,
@@ -991,6 +896,19 @@ func (c *SharedConfig) setFromIniSection(profile string, section ini.Section) er
updateUseDualStackEndpoint(&c.UseDualStackEndpoint, section, useDualStackEndpoint)
updateUseFIPSEndpoint(&c.UseFIPSEndpoint, section, useFIPSEndpointKey)
+ if err := updateDefaultsMode(&c.DefaultsMode, section, defaultsModeKey); err != nil {
+ return fmt.Errorf("failed to load %s from shared config, %w", defaultsModeKey, err)
+ }
+
+ if err := updateInt(&c.RetryMaxAttempts, section, retryMaxAttemptsKey); err != nil {
+ return fmt.Errorf("failed to load %s from shared config, %w", retryMaxAttemptsKey, err)
+ }
+ if err := updateRetryMode(&c.RetryMode, section, retryModeKey); err != nil {
+ return fmt.Errorf("failed to load %s from shared config, %w", retryModeKey, err)
+ }
+
+ updateString(&c.CustomCABundle, section, caBundleKey)
+
// Shared Credentials
creds := aws.Credentials{
AccessKeyID: section.String(accessKeyIDKey),
@@ -1006,6 +924,28 @@ func (c *SharedConfig) setFromIniSection(profile string, section ini.Section) er
return nil
}
+func updateDefaultsMode(mode *aws.DefaultsMode, section ini.Section, key string) error {
+ if !section.Has(key) {
+ return nil
+ }
+ value := section.String(key)
+ if ok := mode.SetFromString(value); !ok {
+ return fmt.Errorf("invalid value: %s", value)
+ }
+ return nil
+}
+
+func updateRetryMode(mode *aws.RetryMode, section ini.Section, key string) (err error) {
+ if !section.Has(key) {
+ return nil
+ }
+ value := section.String(key)
+ if *mode, err = aws.ParseRetryMode(value); err != nil {
+ return err
+ }
+ return nil
+}
+
func updateEC2MetadataServiceEndpointMode(endpointMode *imds.EndpointModeState, section ini.Section, key string) error {
if !section.Has(key) {
return nil
@@ -1204,12 +1144,9 @@ func (e CredentialRequiresARNError) Error() string {
}
func userHomeDir() string {
- if runtime.GOOS == "windows" { // Windows
- return os.Getenv("USERPROFILE")
- }
-
- // *nix
- return os.Getenv("HOME")
+ // Ignore errors since we only care about Windows and *nix.
+ homedir, _ := os.UserHomeDir()
+ return homedir
}
func oneOrNone(bs ...bool) bool {
@@ -1236,6 +1173,24 @@ func updateString(dst *string, section ini.Section, key string) {
*dst = section.String(key)
}
+// updateInt will only update the dst with the value in the section key, key
+// is present in the section.
+//
+// Down casts the INI integer value from a int64 to an int, which could be
+// different bit size depending on platform.
+func updateInt(dst *int, section ini.Section, key string) error {
+ if !section.Has(key) {
+ return nil
+ }
+ if vt, _ := section.ValueType(key); vt != ini.IntegerType {
+ return fmt.Errorf("invalid value %s=%s, expect integer",
+ key, section.String(key))
+
+ }
+ *dst = int(section.Int(key))
+ return nil
+}
+
// updateBool will only update the dst with the value in the section key, key
// is present in the section.
func updateBool(dst *bool, section ini.Section, key string) {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md
index 790ea64..20e0fa9 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md
@@ -1,3 +1,78 @@
+# v1.12.5 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.4 (2022-05-26)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.3 (2022-05-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.2 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.1 (2022-05-16)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.0 (2022-04-25)
+
+* **Feature**: Adds Duration and Policy options that can be used when creating stscreds.WebIdentityRoleProvider credentials provider.
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.2 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.1 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.0 (2022-03-23)
+
+* **Feature**: Update `ec2rolecreds` package's `Provider` to implememnt support for CredentialsCache new optional caching strategy interfaces, HandleFailRefreshCredentialsCacheStrategy and AdjustExpiresByCredentialsCacheStrategy.
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.10.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.9.0 (2022-02-24)
+
+* **Feature**: Adds support for `SourceIdentity` to `stscreds.AssumeRoleProvider` [#1588](https://github.com/aws/aws-sdk-go-v2/pull/1588). Fixes [#1575](https://github.com/aws/aws-sdk-go-v2/issues/1575)
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.8.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.7.0 (2022-01-07)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.6.5 (2021-12-21)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.6.4 (2021-12-02)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.6.3 (2021-11-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.6.2 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v1.6.1 (2021-11-12)
* **Dependency Update**: Updated to the latest SDK module versions
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds/provider.go b/vendor/github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds/provider.go
index 901132a..aeb79ac 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds/provider.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds/provider.go
@@ -5,13 +5,18 @@ import (
"context"
"encoding/json"
"fmt"
+ "math"
"path"
"strings"
"time"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
+ sdkrand "github.com/aws/aws-sdk-go-v2/internal/rand"
+ "github.com/aws/aws-sdk-go-v2/internal/sdk"
"github.com/aws/smithy-go"
+ "github.com/aws/smithy-go/logging"
+ "github.com/aws/smithy-go/middleware"
)
// ProviderName provides a name of EC2Role provider
@@ -26,14 +31,10 @@ type GetMetadataAPIClient interface {
// A Provider retrieves credentials from the EC2 service, and keeps track if
// those credentials are expired.
//
-// The New function must be used to create the Provider.
+// The New function must be used to create the with a custom EC2 IMDS client.
//
-// p := &ec2rolecreds.New(ec2rolecreds.Options{
-// Client: imds.New(imds.Options{}),
-//
-// // Expire the credentials 10 minutes before IAM states they should.
-// // Proactively refreshing the credentials.
-// ExpiryWindow: 10 * time.Minute
+// p := &ec2rolecreds.New(func(o *ec2rolecreds.Options{
+// o.Client = imds.New(imds.Options{/* custom options */})
// })
type Provider struct {
options Options
@@ -66,9 +67,8 @@ func New(optFns ...func(*Options)) *Provider {
}
}
-// Retrieve retrieves credentials from the EC2 service.
-// Error will be returned if the request fails, or unable to extract
-// the desired credentials.
+// Retrieve retrieves credentials from the EC2 service. Error will be returned
+// if the request fails, or unable to extract the desired credentials.
func (p *Provider) Retrieve(ctx context.Context) (aws.Credentials, error) {
credsList, err := requestCredList(ctx, p.options.Client)
if err != nil {
@@ -96,10 +96,65 @@ func (p *Provider) Retrieve(ctx context.Context) (aws.Credentials, error) {
Expires: roleCreds.Expiration,
}
+ // Cap role credentials Expires to 1 hour so they can be refreshed more
+ // often. Jitter will be applied credentials cache if being used.
+ if anHour := sdk.NowTime().Add(1 * time.Hour); creds.Expires.After(anHour) {
+ creds.Expires = anHour
+ }
+
return creds, nil
}
-// A ec2RoleCredRespBody provides the shape for unmarshaling credential
+// HandleFailToRefresh will extend the credentials Expires time if it it is
+// expired. If the credentials will not expire within the minimum time, they
+// will be returned.
+//
+// If the credentials cannot expire, the original error will be returned.
+func (p *Provider) HandleFailToRefresh(ctx context.Context, prevCreds aws.Credentials, err error) (
+ aws.Credentials, error,
+) {
+ if !prevCreds.CanExpire {
+ return aws.Credentials{}, err
+ }
+
+ if prevCreds.Expires.After(sdk.NowTime().Add(5 * time.Minute)) {
+ return prevCreds, nil
+ }
+
+ newCreds := prevCreds
+ randFloat64, err := sdkrand.CryptoRandFloat64()
+ if err != nil {
+ return aws.Credentials{}, fmt.Errorf("failed to get random float, %w", err)
+ }
+
+ // Random distribution of [5,15) minutes.
+ expireOffset := time.Duration(randFloat64*float64(10*time.Minute)) + 5*time.Minute
+ newCreds.Expires = sdk.NowTime().Add(expireOffset)
+
+ logger := middleware.GetLogger(ctx)
+ logger.Logf(logging.Warn, "Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted again in %v minutes.", math.Floor(expireOffset.Minutes()))
+
+ return newCreds, nil
+}
+
+// AdjustExpiresBy will adds the passed in duration to the passed in
+// credential's Expires time, unless the time until Expires is less than 15
+// minutes. Returns the credentials, even if not updated.
+func (p *Provider) AdjustExpiresBy(creds aws.Credentials, dur time.Duration) (
+ aws.Credentials, error,
+) {
+ if !creds.CanExpire {
+ return creds, nil
+ }
+ if creds.Expires.Before(sdk.NowTime().Add(15 * time.Minute)) {
+ return creds, nil
+ }
+
+ creds.Expires = creds.Expires.Add(dur)
+ return creds, nil
+}
+
+// ec2RoleCredRespBody provides the shape for unmarshaling credential
// request responses.
type ec2RoleCredRespBody struct {
// Success State
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go
index 7ae9ceb..7f5d535 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go
@@ -3,4 +3,4 @@
package credentials
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.6.1"
+const goModuleVersion = "1.12.5"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/assume_role_provider.go b/vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/assume_role_provider.go
index 3cafa48..314fbd8 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/assume_role_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/assume_role_provider.go
@@ -136,8 +136,13 @@ type AssumeRoleAPIClient interface {
AssumeRole(ctx context.Context, params *sts.AssumeRoleInput, optFns ...func(*sts.Options)) (*sts.AssumeRoleOutput, error)
}
-// DefaultDuration is the default amount of time in minutes that the credentials
-// will be valid for.
+// DefaultDuration is the default amount of time in minutes that the
+// credentials will be valid for. This value is only used by AssumeRoleProvider
+// for specifying the default expiry duration of an assume role.
+//
+// Other providers such as WebIdentityRoleProvider do not use this value, and
+// instead rely on STS API's default parameter handing to assign a default
+// value.
var DefaultDuration = time.Duration(15) * time.Minute
// AssumeRoleProvider retrieves temporary credentials from the STS service, and
@@ -208,6 +213,18 @@ type AssumeRoleOptions struct {
// or an Amazon Resource Name (ARN) for a virtual device (such as arn:aws:iam::123456789012:mfa/user).
SerialNumber *string
+ // The source identity specified by the principal that is calling the AssumeRole
+ // operation. You can require users to specify a source identity when they assume a
+ // role. You do this by using the sts:SourceIdentity condition key in a role trust
+ // policy. You can use source identity information in CloudTrail logs to determine
+ // who took actions with a role. You can use the aws:SourceIdentity condition key
+ // to further control access to Amazon Web Services resources based on the value of
+ // source identity. For more information about using source identity, see Monitor
+ // and control actions taken with assumed roles
+ // (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html)
+ // in the IAM User Guide.
+ SourceIdentity *string
+
// Async method of providing MFA token code for assuming an IAM role with MFA.
// The value returned by the function will be used as the TokenCode in the Retrieve
// call. See StdinTokenProvider for a provider that prompts and reads from stdin.
@@ -266,6 +283,7 @@ func (p *AssumeRoleProvider) Retrieve(ctx context.Context) (aws.Credentials, err
RoleArn: aws.String(p.options.RoleARN),
RoleSessionName: aws.String(p.options.RoleSessionName),
ExternalId: p.options.ExternalID,
+ SourceIdentity: p.options.SourceIdentity,
Tags: p.options.Tags,
TransitiveTagKeys: p.options.TransitiveTagKeys,
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/web_identity_provider.go b/vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/web_identity_provider.go
index 7854a32..ddaf6df 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/web_identity_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/web_identity_provider.go
@@ -5,6 +5,7 @@ import (
"fmt"
"io/ioutil"
"strconv"
+ "time"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/aws/retry"
@@ -45,6 +46,19 @@ type WebIdentityRoleOptions struct {
// Session name, if you wish to uniquely identify this session.
RoleSessionName string
+ // Expiry duration of the STS credentials. STS will assign a default expiry
+ // duration if this value is unset. This is different from the Duration
+ // option of AssumeRoleProvider, which automatically assigns 15 minutes if
+ // Duration is unset.
+ //
+ // See the STS AssumeRoleWithWebIdentity API reference guide for more
+ // information on defaults.
+ // https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html
+ Duration time.Duration
+
+ // An IAM policy in JSON format that you want to use as an inline session policy.
+ Policy *string
+
// The Amazon Resource Names (ARNs) of the IAM managed policies that you
// want to use as managed session policies. The policies must exist in the
// same account as the role.
@@ -100,12 +114,21 @@ func (p *WebIdentityRoleProvider) Retrieve(ctx context.Context) (aws.Credentials
// uses unix time in nanoseconds to uniquely identify sessions.
sessionName = strconv.FormatInt(sdk.NowTime().UnixNano(), 10)
}
- resp, err := p.options.Client.AssumeRoleWithWebIdentity(ctx, &sts.AssumeRoleWithWebIdentityInput{
+ input := &sts.AssumeRoleWithWebIdentityInput{
PolicyArns: p.options.PolicyARNs,
RoleArn: &p.options.RoleARN,
RoleSessionName: &sessionName,
WebIdentityToken: aws.String(string(b)),
- }, func(options *sts.Options) {
+ }
+ if p.options.Duration != 0 {
+ // If set use the value, otherwise STS will assign a default expiration duration.
+ input.DurationSeconds = aws.Int32(int32(p.options.Duration / time.Second))
+ }
+ if p.options.Policy != nil {
+ input.Policy = p.options.Policy
+ }
+
+ resp, err := p.options.Client.AssumeRoleWithWebIdentity(ctx, input, func(options *sts.Options) {
options.Retryer = retry.AddWithErrorCodes(options.Retryer, invalidIdentityTokenExceptionCode)
})
if err != nil {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md
index 2a2fe38..c1289c3 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md
@@ -1,3 +1,55 @@
+# v1.12.6 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.5 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.4 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.3 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.2 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.1 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.0 (2022-02-24)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.10.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.9.0 (2022-01-07)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.8.2 (2021-12-02)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.8.1 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v1.8.0 (2021-11-06)
* **Feature**: Updated `github.com/aws/smithy-go` to latest version
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go
index 0aebc89..3b6ed64 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go
@@ -3,4 +3,4 @@
package imds
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.8.0"
+const goModuleVersion = "1.12.6"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md
index 5ab86d8..ded1939 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md
@@ -1,3 +1,51 @@
+# v1.1.12 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.11 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.10 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.9 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.8 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.7 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.6 (2022-03-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.5 (2022-02-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.4 (2022-01-14)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.3 (2022-01-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.2 (2021-12-02)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.1 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v1.1.0 (2021-11-06)
* **Feature**: The SDK now supports configuration of FIPS and DualStack endpoints using environment variables, shared configuration, or programmatically.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go
index 284eee1..edd39d5 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go
@@ -3,4 +3,4 @@
package configsources
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.1.0"
+const goModuleVersion = "1.1.12"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md
index 32b2372..9ee12e5 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md
@@ -1,3 +1,55 @@
+# v2.4.6 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v2.4.5 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v2.4.4 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v2.4.3 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v2.4.2 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v2.4.1 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v2.4.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v2.3.0 (2022-02-24)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v2.2.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v2.1.0 (2022-01-07)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v2.0.2 (2021-12-02)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v2.0.1 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v2.0.0 (2021-11-06)
* **Release**: Endpoint Variant Model Support
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go
index 899ff7e..f50f5d2 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go
@@ -3,4 +3,4 @@
package endpoints
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "2.0.0"
+const goModuleVersion = "2.4.6"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/CHANGELOG.md
index dec5bda..08807b3 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/CHANGELOG.md
@@ -1,3 +1,56 @@
+# v1.3.13 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.3.12 (2022-05-17)
+
+* **Bug Fix**: Removes the fuzz testing files from the module, as they are invalid and not used.
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.3.11 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.3.10 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.3.9 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.3.8 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.3.7 (2022-03-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.3.6 (2022-02-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.3.5 (2022-01-28)
+
+* **Bug Fix**: Fixes the SDK's handling of `duration_sections` in the shared credentials file or specified in multiple shared config and shared credentials files under the same profile. [#1568](https://github.com/aws/aws-sdk-go-v2/pull/1568). Thanks to [Amir Szekely](https://github.com/kichik) for help reproduce this bug.
+
+# v1.3.4 (2022-01-14)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.3.3 (2022-01-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.3.2 (2021-12-02)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.3.1 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v1.3.0 (2021-11-06)
* **Feature**: The SDK now supports configuration of FIPS and DualStack endpoints using environment variables, shared configuration, or programmatically.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/fuzz.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/fuzz.go
deleted file mode 100644
index 6e545b6..0000000
--- a/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/fuzz.go
+++ /dev/null
@@ -1,18 +0,0 @@
-//go:build gofuzz
-// +build gofuzz
-
-package ini
-
-import (
- "bytes"
-)
-
-func Fuzz(data []byte) int {
- b := bytes.NewReader(data)
-
- if _, err := Parse(b); err != nil {
- return 0
- }
-
- return 1
-}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/go_module_metadata.go
index fb255e7..44c2ed9 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/go_module_metadata.go
@@ -3,4 +3,4 @@
package ini
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.3.0"
+const goModuleVersion = "1.3.13"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/literal_tokens.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/literal_tokens.go
index bea8394..eca42d1 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/literal_tokens.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/ini/literal_tokens.go
@@ -216,22 +216,8 @@ func NewStringValue(str string) (Value, error) {
// NewIntValue returns a Value type generated using an int64 input.
func NewIntValue(i int64) (Value, error) {
- return newValue(IntegerType, 10, []rune{rune(i)})
-}
-
-// Append will append values and change the type to a string
-// type.
-func (v *Value) Append(tok Token) {
- r := tok.Raw()
- if v.Type != QuotedStringType {
- v.Type = StringType
- r = tok.raw[1 : len(tok.raw)-1]
- }
- if tok.Type() != TokenLit {
- v.raw = append(v.raw, tok.Raw()...)
- } else {
- v.raw = append(v.raw, r...)
- }
+ v := strconv.FormatInt(i, 10)
+ return newValue(IntegerType, 10, []rune(v))
}
func (v Value) String() string {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/rand/rand.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/rand/rand.go
index 9791ea5..c8484dc 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/internal/rand/rand.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/rand/rand.go
@@ -29,5 +29,5 @@ func Float64(reader io.Reader) (float64, error) {
// CryptoRandFloat64 returns a random float64 obtained from the crypto rand
// source.
func CryptoRandFloat64() (float64, error) {
- return Float64(rand.Reader)
+ return Float64(Reader)
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/LICENSE b/vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/LICENSE
index 6a66aea..fe6a620 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/LICENSE
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/LICENSE
@@ -14,7 +14,7 @@ distribution.
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+THIS SOFTWARE IS PROVIDED BY THE COPYIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
@@ -25,3 +25,4 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/docs.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/docs.go
new file mode 100644
index 0000000..cb70616
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/docs.go
@@ -0,0 +1,7 @@
+// Package singleflight provides a duplicate function call suppression
+// mechanism. This package is a fork of the Go golang.org/x/sync/singleflight
+// package. The package is forked, because the package a part of the unstable
+// and unversioned golang.org/x/sync module.
+//
+// https://github.com/golang/sync/tree/67f06af15bc961c363a7260195bcd53487529a21/singleflight
+package singleflight
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/singleflight.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/singleflight.go
index 14ad0c5..e8a1b17 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/singleflight.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/singleflight.go
@@ -2,11 +2,44 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// Package singleflight provides a duplicate function call suppression
-// mechanism.
package singleflight
-import "sync"
+import (
+ "bytes"
+ "errors"
+ "fmt"
+ "runtime"
+ "runtime/debug"
+ "sync"
+)
+
+// errGoexit indicates the runtime.Goexit was called in
+// the user given function.
+var errGoexit = errors.New("runtime.Goexit was called")
+
+// A panicError is an arbitrary value recovered from a panic
+// with the stack trace during the execution of given function.
+type panicError struct {
+ value interface{}
+ stack []byte
+}
+
+// Error implements error interface.
+func (p *panicError) Error() string {
+ return fmt.Sprintf("%v\n\n%s", p.value, p.stack)
+}
+
+func newPanicError(v interface{}) error {
+ stack := debug.Stack()
+
+ // The first line of the stack trace is of the form "goroutine N [status]:"
+ // but by the time the panic reaches Do the goroutine may no longer exist
+ // and its status will have changed. Trim out the misleading line.
+ if line := bytes.IndexByte(stack[:], '\n'); line >= 0 {
+ stack = stack[line+1:]
+ }
+ return &panicError{value: v, stack: stack}
+}
// call is an in-flight or completed singleflight.Do call
type call struct {
@@ -57,6 +90,12 @@ func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, e
c.dups++
g.mu.Unlock()
c.wg.Wait()
+
+ if e, ok := c.err.(*panicError); ok {
+ panic(e)
+ } else if c.err == errGoexit {
+ runtime.Goexit()
+ }
return c.val, c.err, true
}
c := new(call)
@@ -70,6 +109,8 @@ func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, e
// DoChan is like Do but returns a channel that will receive the
// results when they are ready.
+//
+// The returned channel will not be closed.
func (g *Group) DoChan(key string, fn func() (interface{}, error)) <-chan Result {
ch := make(chan Result, 1)
g.mu.Lock()
@@ -94,17 +135,66 @@ func (g *Group) DoChan(key string, fn func() (interface{}, error)) <-chan Result
// doCall handles the single call for a key.
func (g *Group) doCall(c *call, key string, fn func() (interface{}, error)) {
- c.val, c.err = fn()
- c.wg.Done()
+ normalReturn := false
+ recovered := false
- g.mu.Lock()
- if !c.forgotten {
- delete(g.m, key)
+ // use double-defer to distinguish panic from runtime.Goexit,
+ // more details see https://golang.org/cl/134395
+ defer func() {
+ // the given function invoked runtime.Goexit
+ if !normalReturn && !recovered {
+ c.err = errGoexit
+ }
+
+ c.wg.Done()
+ g.mu.Lock()
+ defer g.mu.Unlock()
+ if !c.forgotten {
+ delete(g.m, key)
+ }
+
+ if e, ok := c.err.(*panicError); ok {
+ // In order to prevent the waiting channels from being blocked forever,
+ // needs to ensure that this panic cannot be recovered.
+ if len(c.chans) > 0 {
+ go panic(e)
+ select {} // Keep this goroutine around so that it will appear in the crash dump.
+ } else {
+ panic(e)
+ }
+ } else if c.err == errGoexit {
+ // Already in the process of goexit, no need to call again
+ } else {
+ // Normal return
+ for _, ch := range c.chans {
+ ch <- Result{c.val, c.err, c.dups > 0}
+ }
+ }
+ }()
+
+ func() {
+ defer func() {
+ if !normalReturn {
+ // Ideally, we would wait to take a stack trace until we've determined
+ // whether this is a panic or a runtime.Goexit.
+ //
+ // Unfortunately, the only way we can distinguish the two is to see
+ // whether the recover stopped the goroutine from terminating, and by
+ // the time we know that, the part of the stack trace relevant to the
+ // panic has been discarded.
+ if r := recover(); r != nil {
+ c.err = newPanicError(r)
+ }
+ }
+ }()
+
+ c.val, c.err = fn()
+ normalReturn = true
+ }()
+
+ if !normalReturn {
+ recovered = true
}
- for _, ch := range c.chans {
- ch <- Result{c.val, c.err, c.dups > 0}
- }
- g.mu.Unlock()
}
// Forget tells the singleflight to forget about a key. Future calls
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md
new file mode 100644
index 0000000..c66345b
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md
@@ -0,0 +1,16 @@
+# v1.0.3 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.0.2 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.0.1 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.0.0 (2022-04-07)
+
+* **Release**: New internal v4a signing module location.
+
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/LICENSE.txt b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/LICENSE.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/credentials.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/credentials.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/credentials.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/credentials.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/error.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/error.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/error.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/error.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go
new file mode 100644
index 0000000..3e2a161
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go
@@ -0,0 +1,6 @@
+// Code generated by internal/repotools/cmd/updatemodulemeta DO NOT EDIT.
+
+package v4a
+
+// goModuleVersion is the tagged release for this module
+const goModuleVersion = "1.0.3"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/crypto/compare.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto/compare.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/crypto/compare.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto/compare.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/crypto/ecc.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto/ecc.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/crypto/ecc.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto/ecc.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/const.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/const.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/const.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/const.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/header_rules.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/header_rules.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/header_rules.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/header_rules.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/headers.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/headers.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/headers.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/headers.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/hmac.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/hmac.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/hmac.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/hmac.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/host.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/host.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/host.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/host.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/time.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/time.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/time.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/time.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/util.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/util.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4/util.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/util.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/middleware.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/middleware.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/middleware.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/middleware.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/presign_middleware.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/presign_middleware.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/presign_middleware.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/presign_middleware.go
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/v4a.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/v4a.go
similarity index 96%
rename from vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/v4a.go
rename to vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/v4a.go
index 005d876..f1f6ecc 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/v4a.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/v4a.go
@@ -1,5 +1,3 @@
-// TODO(GOSDK-1220): This signer has removed the conceptual knowledge of UNSIGNED-PAYLOAD and X-Amz-Content-Sha256
-
package v4a
import (
@@ -22,8 +20,8 @@ import (
"strings"
"time"
- signerCrypto "github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/crypto"
- v4Internal "github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a/internal/v4"
+ signerCrypto "github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto"
+ v4Internal "github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4"
"github.com/aws/smithy-go/encoding/httpbinding"
"github.com/aws/smithy-go/logging"
)
@@ -440,7 +438,15 @@ func (s *httpSigner) buildCanonicalHeaders(host string, rule v4Internal.Rule, he
} else {
canonicalHeaders.WriteString(headers[i])
canonicalHeaders.WriteRune(colon)
- canonicalHeaders.WriteString(strings.Join(signed[headers[i]], ","))
+ // Trim out leading, trailing, and dedup inner spaces from signed header values.
+ values := signed[headers[i]]
+ for j, v := range values {
+ cleanedValue := strings.TrimSpace(v4Internal.StripExcessSpaces(v))
+ canonicalHeaders.WriteString(cleanedValue)
+ if j < len(values)-1 {
+ canonicalHeaders.WriteRune(',')
+ }
+ }
}
canonicalHeaders.WriteRune('\n')
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/local-mod-replace.sh b/vendor/github.com/aws/aws-sdk-go-v2/local-mod-replace.sh
index 8a2aea9..81a8361 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/local-mod-replace.sh
+++ b/vendor/github.com/aws/aws-sdk-go-v2/local-mod-replace.sh
@@ -1,4 +1,4 @@
-#1/usr/bin/env bash
+#!/usr/bin/env bash
PROJECT_DIR=""
SDK_SOURCE_DIR=$(cd `dirname $0` && pwd)
@@ -30,7 +30,7 @@ while getopts "hs:d:" options; do
done
if [ "$PROJECT_DIR" != "" ]; then
- cd $PROJECT_DIR || exit
+ cd "$PROJECT_DIR" || exit
fi
go mod graph | awk '{print $1}' | cut -d '@' -f 1 | sort | uniq | grep "github.com/aws/aws-sdk-go-v2" | while read x; do
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/modman.toml b/vendor/github.com/aws/aws-sdk-go-v2/modman.toml
index 9915328..a8f8781 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/modman.toml
+++ b/vendor/github.com/aws/aws-sdk-go-v2/modman.toml
@@ -1,14 +1,25 @@
[dependencies]
- "github.com/aws/smithy-go" = "v1.9.0"
- "github.com/google/go-cmp" = "v0.5.6"
+ "github.com/aws/aws-sdk-go" = "v1.44.28"
+ "github.com/aws/smithy-go" = "v1.11.3"
+ "github.com/google/go-cmp" = "v0.5.8"
"github.com/jmespath/go-jmespath" = "v0.4.0"
+ "golang.org/x/net" = "v0.0.0-20220127200216-cd36cc0744dd"
[modules]
[modules."."]
metadata_package = "aws"
+ [modules.codegen]
+ no_tag = true
+
+ [modules."example/service/dynamodb/createTable"]
+ no_tag = true
+
+ [modules."example/service/dynamodb/scanItems"]
+ no_tag = true
+
[modules."example/service/s3/listObjects"]
no_tag = true
@@ -18,6 +29,9 @@
[modules."feature/ec2/imds/internal/configtesting"]
no_tag = true
+ [modules."internal/codegen"]
+ no_tag = true
+
[modules."internal/configsources/configtesting"]
no_tag = true
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/CHANGELOG.md
index deb3783..6ebd41d 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/CHANGELOG.md
@@ -1,3 +1,27 @@
+# v1.9.2 (2022-06-07)
+
+* No change notes available for this release.
+
+# v1.9.1 (2022-03-24)
+
+* No change notes available for this release.
+
+# v1.9.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+
+# v1.8.0 (2022-02-24)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+
+# v1.7.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+
+# v1.6.0 (2022-01-07)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+
# v1.5.0 (2021-11-06)
* **Feature**: Updated `github.com/aws/smithy-go` to latest version
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/go_module_metadata.go
index 1b54f6e..4db9310 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/go_module_metadata.go
@@ -3,4 +3,4 @@
package acceptencoding
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.5.0"
+const goModuleVersion = "1.9.2"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md
new file mode 100644
index 0000000..3162c27
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md
@@ -0,0 +1,40 @@
+# v1.1.7 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.6 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.5 (2022-04-27)
+
+* **Bug Fix**: Fixes a bug that could cause the SigV4 payload hash to be incorrectly encoded, leading to signing errors.
+
+# v1.1.4 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.3 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.2 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.1 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.1.0 (2022-03-08)
+
+* **Feature**: Updates the SDK's checksum validation logic to require opt-in to output response payload validation. The SDK was always preforming output response payload checksum validation, not respecting the output validation model option. Fixes [#1606](https://github.com/aws/aws-sdk-go-v2/issues/1606)
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.0.0 (2022-02-24)
+
+* **Release**: New module for computing checksums
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/LICENSE.txt b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/LICENSE.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/algorithms.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/algorithms.go
new file mode 100644
index 0000000..a17041c
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/algorithms.go
@@ -0,0 +1,323 @@
+package checksum
+
+import (
+ "crypto/md5"
+ "crypto/sha1"
+ "crypto/sha256"
+ "encoding/base64"
+ "encoding/hex"
+ "fmt"
+ "hash"
+ "hash/crc32"
+ "io"
+ "strings"
+ "sync"
+)
+
+// Algorithm represents the checksum algorithms supported
+type Algorithm string
+
+// Enumeration values for supported checksum Algorithms.
+const (
+ // AlgorithmCRC32C represents CRC32C hash algorithm
+ AlgorithmCRC32C Algorithm = "CRC32C"
+
+ // AlgorithmCRC32 represents CRC32 hash algorithm
+ AlgorithmCRC32 Algorithm = "CRC32"
+
+ // AlgorithmSHA1 represents SHA1 hash algorithm
+ AlgorithmSHA1 Algorithm = "SHA1"
+
+ // AlgorithmSHA256 represents SHA256 hash algorithm
+ AlgorithmSHA256 Algorithm = "SHA256"
+)
+
+var supportedAlgorithms = []Algorithm{
+ AlgorithmCRC32C,
+ AlgorithmCRC32,
+ AlgorithmSHA1,
+ AlgorithmSHA256,
+}
+
+func (a Algorithm) String() string { return string(a) }
+
+// ParseAlgorithm attempts to parse the provided value into a checksum
+// algorithm, matching without case. Returns the algorithm matched, or an error
+// if the algorithm wasn't matched.
+func ParseAlgorithm(v string) (Algorithm, error) {
+ for _, a := range supportedAlgorithms {
+ if strings.EqualFold(string(a), v) {
+ return a, nil
+ }
+ }
+ return "", fmt.Errorf("unknown checksum algorithm, %v", v)
+}
+
+// FilterSupportedAlgorithms filters the set of algorithms, returning a slice
+// of algorithms that are supported.
+func FilterSupportedAlgorithms(vs []string) []Algorithm {
+ found := map[Algorithm]struct{}{}
+
+ supported := make([]Algorithm, 0, len(supportedAlgorithms))
+ for _, v := range vs {
+ for _, a := range supportedAlgorithms {
+ // Only consider algorithms that are supported
+ if !strings.EqualFold(v, string(a)) {
+ continue
+ }
+ // Ignore duplicate algorithms in list.
+ if _, ok := found[a]; ok {
+ continue
+ }
+
+ supported = append(supported, a)
+ found[a] = struct{}{}
+ }
+ }
+ return supported
+}
+
+// NewAlgorithmHash returns a hash.Hash for the checksum algorithm. Error is
+// returned if the algorithm is unknown.
+func NewAlgorithmHash(v Algorithm) (hash.Hash, error) {
+ switch v {
+ case AlgorithmSHA1:
+ return sha1.New(), nil
+ case AlgorithmSHA256:
+ return sha256.New(), nil
+ case AlgorithmCRC32:
+ return crc32.NewIEEE(), nil
+ case AlgorithmCRC32C:
+ return crc32.New(crc32.MakeTable(crc32.Castagnoli)), nil
+ default:
+ return nil, fmt.Errorf("unknown checksum algorithm, %v", v)
+ }
+}
+
+// AlgorithmChecksumLength returns the length of the algorithm's checksum in
+// bytes. If the algorithm is not known, an error is returned.
+func AlgorithmChecksumLength(v Algorithm) (int, error) {
+ switch v {
+ case AlgorithmSHA1:
+ return sha1.Size, nil
+ case AlgorithmSHA256:
+ return sha256.Size, nil
+ case AlgorithmCRC32:
+ return crc32.Size, nil
+ case AlgorithmCRC32C:
+ return crc32.Size, nil
+ default:
+ return 0, fmt.Errorf("unknown checksum algorithm, %v", v)
+ }
+}
+
+const awsChecksumHeaderPrefix = "x-amz-checksum-"
+
+// AlgorithmHTTPHeader returns the HTTP header for the algorithm's hash.
+func AlgorithmHTTPHeader(v Algorithm) string {
+ return awsChecksumHeaderPrefix + strings.ToLower(string(v))
+}
+
+// base64EncodeHashSum computes base64 encoded checksum of a given running
+// hash. The running hash must already have content written to it. Returns the
+// byte slice of checksum and an error
+func base64EncodeHashSum(h hash.Hash) []byte {
+ sum := h.Sum(nil)
+ sum64 := make([]byte, base64.StdEncoding.EncodedLen(len(sum)))
+ base64.StdEncoding.Encode(sum64, sum)
+ return sum64
+}
+
+// hexEncodeHashSum computes hex encoded checksum of a given running hash. The
+// running hash must already have content written to it. Returns the byte slice
+// of checksum and an error
+func hexEncodeHashSum(h hash.Hash) []byte {
+ sum := h.Sum(nil)
+ sumHex := make([]byte, hex.EncodedLen(len(sum)))
+ hex.Encode(sumHex, sum)
+ return sumHex
+}
+
+// computeMD5Checksum computes base64 MD5 checksum of an io.Reader's contents.
+// Returns the byte slice of MD5 checksum and an error.
+func computeMD5Checksum(r io.Reader) ([]byte, error) {
+ h := md5.New()
+
+ // Copy errors may be assumed to be from the body.
+ if _, err := io.Copy(h, r); err != nil {
+ return nil, fmt.Errorf("failed compute MD5 hash of reader, %w", err)
+ }
+
+ // Encode the MD5 checksum in base64.
+ return base64EncodeHashSum(h), nil
+}
+
+// computeChecksumReader provides a reader wrapping an underlying io.Reader to
+// compute the checksum of the stream's bytes.
+type computeChecksumReader struct {
+ stream io.Reader
+ algorithm Algorithm
+ hasher hash.Hash
+ base64ChecksumLen int
+
+ mux sync.RWMutex
+ lockedChecksum string
+ lockedErr error
+}
+
+// newComputeChecksumReader returns a computeChecksumReader for the stream and
+// algorithm specified. Returns error if unable to create the reader, or
+// algorithm is unknown.
+func newComputeChecksumReader(stream io.Reader, algorithm Algorithm) (*computeChecksumReader, error) {
+ hasher, err := NewAlgorithmHash(algorithm)
+ if err != nil {
+ return nil, err
+ }
+
+ checksumLength, err := AlgorithmChecksumLength(algorithm)
+ if err != nil {
+ return nil, err
+ }
+
+ return &computeChecksumReader{
+ stream: io.TeeReader(stream, hasher),
+ algorithm: algorithm,
+ hasher: hasher,
+ base64ChecksumLen: base64.StdEncoding.EncodedLen(checksumLength),
+ }, nil
+}
+
+// Read wraps the underlying reader. When the underlying reader returns EOF,
+// the checksum of the reader will be computed, and can be retrieved with
+// ChecksumBase64String.
+func (r *computeChecksumReader) Read(p []byte) (int, error) {
+ n, err := r.stream.Read(p)
+ if err == nil {
+ return n, nil
+ } else if err != io.EOF {
+ r.mux.Lock()
+ defer r.mux.Unlock()
+
+ r.lockedErr = err
+ return n, err
+ }
+
+ b := base64EncodeHashSum(r.hasher)
+
+ r.mux.Lock()
+ defer r.mux.Unlock()
+
+ r.lockedChecksum = string(b)
+
+ return n, err
+}
+
+func (r *computeChecksumReader) Algorithm() Algorithm {
+ return r.algorithm
+}
+
+// Base64ChecksumLength returns the base64 encoded length of the checksum for
+// algorithm.
+func (r *computeChecksumReader) Base64ChecksumLength() int {
+ return r.base64ChecksumLen
+}
+
+// Base64Checksum returns the base64 checksum for the algorithm, or error if
+// the underlying reader returned a non-EOF error.
+//
+// Safe to be called concurrently, but will return an error until after the
+// underlying reader is returns EOF.
+func (r *computeChecksumReader) Base64Checksum() (string, error) {
+ r.mux.RLock()
+ defer r.mux.RUnlock()
+
+ if r.lockedErr != nil {
+ return "", r.lockedErr
+ }
+
+ if r.lockedChecksum == "" {
+ return "", fmt.Errorf(
+ "checksum not available yet, called before reader returns EOF",
+ )
+ }
+
+ return r.lockedChecksum, nil
+}
+
+// validateChecksumReader implements io.ReadCloser interface. The wrapper
+// performs checksum validation when the underlying reader has been fully read.
+type validateChecksumReader struct {
+ originalBody io.ReadCloser
+ body io.Reader
+ hasher hash.Hash
+ algorithm Algorithm
+ expectChecksum string
+}
+
+// newValidateChecksumReader returns a configured io.ReadCloser that performs
+// checksum validation when the underlying reader has been fully read.
+func newValidateChecksumReader(
+ body io.ReadCloser,
+ algorithm Algorithm,
+ expectChecksum string,
+) (*validateChecksumReader, error) {
+ hasher, err := NewAlgorithmHash(algorithm)
+ if err != nil {
+ return nil, err
+ }
+
+ return &validateChecksumReader{
+ originalBody: body,
+ body: io.TeeReader(body, hasher),
+ hasher: hasher,
+ algorithm: algorithm,
+ expectChecksum: expectChecksum,
+ }, nil
+}
+
+// Read attempts to read from the underlying stream while also updating the
+// running hash. If the underlying stream returns with an EOF error, the
+// checksum of the stream will be collected, and compared against the expected
+// checksum. If the checksums do not match, an error will be returned.
+//
+// If a non-EOF error occurs when reading the underlying stream, that error
+// will be returned and the checksum for the stream will be discarded.
+func (c *validateChecksumReader) Read(p []byte) (n int, err error) {
+ n, err = c.body.Read(p)
+ if err == io.EOF {
+ if checksumErr := c.validateChecksum(); checksumErr != nil {
+ return n, checksumErr
+ }
+ }
+
+ return n, err
+}
+
+// Close closes the underlying reader, returning any error that occurred in the
+// underlying reader.
+func (c *validateChecksumReader) Close() (err error) {
+ return c.originalBody.Close()
+}
+
+func (c *validateChecksumReader) validateChecksum() error {
+ // Compute base64 encoded checksum hash of the payload's read bytes.
+ v := base64EncodeHashSum(c.hasher)
+ if e, a := c.expectChecksum, string(v); !strings.EqualFold(e, a) {
+ return validationError{
+ Algorithm: c.algorithm, Expect: e, Actual: a,
+ }
+ }
+
+ return nil
+}
+
+type validationError struct {
+ Algorithm Algorithm
+ Expect string
+ Actual string
+}
+
+func (v validationError) Error() string {
+ return fmt.Sprintf("checksum did not match: algorithm %v, expect %v, actual %v",
+ v.Algorithm, v.Expect, v.Actual)
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/aws_chunked_encoding.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/aws_chunked_encoding.go
new file mode 100644
index 0000000..e8b5c3f
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/aws_chunked_encoding.go
@@ -0,0 +1,389 @@
+package checksum
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "strconv"
+ "strings"
+)
+
+const (
+ crlf = "\r\n"
+
+ // https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-streaming.html
+ defaultChunkLength = 1024 * 64
+
+ awsTrailerHeaderName = "x-amz-trailer"
+ decodedContentLengthHeaderName = "x-amz-decoded-content-length"
+
+ contentEncodingHeaderName = "content-encoding"
+ awsChunkedContentEncodingHeaderValue = "aws-chunked"
+
+ trailerKeyValueSeparator = ":"
+)
+
+var (
+ crlfBytes = []byte(crlf)
+ finalChunkBytes = []byte("0" + crlf)
+)
+
+type awsChunkedEncodingOptions struct {
+ // The total size of the stream. For unsigned encoding this implies that
+ // there will only be a single chunk containing the underlying payload,
+ // unless ChunkLength is also specified.
+ StreamLength int64
+
+ // Set of trailer key:value pairs that will be appended to the end of the
+ // payload after the end chunk has been written.
+ Trailers map[string]awsChunkedTrailerValue
+
+ // The maximum size of each chunk to be sent. Default value of -1, signals
+ // that optimal chunk length will be used automatically. ChunkSize must be
+ // at least 8KB.
+ //
+ // If ChunkLength and StreamLength are both specified, the stream will be
+ // broken up into ChunkLength chunks. The encoded length of the aws-chunked
+ // encoding can still be determined as long as all trailers, if any, have a
+ // fixed length.
+ ChunkLength int
+}
+
+type awsChunkedTrailerValue struct {
+ // Function to retrieve the value of the trailer. Will only be called after
+ // the underlying stream returns EOF error.
+ Get func() (string, error)
+
+ // If the length of the value can be pre-determined, and is constant
+ // specify the length. A value of -1 means the length is unknown, or
+ // cannot be pre-determined.
+ Length int
+}
+
+// awsChunkedEncoding provides a reader that wraps the payload such that
+// payload is read as a single aws-chunk payload. This reader can only be used
+// if the content length of payload is known. Content-Length is used as size of
+// the single payload chunk. The final chunk and trailing checksum is appended
+// at the end.
+//
+// https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-streaming.html#sigv4-chunked-body-definition
+//
+// Here is the aws-chunked payload stream as read from the awsChunkedEncoding
+// if original request stream is "Hello world", and checksum hash used is SHA256
+//
+// \r\n
+// Hello world\r\n
+// 0\r\n
+// x-amz-checksum-sha256:ZOyIygCyaOW6GjVnihtTFtIS9PNmskdyMlNKiuyjfzw=\r\n
+// \r\n
+type awsChunkedEncoding struct {
+ options awsChunkedEncodingOptions
+
+ encodedStream io.Reader
+ trailerEncodedLength int
+}
+
+// newUnsignedAWSChunkedEncoding returns a new awsChunkedEncoding configured
+// for unsigned aws-chunked content encoding. Any additional trailers that need
+// to be appended after the end chunk must be included as via Trailer
+// callbacks.
+func newUnsignedAWSChunkedEncoding(
+ stream io.Reader,
+ optFns ...func(*awsChunkedEncodingOptions),
+) *awsChunkedEncoding {
+ options := awsChunkedEncodingOptions{
+ Trailers: map[string]awsChunkedTrailerValue{},
+ StreamLength: -1,
+ ChunkLength: -1,
+ }
+ for _, fn := range optFns {
+ fn(&options)
+ }
+
+ var chunkReader io.Reader
+ if options.ChunkLength != -1 || options.StreamLength == -1 {
+ if options.ChunkLength == -1 {
+ options.ChunkLength = defaultChunkLength
+ }
+ chunkReader = newBufferedAWSChunkReader(stream, options.ChunkLength)
+ } else {
+ chunkReader = newUnsignedChunkReader(stream, options.StreamLength)
+ }
+
+ trailerReader := newAWSChunkedTrailerReader(options.Trailers)
+
+ return &awsChunkedEncoding{
+ options: options,
+ encodedStream: io.MultiReader(chunkReader,
+ trailerReader,
+ bytes.NewBuffer(crlfBytes),
+ ),
+ trailerEncodedLength: trailerReader.EncodedLength(),
+ }
+}
+
+// EncodedLength returns the final length of the aws-chunked content encoded
+// stream if it can be determined without reading the underlying stream or lazy
+// header values, otherwise -1 is returned.
+func (e *awsChunkedEncoding) EncodedLength() int64 {
+ var length int64
+ if e.options.StreamLength == -1 || e.trailerEncodedLength == -1 {
+ return -1
+ }
+
+ if e.options.StreamLength != 0 {
+ // If the stream length is known, and there is no chunk length specified,
+ // only a single chunk will be used. Otherwise the stream length needs to
+ // include the multiple chunk padding content.
+ if e.options.ChunkLength == -1 {
+ length += getUnsignedChunkBytesLength(e.options.StreamLength)
+
+ } else {
+ // Compute chunk header and payload length
+ numChunks := e.options.StreamLength / int64(e.options.ChunkLength)
+ length += numChunks * getUnsignedChunkBytesLength(int64(e.options.ChunkLength))
+ if remainder := e.options.StreamLength % int64(e.options.ChunkLength); remainder != 0 {
+ length += getUnsignedChunkBytesLength(remainder)
+ }
+ }
+ }
+
+ // End chunk
+ length += int64(len(finalChunkBytes))
+
+ // Trailers
+ length += int64(e.trailerEncodedLength)
+
+ // Encoding terminator
+ length += int64(len(crlf))
+
+ return length
+}
+
+func getUnsignedChunkBytesLength(payloadLength int64) int64 {
+ payloadLengthStr := strconv.FormatInt(payloadLength, 16)
+ return int64(len(payloadLengthStr)) + int64(len(crlf)) + payloadLength + int64(len(crlf))
+}
+
+// HTTPHeaders returns the set of headers that must be included the request for
+// aws-chunked to work. This includes the content-encoding: aws-chunked header.
+//
+// If there are multiple layered content encoding, the aws-chunked encoding
+// must be appended to the previous layers the stream's encoding. The best way
+// to do this is to append all header values returned to the HTTP request's set
+// of headers.
+func (e *awsChunkedEncoding) HTTPHeaders() map[string][]string {
+ headers := map[string][]string{
+ contentEncodingHeaderName: {
+ awsChunkedContentEncodingHeaderValue,
+ },
+ }
+
+ if len(e.options.Trailers) != 0 {
+ trailers := make([]string, 0, len(e.options.Trailers))
+ for name := range e.options.Trailers {
+ trailers = append(trailers, strings.ToLower(name))
+ }
+ headers[awsTrailerHeaderName] = trailers
+ }
+
+ return headers
+}
+
+func (e *awsChunkedEncoding) Read(b []byte) (n int, err error) {
+ return e.encodedStream.Read(b)
+}
+
+// awsChunkedTrailerReader provides a lazy reader for reading of aws-chunked
+// content encoded trailers. The trailer values will not be retrieved until the
+// reader is read from.
+type awsChunkedTrailerReader struct {
+ reader *bytes.Buffer
+ trailers map[string]awsChunkedTrailerValue
+ trailerEncodedLength int
+}
+
+// newAWSChunkedTrailerReader returns an initialized awsChunkedTrailerReader to
+// lazy reading aws-chunk content encoded trailers.
+func newAWSChunkedTrailerReader(trailers map[string]awsChunkedTrailerValue) *awsChunkedTrailerReader {
+ return &awsChunkedTrailerReader{
+ trailers: trailers,
+ trailerEncodedLength: trailerEncodedLength(trailers),
+ }
+}
+
+func trailerEncodedLength(trailers map[string]awsChunkedTrailerValue) (length int) {
+ for name, trailer := range trailers {
+ length += len(name) + len(trailerKeyValueSeparator)
+ l := trailer.Length
+ if l == -1 {
+ return -1
+ }
+ length += l + len(crlf)
+ }
+
+ return length
+}
+
+// EncodedLength returns the length of the encoded trailers if the length could
+// be determined without retrieving the header values. Returns -1 if length is
+// unknown.
+func (r *awsChunkedTrailerReader) EncodedLength() (length int) {
+ return r.trailerEncodedLength
+}
+
+// Read populates the passed in byte slice with bytes from the encoded
+// trailers. Will lazy read header values first time Read is called.
+func (r *awsChunkedTrailerReader) Read(p []byte) (int, error) {
+ if r.trailerEncodedLength == 0 {
+ return 0, io.EOF
+ }
+
+ if r.reader == nil {
+ trailerLen := r.trailerEncodedLength
+ if r.trailerEncodedLength == -1 {
+ trailerLen = 0
+ }
+ r.reader = bytes.NewBuffer(make([]byte, 0, trailerLen))
+ for name, trailer := range r.trailers {
+ r.reader.WriteString(name)
+ r.reader.WriteString(trailerKeyValueSeparator)
+ v, err := trailer.Get()
+ if err != nil {
+ return 0, fmt.Errorf("failed to get trailer value, %w", err)
+ }
+ r.reader.WriteString(v)
+ r.reader.WriteString(crlf)
+ }
+ }
+
+ return r.reader.Read(p)
+}
+
+// newUnsignedChunkReader returns an io.Reader encoding the underlying reader
+// as unsigned aws-chunked chunks. The returned reader will also include the
+// end chunk, but not the aws-chunked final `crlf` segment so trailers can be
+// added.
+//
+// If the payload size is -1 for unknown length the content will be buffered in
+// defaultChunkLength chunks before wrapped in aws-chunked chunk encoding.
+func newUnsignedChunkReader(reader io.Reader, payloadSize int64) io.Reader {
+ if payloadSize == -1 {
+ return newBufferedAWSChunkReader(reader, defaultChunkLength)
+ }
+
+ var endChunk bytes.Buffer
+ if payloadSize == 0 {
+ endChunk.Write(finalChunkBytes)
+ return &endChunk
+ }
+
+ endChunk.WriteString(crlf)
+ endChunk.Write(finalChunkBytes)
+
+ var header bytes.Buffer
+ header.WriteString(strconv.FormatInt(payloadSize, 16))
+ header.WriteString(crlf)
+ return io.MultiReader(
+ &header,
+ reader,
+ &endChunk,
+ )
+}
+
+// Provides a buffered aws-chunked chunk encoder of an underlying io.Reader.
+// Will include end chunk, but not the aws-chunked final `crlf` segment so
+// trailers can be added.
+//
+// Note does not implement support for chunk extensions, e.g. chunk signing.
+type bufferedAWSChunkReader struct {
+ reader io.Reader
+ chunkSize int
+ chunkSizeStr string
+
+ headerBuffer *bytes.Buffer
+ chunkBuffer *bytes.Buffer
+
+ multiReader io.Reader
+ multiReaderLen int
+ endChunkDone bool
+}
+
+// newBufferedAWSChunkReader returns an bufferedAWSChunkReader for reading
+// aws-chunked encoded chunks.
+func newBufferedAWSChunkReader(reader io.Reader, chunkSize int) *bufferedAWSChunkReader {
+ return &bufferedAWSChunkReader{
+ reader: reader,
+ chunkSize: chunkSize,
+ chunkSizeStr: strconv.FormatInt(int64(chunkSize), 16),
+
+ headerBuffer: bytes.NewBuffer(make([]byte, 0, 64)),
+ chunkBuffer: bytes.NewBuffer(make([]byte, 0, chunkSize+len(crlf))),
+ }
+}
+
+// Read attempts to read from the underlying io.Reader writing aws-chunked
+// chunk encoded bytes to p. When the underlying io.Reader has been completed
+// read the end chunk will be available. Once the end chunk is read, the reader
+// will return EOF.
+func (r *bufferedAWSChunkReader) Read(p []byte) (n int, err error) {
+ if r.multiReaderLen == 0 && r.endChunkDone {
+ return 0, io.EOF
+ }
+ if r.multiReader == nil || r.multiReaderLen == 0 {
+ r.multiReader, r.multiReaderLen, err = r.newMultiReader()
+ if err != nil {
+ return 0, err
+ }
+ }
+
+ n, err = r.multiReader.Read(p)
+ r.multiReaderLen -= n
+
+ if err == io.EOF && !r.endChunkDone {
+ // Edge case handling when the multi-reader has been completely read,
+ // and returned an EOF, make sure that EOF only gets returned if the
+ // end chunk was included in the multi-reader. Otherwise, the next call
+ // to read will initialize the next chunk's multi-reader.
+ err = nil
+ }
+ return n, err
+}
+
+// newMultiReader returns a new io.Reader for wrapping the next chunk. Will
+// return an error if the underlying reader can not be read from. Will never
+// return io.EOF.
+func (r *bufferedAWSChunkReader) newMultiReader() (io.Reader, int, error) {
+ // io.Copy eats the io.EOF returned by io.LimitReader. Any error that
+ // occurs here is due to an actual read error.
+ n, err := io.Copy(r.chunkBuffer, io.LimitReader(r.reader, int64(r.chunkSize)))
+ if err != nil {
+ return nil, 0, err
+ }
+ if n == 0 {
+ // Early exit writing out only the end chunk. This does not include
+ // aws-chunk's final `crlf` so that trailers can still be added by
+ // upstream reader.
+ r.headerBuffer.Reset()
+ r.headerBuffer.WriteString("0")
+ r.headerBuffer.WriteString(crlf)
+ r.endChunkDone = true
+
+ return r.headerBuffer, r.headerBuffer.Len(), nil
+ }
+ r.chunkBuffer.WriteString(crlf)
+
+ chunkSizeStr := r.chunkSizeStr
+ if int(n) != r.chunkSize {
+ chunkSizeStr = strconv.FormatInt(n, 16)
+ }
+
+ r.headerBuffer.Reset()
+ r.headerBuffer.WriteString(chunkSizeStr)
+ r.headerBuffer.WriteString(crlf)
+
+ return io.MultiReader(
+ r.headerBuffer,
+ r.chunkBuffer,
+ ), r.headerBuffer.Len() + r.chunkBuffer.Len(), nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go
new file mode 100644
index 0000000..5e5f48e
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go
@@ -0,0 +1,6 @@
+// Code generated by internal/repotools/cmd/updatemodulemeta DO NOT EDIT.
+
+package checksum
+
+// goModuleVersion is the tagged release for this module
+const goModuleVersion = "1.1.7"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_add.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_add.go
new file mode 100644
index 0000000..3e17d22
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_add.go
@@ -0,0 +1,185 @@
+package checksum
+
+import (
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+)
+
+// InputMiddlewareOptions provides the options for the request
+// checksum middleware setup.
+type InputMiddlewareOptions struct {
+ // GetAlgorithm is a function to get the checksum algorithm of the
+ // input payload from the input parameters.
+ //
+ // Given the input parameter value, the function must return the algorithm
+ // and true, or false if no algorithm is specified.
+ GetAlgorithm func(interface{}) (string, bool)
+
+ // Forces the middleware to compute the input payload's checksum. The
+ // request will fail if the algorithm is not specified or unable to compute
+ // the checksum.
+ RequireChecksum bool
+
+ // Enables support for wrapping the serialized input payload with a
+ // content-encoding: aws-check wrapper, and including a trailer for the
+ // algorithm's checksum value.
+ //
+ // The checksum will not be computed, nor added as trailing checksum, if
+ // the Algorithm's header is already set on the request.
+ EnableTrailingChecksum bool
+
+ // Enables support for computing the SHA256 checksum of input payloads
+ // along with the algorithm specified checksum. Prevents downstream
+ // middleware handlers (computePayloadSHA256) re-reading the payload.
+ //
+ // The SHA256 payload checksum will only be used for computed for requests
+ // that are not TLS, or do not enable trailing checksums.
+ //
+ // The SHA256 payload hash will not be computed, if the Algorithm's header
+ // is already set on the request.
+ EnableComputeSHA256PayloadHash bool
+
+ // Enables support for setting the aws-chunked decoded content length
+ // header for the decoded length of the underlying stream. Will only be set
+ // when used with trailing checksums, and aws-chunked content-encoding.
+ EnableDecodedContentLengthHeader bool
+}
+
+// AddInputMiddleware adds the middleware for performing checksum computing
+// of request payloads, and checksum validation of response payloads.
+func AddInputMiddleware(stack *middleware.Stack, options InputMiddlewareOptions) (err error) {
+ // TODO ensure this works correctly with presigned URLs
+
+ // Middleware stack:
+ // * (OK)(Initialize) --none--
+ // * (OK)(Serialize) EndpointResolver
+ // * (OK)(Build) ComputeContentLength
+ // * (AD)(Build) Header ComputeInputPayloadChecksum
+ // * SIGNED Payload - If HTTP && not support trailing checksum
+ // * UNSIGNED Payload - If HTTPS && not support trailing checksum
+ // * (RM)(Build) ContentChecksum - OK to remove
+ // * (OK)(Build) ComputePayloadHash
+ // * v4.dynamicPayloadSigningMiddleware
+ // * v4.computePayloadSHA256
+ // * v4.unsignedPayload
+ // (OK)(Build) Set computedPayloadHash header
+ // * (OK)(Finalize) Retry
+ // * (AD)(Finalize) Trailer ComputeInputPayloadChecksum,
+ // * Requires HTTPS && support trailing checksum
+ // * UNSIGNED Payload
+ // * Finalize run if HTTPS && support trailing checksum
+ // * (OK)(Finalize) Signing
+ // * (OK)(Deserialize) --none--
+
+ // Initial checksum configuration look up middleware
+ err = stack.Initialize.Add(&setupInputContext{
+ GetAlgorithm: options.GetAlgorithm,
+ }, middleware.Before)
+ if err != nil {
+ return err
+ }
+
+ stack.Build.Remove("ContentChecksum")
+
+ // Create the compute checksum middleware that will be added as both a
+ // build and finalize handler.
+ inputChecksum := &computeInputPayloadChecksum{
+ RequireChecksum: options.RequireChecksum,
+ EnableTrailingChecksum: options.EnableTrailingChecksum,
+ EnableComputePayloadHash: options.EnableComputeSHA256PayloadHash,
+ EnableDecodedContentLengthHeader: options.EnableDecodedContentLengthHeader,
+ }
+
+ // Insert header checksum after ComputeContentLength middleware, must also
+ // be before the computePayloadHash middleware handlers.
+ err = stack.Build.Insert(inputChecksum,
+ (*smithyhttp.ComputeContentLength)(nil).ID(),
+ middleware.After)
+ if err != nil {
+ return err
+ }
+
+ // If trailing checksum is not supported no need for finalize handler to be added.
+ if options.EnableTrailingChecksum {
+ err = stack.Finalize.Insert(inputChecksum, "Retry", middleware.After)
+ if err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+// RemoveInputMiddleware Removes the compute input payload checksum middleware
+// handlers from the stack.
+func RemoveInputMiddleware(stack *middleware.Stack) {
+ id := (*setupInputContext)(nil).ID()
+ stack.Initialize.Remove(id)
+
+ id = (*computeInputPayloadChecksum)(nil).ID()
+ stack.Build.Remove(id)
+ stack.Finalize.Remove(id)
+}
+
+// OutputMiddlewareOptions provides options for configuring output checksum
+// validation middleware.
+type OutputMiddlewareOptions struct {
+ // GetValidationMode is a function to get the checksum validation
+ // mode of the output payload from the input parameters.
+ //
+ // Given the input parameter value, the function must return the validation
+ // mode and true, or false if no mode is specified.
+ GetValidationMode func(interface{}) (string, bool)
+
+ // The set of checksum algorithms that should be used for response payload
+ // checksum validation. The algorithm(s) used will be a union of the
+ // output's returned algorithms and this set.
+ //
+ // Only the first algorithm in the union is currently used.
+ ValidationAlgorithms []string
+
+ // If set the middleware will ignore output multipart checksums. Otherwise
+ // an checksum format error will be returned by the middleware.
+ IgnoreMultipartValidation bool
+
+ // When set the middleware will log when output does not have checksum or
+ // algorithm to validate.
+ LogValidationSkipped bool
+
+ // When set the middleware will log when the output contains a multipart
+ // checksum that was, skipped and not validated.
+ LogMultipartValidationSkipped bool
+}
+
+// AddOutputMiddleware adds the middleware for validating response payload's
+// checksum.
+func AddOutputMiddleware(stack *middleware.Stack, options OutputMiddlewareOptions) error {
+ err := stack.Initialize.Add(&setupOutputContext{
+ GetValidationMode: options.GetValidationMode,
+ }, middleware.Before)
+ if err != nil {
+ return err
+ }
+
+ // Resolve a supported priority order list of algorithms to validate.
+ algorithms := FilterSupportedAlgorithms(options.ValidationAlgorithms)
+
+ m := &validateOutputPayloadChecksum{
+ Algorithms: algorithms,
+ IgnoreMultipartValidation: options.IgnoreMultipartValidation,
+ LogMultipartValidationSkipped: options.LogMultipartValidationSkipped,
+ LogValidationSkipped: options.LogValidationSkipped,
+ }
+
+ return stack.Deserialize.Add(m, middleware.After)
+}
+
+// RemoveOutputMiddleware Removes the compute input payload checksum middleware
+// handlers from the stack.
+func RemoveOutputMiddleware(stack *middleware.Stack) {
+ id := (*setupOutputContext)(nil).ID()
+ stack.Initialize.Remove(id)
+
+ id = (*validateOutputPayloadChecksum)(nil).ID()
+ stack.Deserialize.Remove(id)
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_compute_input_checksum.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_compute_input_checksum.go
new file mode 100644
index 0000000..b10d215
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_compute_input_checksum.go
@@ -0,0 +1,480 @@
+package checksum
+
+import (
+ "context"
+ "crypto/sha256"
+ "fmt"
+ "hash"
+ "io"
+ "strconv"
+ "strings"
+
+ v4 "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+)
+
+const (
+ contentMD5Header = "Content-Md5"
+ streamingUnsignedPayloadTrailerPayloadHash = "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
+)
+
+// computedInputChecksumsKey is the metadata key for recording the algorithm the
+// checksum was computed for and the checksum value.
+type computedInputChecksumsKey struct{}
+
+// GetComputedInputChecksums returns the map of checksum algorithm to their
+// computed value stored in the middleware Metadata. Returns false if no values
+// were stored in the Metadata.
+func GetComputedInputChecksums(m middleware.Metadata) (map[string]string, bool) {
+ vs, ok := m.Get(computedInputChecksumsKey{}).(map[string]string)
+ return vs, ok
+}
+
+// SetComputedInputChecksums stores the map of checksum algorithm to their
+// computed value in the middleware Metadata. Overwrites any values that
+// currently exist in the metadata.
+func SetComputedInputChecksums(m *middleware.Metadata, vs map[string]string) {
+ m.Set(computedInputChecksumsKey{}, vs)
+}
+
+// computeInputPayloadChecksum middleware computes payload checksum
+type computeInputPayloadChecksum struct {
+ // Enables support for wrapping the serialized input payload with a
+ // content-encoding: aws-check wrapper, and including a trailer for the
+ // algorithm's checksum value.
+ //
+ // The checksum will not be computed, nor added as trailing checksum, if
+ // the Algorithm's header is already set on the request.
+ EnableTrailingChecksum bool
+
+ // States that a checksum is required to be included for the operation. If
+ // Input does not specify a checksum, fallback to built in MD5 checksum is
+ // used.
+ //
+ // Replaces smithy-go's ContentChecksum middleware.
+ RequireChecksum bool
+
+ // Enables support for computing the SHA256 checksum of input payloads
+ // along with the algorithm specified checksum. Prevents downstream
+ // middleware handlers (computePayloadSHA256) re-reading the payload.
+ //
+ // The SHA256 payload hash will only be used for computed for requests
+ // that are not TLS, or do not enable trailing checksums.
+ //
+ // The SHA256 payload hash will not be computed, if the Algorithm's header
+ // is already set on the request.
+ EnableComputePayloadHash bool
+
+ // Enables support for setting the aws-chunked decoded content length
+ // header for the decoded length of the underlying stream. Will only be set
+ // when used with trailing checksums, and aws-chunked content-encoding.
+ EnableDecodedContentLengthHeader bool
+
+ buildHandlerRun bool
+ deferToFinalizeHandler bool
+}
+
+// ID provides the middleware's identifier.
+func (m *computeInputPayloadChecksum) ID() string {
+ return "AWSChecksum:ComputeInputPayloadChecksum"
+}
+
+type computeInputHeaderChecksumError struct {
+ Msg string
+ Err error
+}
+
+func (e computeInputHeaderChecksumError) Error() string {
+ const intro = "compute input header checksum failed"
+
+ if e.Err != nil {
+ return fmt.Sprintf("%s, %s, %v", intro, e.Msg, e.Err)
+ }
+
+ return fmt.Sprintf("%s, %s", intro, e.Msg)
+}
+func (e computeInputHeaderChecksumError) Unwrap() error { return e.Err }
+
+// HandleBuild handles computing the payload's checksum, in the following cases:
+// * Is HTTP, not HTTPS
+// * RequireChecksum is true, and no checksums were specified via the Input
+// * Trailing checksums are not supported
+//
+// The build handler must be inserted in the stack before ContentPayloadHash
+// and after ComputeContentLength.
+func (m *computeInputPayloadChecksum) HandleBuild(
+ ctx context.Context, in middleware.BuildInput, next middleware.BuildHandler,
+) (
+ out middleware.BuildOutput, metadata middleware.Metadata, err error,
+) {
+ m.buildHandlerRun = true
+
+ req, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, computeInputHeaderChecksumError{
+ Msg: fmt.Sprintf("unknown request type %T", req),
+ }
+ }
+
+ var algorithm Algorithm
+ var checksum string
+ defer func() {
+ if algorithm == "" || checksum == "" || err != nil {
+ return
+ }
+
+ // Record the checksum and algorithm that was computed
+ SetComputedInputChecksums(&metadata, map[string]string{
+ string(algorithm): checksum,
+ })
+ }()
+
+ // If no algorithm was specified, and the operation requires a checksum,
+ // fallback to the legacy content MD5 checksum.
+ algorithm, ok, err = getInputAlgorithm(ctx)
+ if err != nil {
+ return out, metadata, err
+ } else if !ok {
+ if m.RequireChecksum {
+ checksum, err = setMD5Checksum(ctx, req)
+ if err != nil {
+ return out, metadata, computeInputHeaderChecksumError{
+ Msg: "failed to compute stream's MD5 checksum",
+ Err: err,
+ }
+ }
+ algorithm = Algorithm("MD5")
+ }
+ return next.HandleBuild(ctx, in)
+ }
+
+ // If the checksum header is already set nothing to do.
+ checksumHeader := AlgorithmHTTPHeader(algorithm)
+ if checksum = req.Header.Get(checksumHeader); checksum != "" {
+ return next.HandleBuild(ctx, in)
+ }
+
+ computePayloadHash := m.EnableComputePayloadHash
+ if v := v4.GetPayloadHash(ctx); v != "" {
+ computePayloadHash = false
+ }
+
+ stream := req.GetStream()
+ streamLength, err := getRequestStreamLength(req)
+ if err != nil {
+ return out, metadata, computeInputHeaderChecksumError{
+ Msg: "failed to determine stream length",
+ Err: err,
+ }
+ }
+
+ // If trailing checksums are supported, the request is HTTPS, and the
+ // stream is not nil or empty, there is nothing to do in the build stage.
+ // The checksum will be added to the request as a trailing checksum in the
+ // finalize handler.
+ //
+ // Nil and empty streams will always be handled as a request header,
+ // regardless if the operation supports trailing checksums or not.
+ if strings.EqualFold(req.URL.Scheme, "https") {
+ if stream != nil && streamLength != 0 && m.EnableTrailingChecksum {
+ if m.EnableComputePayloadHash {
+ // payload hash is set as header in Build middleware handler,
+ // ContentSHA256Header.
+ ctx = v4.SetPayloadHash(ctx, streamingUnsignedPayloadTrailerPayloadHash)
+ }
+
+ m.deferToFinalizeHandler = true
+ return next.HandleBuild(ctx, in)
+ }
+
+ // If trailing checksums are not enabled but protocol is still HTTPS
+ // disabling computing the payload hash. Downstream middleware handler
+ // (ComputetPayloadHash) will set the payload hash to unsigned payload,
+ // if signing was used.
+ computePayloadHash = false
+ }
+
+ // Only seekable streams are supported for non-trailing checksums, because
+ // the stream needs to be rewound before the handler can continue.
+ if stream != nil && !req.IsStreamSeekable() {
+ return out, metadata, computeInputHeaderChecksumError{
+ Msg: "unseekable stream is not supported without TLS and trailing checksum",
+ }
+ }
+
+ var sha256Checksum string
+ checksum, sha256Checksum, err = computeStreamChecksum(
+ algorithm, stream, computePayloadHash)
+ if err != nil {
+ return out, metadata, computeInputHeaderChecksumError{
+ Msg: "failed to compute stream checksum",
+ Err: err,
+ }
+ }
+
+ if err := req.RewindStream(); err != nil {
+ return out, metadata, computeInputHeaderChecksumError{
+ Msg: "failed to rewind stream",
+ Err: err,
+ }
+ }
+
+ req.Header.Set(checksumHeader, checksum)
+
+ if computePayloadHash {
+ ctx = v4.SetPayloadHash(ctx, sha256Checksum)
+ }
+
+ return next.HandleBuild(ctx, in)
+}
+
+type computeInputTrailingChecksumError struct {
+ Msg string
+ Err error
+}
+
+func (e computeInputTrailingChecksumError) Error() string {
+ const intro = "compute input trailing checksum failed"
+
+ if e.Err != nil {
+ return fmt.Sprintf("%s, %s, %v", intro, e.Msg, e.Err)
+ }
+
+ return fmt.Sprintf("%s, %s", intro, e.Msg)
+}
+func (e computeInputTrailingChecksumError) Unwrap() error { return e.Err }
+
+// HandleFinalize handles computing the payload's checksum, in the following cases:
+// * Is HTTPS, not HTTP
+// * A checksum was specified via the Input
+// * Trailing checksums are supported.
+//
+// The finalize handler must be inserted in the stack before Signing, and after Retry.
+func (m *computeInputPayloadChecksum) HandleFinalize(
+ ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler,
+) (
+ out middleware.FinalizeOutput, metadata middleware.Metadata, err error,
+) {
+ if !m.deferToFinalizeHandler {
+ if !m.buildHandlerRun {
+ return out, metadata, computeInputTrailingChecksumError{
+ Msg: "build handler was removed without also removing finalize handler",
+ }
+ }
+ return next.HandleFinalize(ctx, in)
+ }
+
+ req, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, computeInputTrailingChecksumError{
+ Msg: fmt.Sprintf("unknown request type %T", req),
+ }
+ }
+
+ // Trailing checksums are only supported when TLS is enabled.
+ if !strings.EqualFold(req.URL.Scheme, "https") {
+ return out, metadata, computeInputTrailingChecksumError{
+ Msg: "HTTPS required",
+ }
+ }
+
+ // If no algorithm was specified, there is nothing to do.
+ algorithm, ok, err := getInputAlgorithm(ctx)
+ if err != nil {
+ return out, metadata, computeInputTrailingChecksumError{
+ Msg: "failed to get algorithm",
+ Err: err,
+ }
+ } else if !ok {
+ return out, metadata, computeInputTrailingChecksumError{
+ Msg: "no algorithm specified",
+ }
+ }
+
+ // If the checksum header is already set before finalize could run, there
+ // is nothing to do.
+ checksumHeader := AlgorithmHTTPHeader(algorithm)
+ if req.Header.Get(checksumHeader) != "" {
+ return next.HandleFinalize(ctx, in)
+ }
+
+ stream := req.GetStream()
+ streamLength, err := getRequestStreamLength(req)
+ if err != nil {
+ return out, metadata, computeInputTrailingChecksumError{
+ Msg: "failed to determine stream length",
+ Err: err,
+ }
+ }
+
+ if stream == nil || streamLength == 0 {
+ // Nil and empty streams are handled by the Build handler. They are not
+ // supported by the trailing checksums finalize handler. There is no
+ // benefit to sending them as trailers compared to headers.
+ return out, metadata, computeInputTrailingChecksumError{
+ Msg: "nil or empty streams are not supported",
+ }
+ }
+
+ checksumReader, err := newComputeChecksumReader(stream, algorithm)
+ if err != nil {
+ return out, metadata, computeInputTrailingChecksumError{
+ Msg: "failed to created checksum reader",
+ Err: err,
+ }
+ }
+
+ awsChunkedReader := newUnsignedAWSChunkedEncoding(checksumReader,
+ func(o *awsChunkedEncodingOptions) {
+ o.Trailers[AlgorithmHTTPHeader(checksumReader.Algorithm())] = awsChunkedTrailerValue{
+ Get: checksumReader.Base64Checksum,
+ Length: checksumReader.Base64ChecksumLength(),
+ }
+ o.StreamLength = streamLength
+ })
+
+ for key, values := range awsChunkedReader.HTTPHeaders() {
+ for _, value := range values {
+ req.Header.Add(key, value)
+ }
+ }
+
+ // Setting the stream on the request will create a copy. The content length
+ // is not updated until after the request is copied to prevent impacting
+ // upstream middleware.
+ req, err = req.SetStream(awsChunkedReader)
+ if err != nil {
+ return out, metadata, computeInputTrailingChecksumError{
+ Msg: "failed updating request to trailing checksum wrapped stream",
+ Err: err,
+ }
+ }
+ req.ContentLength = awsChunkedReader.EncodedLength()
+ in.Request = req
+
+ // Add decoded content length header if original stream's content length is known.
+ if streamLength != -1 && m.EnableDecodedContentLengthHeader {
+ req.Header.Set(decodedContentLengthHeaderName, strconv.FormatInt(streamLength, 10))
+ }
+
+ out, metadata, err = next.HandleFinalize(ctx, in)
+ if err == nil {
+ checksum, err := checksumReader.Base64Checksum()
+ if err != nil {
+ return out, metadata, fmt.Errorf("failed to get computed checksum, %w", err)
+ }
+
+ // Record the checksum and algorithm that was computed
+ SetComputedInputChecksums(&metadata, map[string]string{
+ string(algorithm): checksum,
+ })
+ }
+
+ return out, metadata, err
+}
+
+func getInputAlgorithm(ctx context.Context) (Algorithm, bool, error) {
+ ctxAlgorithm := getContextInputAlgorithm(ctx)
+ if ctxAlgorithm == "" {
+ return "", false, nil
+ }
+
+ algorithm, err := ParseAlgorithm(ctxAlgorithm)
+ if err != nil {
+ return "", false, fmt.Errorf(
+ "failed to parse algorithm, %w", err)
+ }
+
+ return algorithm, true, nil
+}
+
+func computeStreamChecksum(algorithm Algorithm, stream io.Reader, computePayloadHash bool) (
+ checksum string, sha256Checksum string, err error,
+) {
+ hasher, err := NewAlgorithmHash(algorithm)
+ if err != nil {
+ return "", "", fmt.Errorf(
+ "failed to get hasher for checksum algorithm, %w", err)
+ }
+
+ var sha256Hasher hash.Hash
+ var batchHasher io.Writer = hasher
+
+ // Compute payload hash for the protocol. To prevent another handler
+ // (computePayloadSHA256) re-reading body also compute the SHA256 for
+ // request signing. If configured checksum algorithm is SHA256, don't
+ // double wrap stream with another SHA256 hasher.
+ if computePayloadHash && algorithm != AlgorithmSHA256 {
+ sha256Hasher = sha256.New()
+ batchHasher = io.MultiWriter(hasher, sha256Hasher)
+ }
+
+ if stream != nil {
+ if _, err = io.Copy(batchHasher, stream); err != nil {
+ return "", "", fmt.Errorf(
+ "failed to read stream to compute hash, %w", err)
+ }
+ }
+
+ checksum = string(base64EncodeHashSum(hasher))
+ if computePayloadHash {
+ if algorithm != AlgorithmSHA256 {
+ sha256Checksum = string(hexEncodeHashSum(sha256Hasher))
+ } else {
+ sha256Checksum = string(hexEncodeHashSum(hasher))
+ }
+ }
+
+ return checksum, sha256Checksum, nil
+}
+
+func getRequestStreamLength(req *smithyhttp.Request) (int64, error) {
+ if v := req.ContentLength; v > 0 {
+ return v, nil
+ }
+
+ if length, ok, err := req.StreamLength(); err != nil {
+ return 0, fmt.Errorf("failed getting request stream's length, %w", err)
+ } else if ok {
+ return length, nil
+ }
+
+ return -1, nil
+}
+
+// setMD5Checksum computes the MD5 of the request payload and sets it to the
+// Content-MD5 header. Returning the MD5 base64 encoded string or error.
+//
+// If the MD5 is already set as the Content-MD5 header, that value will be
+// returned, and nothing else will be done.
+//
+// If the payload is empty, no MD5 will be computed. No error will be returned.
+// Empty payloads do not have an MD5 value.
+//
+// Replaces the smithy-go middleware for httpChecksum trait.
+func setMD5Checksum(ctx context.Context, req *smithyhttp.Request) (string, error) {
+ if v := req.Header.Get(contentMD5Header); len(v) != 0 {
+ return v, nil
+ }
+ stream := req.GetStream()
+ if stream == nil {
+ return "", nil
+ }
+
+ if !req.IsStreamSeekable() {
+ return "", fmt.Errorf(
+ "unseekable stream is not supported for computing md5 checksum")
+ }
+
+ v, err := computeMD5Checksum(stream)
+ if err != nil {
+ return "", err
+ }
+ if err := req.RewindStream(); err != nil {
+ return "", fmt.Errorf("failed to rewind stream after computing MD5 checksum, %w", err)
+ }
+ // set the 'Content-MD5' header
+ req.Header.Set(contentMD5Header, string(v))
+ return string(v), nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_setup_context.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_setup_context.go
new file mode 100644
index 0000000..f729525
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_setup_context.go
@@ -0,0 +1,117 @@
+package checksum
+
+import (
+ "context"
+
+ "github.com/aws/smithy-go/middleware"
+)
+
+// setupChecksumContext is the initial middleware that looks up the input
+// used to configure checksum behavior. This middleware must be executed before
+// input validation step or any other checksum middleware.
+type setupInputContext struct {
+ // GetAlgorithm is a function to get the checksum algorithm of the
+ // input payload from the input parameters.
+ //
+ // Given the input parameter value, the function must return the algorithm
+ // and true, or false if no algorithm is specified.
+ GetAlgorithm func(interface{}) (string, bool)
+}
+
+// ID for the middleware
+func (m *setupInputContext) ID() string {
+ return "AWSChecksum:SetupInputContext"
+}
+
+// HandleInitialize initialization middleware that setups up the checksum
+// context based on the input parameters provided in the stack.
+func (m *setupInputContext) HandleInitialize(
+ ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler,
+) (
+ out middleware.InitializeOutput, metadata middleware.Metadata, err error,
+) {
+ // Check if validation algorithm is specified.
+ if m.GetAlgorithm != nil {
+ // check is input resource has a checksum algorithm
+ algorithm, ok := m.GetAlgorithm(in.Parameters)
+ if ok && len(algorithm) != 0 {
+ ctx = setContextInputAlgorithm(ctx, algorithm)
+ }
+ }
+
+ return next.HandleInitialize(ctx, in)
+}
+
+// inputAlgorithmKey is the key set on context used to identify, retrieves the
+// request checksum algorithm if present on the context.
+type inputAlgorithmKey struct{}
+
+// setContextInputAlgorithm sets the request checksum algorithm on the context.
+//
+// Scoped to stack values.
+func setContextInputAlgorithm(ctx context.Context, value string) context.Context {
+ return middleware.WithStackValue(ctx, inputAlgorithmKey{}, value)
+}
+
+// getContextInputAlgorithm returns the checksum algorithm from the context if
+// one was specified. Empty string is returned if one is not specified.
+//
+// Scoped to stack values.
+func getContextInputAlgorithm(ctx context.Context) (v string) {
+ v, _ = middleware.GetStackValue(ctx, inputAlgorithmKey{}).(string)
+ return v
+}
+
+type setupOutputContext struct {
+ // GetValidationMode is a function to get the checksum validation
+ // mode of the output payload from the input parameters.
+ //
+ // Given the input parameter value, the function must return the validation
+ // mode and true, or false if no mode is specified.
+ GetValidationMode func(interface{}) (string, bool)
+}
+
+// ID for the middleware
+func (m *setupOutputContext) ID() string {
+ return "AWSChecksum:SetupOutputContext"
+}
+
+// HandleInitialize initialization middleware that setups up the checksum
+// context based on the input parameters provided in the stack.
+func (m *setupOutputContext) HandleInitialize(
+ ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler,
+) (
+ out middleware.InitializeOutput, metadata middleware.Metadata, err error,
+) {
+ // Check if validation mode is specified.
+ if m.GetValidationMode != nil {
+ // check is input resource has a checksum algorithm
+ mode, ok := m.GetValidationMode(in.Parameters)
+ if ok && len(mode) != 0 {
+ ctx = setContextOutputValidationMode(ctx, mode)
+ }
+ }
+
+ return next.HandleInitialize(ctx, in)
+}
+
+// outputValidationModeKey is the key set on context used to identify if
+// output checksum validation is enabled.
+type outputValidationModeKey struct{}
+
+// setContextOutputValidationMode sets the request checksum
+// algorithm on the context.
+//
+// Scoped to stack values.
+func setContextOutputValidationMode(ctx context.Context, value string) context.Context {
+ return middleware.WithStackValue(ctx, outputValidationModeKey{}, value)
+}
+
+// getContextOutputValidationMode returns response checksum validation state,
+// if one was specified. Empty string is returned if one is not specified.
+//
+// Scoped to stack values.
+func getContextOutputValidationMode(ctx context.Context) (v string) {
+ v, _ = middleware.GetStackValue(ctx, outputValidationModeKey{}).(string)
+ return v
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_validate_output.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_validate_output.go
new file mode 100644
index 0000000..9fde12d
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_validate_output.go
@@ -0,0 +1,131 @@
+package checksum
+
+import (
+ "context"
+ "fmt"
+ "strings"
+
+ "github.com/aws/smithy-go"
+ "github.com/aws/smithy-go/logging"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+)
+
+// outputValidationAlgorithmsUsedKey is the metadata key for indexing the algorithms
+// that were used, by the middleware's validation.
+type outputValidationAlgorithmsUsedKey struct{}
+
+// GetOutputValidationAlgorithmsUsed returns the checksum algorithms used
+// stored in the middleware Metadata. Returns false if no algorithms were
+// stored in the Metadata.
+func GetOutputValidationAlgorithmsUsed(m middleware.Metadata) ([]string, bool) {
+ vs, ok := m.Get(outputValidationAlgorithmsUsedKey{}).([]string)
+ return vs, ok
+}
+
+// SetOutputValidationAlgorithmsUsed stores the checksum algorithms used in the
+// middleware Metadata.
+func SetOutputValidationAlgorithmsUsed(m *middleware.Metadata, vs []string) {
+ m.Set(outputValidationAlgorithmsUsedKey{}, vs)
+}
+
+// validateOutputPayloadChecksum middleware computes payload checksum of the
+// received response and validates with checksum returned by the service.
+type validateOutputPayloadChecksum struct {
+ // Algorithms represents a priority-ordered list of valid checksum
+ // algorithm that should be validated when present in HTTP response
+ // headers.
+ Algorithms []Algorithm
+
+ // IgnoreMultipartValidation indicates multipart checksums ending with "-#"
+ // will be ignored.
+ IgnoreMultipartValidation bool
+
+ // When set the middleware will log when output does not have checksum or
+ // algorithm to validate.
+ LogValidationSkipped bool
+
+ // When set the middleware will log when the output contains a multipart
+ // checksum that was, skipped and not validated.
+ LogMultipartValidationSkipped bool
+}
+
+func (m *validateOutputPayloadChecksum) ID() string {
+ return "AWSChecksum:ValidateOutputPayloadChecksum"
+}
+
+// HandleDeserialize is a Deserialize middleware that wraps the HTTP response
+// body with an io.ReadCloser that will validate the its checksum.
+func (m *validateOutputPayloadChecksum) HandleDeserialize(
+ ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler,
+) (
+ out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
+) {
+ out, metadata, err = next.HandleDeserialize(ctx, in)
+ if err != nil {
+ return out, metadata, err
+ }
+
+ // If there is no validation mode specified nothing is supported.
+ if mode := getContextOutputValidationMode(ctx); mode != "ENABLED" {
+ return out, metadata, err
+ }
+
+ response, ok := out.RawResponse.(*smithyhttp.Response)
+ if !ok {
+ return out, metadata, &smithy.DeserializationError{
+ Err: fmt.Errorf("unknown transport type %T", out.RawResponse),
+ }
+ }
+
+ var expectedChecksum string
+ var algorithmToUse Algorithm
+ for _, algorithm := range m.Algorithms {
+ value := response.Header.Get(AlgorithmHTTPHeader(algorithm))
+ if len(value) == 0 {
+ continue
+ }
+
+ expectedChecksum = value
+ algorithmToUse = algorithm
+ }
+
+ // TODO this must validate the validation mode is set to enabled.
+
+ logger := middleware.GetLogger(ctx)
+
+ // Skip validation if no checksum algorithm or checksum is available.
+ if len(expectedChecksum) == 0 || len(algorithmToUse) == 0 {
+ if m.LogValidationSkipped {
+ // TODO this probably should have more information about the
+ // operation output that won't be validated.
+ logger.Logf(logging.Warn,
+ "Response has no supported checksum. Not validating response payload.")
+ }
+ return out, metadata, nil
+ }
+
+ // Ignore multipart validation
+ if m.IgnoreMultipartValidation && strings.Contains(expectedChecksum, "-") {
+ if m.LogMultipartValidationSkipped {
+ // TODO this probably should have more information about the
+ // operation output that won't be validated.
+ logger.Logf(logging.Warn, "Skipped validation of multipart checksum.")
+ }
+ return out, metadata, nil
+ }
+
+ body, err := newValidateChecksumReader(response.Body, algorithmToUse, expectedChecksum)
+ if err != nil {
+ return out, metadata, fmt.Errorf("failed to create checksum validation reader, %w", err)
+ }
+ response.Body = body
+
+ // Update the metadata to include the set of the checksum algorithms that
+ // will be validated.
+ SetOutputValidationAlgorithmsUsed(&metadata, []string{
+ string(algorithmToUse),
+ })
+
+ return out, metadata, nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md
index 6f961a2..15abe58 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md
@@ -1,3 +1,55 @@
+# v1.9.6 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.9.5 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.9.4 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.9.3 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.9.2 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.9.1 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.9.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.8.0 (2022-02-24)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.7.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.6.0 (2022-01-07)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.5.2 (2021-12-02)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.5.1 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v1.5.0 (2021-11-06)
* **Feature**: Updated `github.com/aws/smithy-go` to latest version
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go
index 372ba21..016b482 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go
@@ -3,4 +3,4 @@
package presignedurl
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.5.0"
+const goModuleVersion = "1.9.6"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md
index 29c90ed..1f7bf46 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md
@@ -1,3 +1,55 @@
+# v1.13.6 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.13.5 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.13.4 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.13.3 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.13.2 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.13.1 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.13.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.0 (2022-02-24)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.10.0 (2022-01-07)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.9.2 (2021-12-02)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.9.1 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v1.9.0 (2021-11-06)
* **Feature**: The SDK now supports configuration of FIPS and DualStack endpoints using environment variables, shared configuration, or programmatically.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go
index 57e953d..3f73133 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go
@@ -3,4 +3,4 @@
package s3shared
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.9.0"
+const goModuleVersion = "1.13.6"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md
index 39d0901..7366b55 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md
@@ -1,3 +1,94 @@
+# v1.26.11 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.26.10 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.26.9 (2022-05-06)
+
+* No change notes available for this release.
+
+# v1.26.8 (2022-05-03)
+
+* **Documentation**: Documentation only update for doc bug fixes for the S3 API docs.
+
+# v1.26.7 (2022-04-27)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.26.6 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.26.5 (2022-04-12)
+
+* **Bug Fix**: Fixes an issue that caused the unexported constructor function names for EventStream types to be swapped for the event reader and writer respectivly.
+
+# v1.26.4 (2022-04-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.26.3 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.26.2 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.26.1 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.26.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.25.0 (2022-02-24)
+
+* **Feature**: API client updated
+* **Feature**: Adds RetryMaxAttempts and RetryMod to API client Options. This allows the API clients' default Retryer to be configured from the shared configuration files or environment variables. Adding a new Retry mode of `Adaptive`. `Adaptive` retry mode is an experimental mode, adding client rate limiting when throttles reponses are received from an API. See [retry.AdaptiveMode](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws/retry#AdaptiveMode) for more details, and configuration options.
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Bug Fix**: Fixes the AWS Sigv4 signer to trim header value's whitespace when computing the canonical headers block of the string to sign.
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.24.1 (2022-01-28)
+
+* **Bug Fix**: Updates SDK API client deserialization to pre-allocate byte slice and string response payloads, [#1565](https://github.com/aws/aws-sdk-go-v2/pull/1565). Thanks to [Tyson Mote](https://github.com/tysonmote) for submitting this PR.
+
+# v1.24.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.23.0 (2022-01-07)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Documentation**: API client updated
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.22.0 (2021-12-21)
+
+* **Feature**: API Paginators now support specifying the initial starting token, and support stopping on empty string tokens.
+* **Feature**: Updated to latest service endpoints
+
+# v1.21.0 (2021-12-02)
+
+* **Feature**: API client updated
+* **Bug Fix**: Fixes a bug that prevented aws.EndpointResolverWithOptions from being used by the service client. ([#1514](https://github.com/aws/aws-sdk-go-v2/pull/1514))
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.20.0 (2021-11-30)
+
+* **Feature**: API client updated
+
+# v1.19.1 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v1.19.0 (2021-11-12)
* **Feature**: Waiters now have a `WaitForOutput` method, which can be used to retrieve the output of the successful wait operation. Thank you to [Andrew Haines](https://github.com/haines) for contributing this feature.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go
index 8764f4a..b17db2a 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go
@@ -6,22 +6,25 @@ import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/aws"
+ "github.com/aws/aws-sdk-go-v2/aws/defaults"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/retry"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http"
internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources"
+ "github.com/aws/aws-sdk-go-v2/internal/v4a"
acceptencodingcust "github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
presignedurlcust "github.com/aws/aws-sdk-go-v2/service/internal/presigned-url"
"github.com/aws/aws-sdk-go-v2/service/internal/s3shared"
s3sharedconfig "github.com/aws/aws-sdk-go-v2/service/internal/s3shared/config"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
- "github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a"
smithy "github.com/aws/smithy-go"
smithydocument "github.com/aws/smithy-go/document"
"github.com/aws/smithy-go/logging"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
+ "net"
"net/http"
"time"
)
@@ -43,6 +46,8 @@ func New(options Options, optFns ...func(*Options)) *Client {
resolveDefaultLogger(&options)
+ setResolvedDefaultsMode(&options)
+
resolveRetryer(&options)
resolveHTTPClient(&options)
@@ -78,6 +83,10 @@ type Options struct {
// The credentials object to use when signing requests.
Credentials aws.CredentialsProvider
+ // The configuration DefaultsMode that the SDK should use when constructing the
+ // clients initial default settings.
+ DefaultsMode aws.DefaultsMode
+
// Allows you to disable S3 Multi-Region access points feature.
DisableMultiRegionAccessPoints bool
@@ -96,10 +105,36 @@ type Options struct {
// The region to send requests to. (Required)
Region string
+ // RetryMaxAttempts specifies the maximum number attempts an API client will call
+ // an operation that fails with a retryable error. A value of 0 is ignored, and
+ // will not be used to configure the API client created default retryer, or modify
+ // per operation call's retry max attempts. When creating a new API Clients this
+ // member will only be used if the Retryer Options member is nil. This value will
+ // be ignored if Retryer is not nil. If specified in an operation call's functional
+ // options with a value that is different than the constructed client's Options,
+ // the Client's Retryer will be wrapped to use the operation's specific
+ // RetryMaxAttempts value.
+ RetryMaxAttempts int
+
+ // RetryMode specifies the retry mode the API client will be created with, if
+ // Retryer option is not also specified. When creating a new API Clients this
+ // member will only be used if the Retryer Options member is nil. This value will
+ // be ignored if Retryer is not nil. Currently does not support per operation call
+ // overrides, may in the future.
+ RetryMode aws.RetryMode
+
// Retryer guides how HTTP requests should be retried in case of recoverable
- // failures. When nil the API client will use a default retryer.
+ // failures. When nil the API client will use a default retryer. The kind of
+ // default retry created by the API client can be changed with the RetryMode
+ // option.
Retryer aws.Retryer
+ // The RuntimeEnvironment configuration, only populated if the DefaultsMode is set
+ // to DefaultsModeAuto and is initialized using config.LoadDefaultConfig. You
+ // should not populate this structure programmatically, or rely on the values here
+ // within your applications.
+ RuntimeEnvironment aws.RuntimeEnvironment
+
// Allows you to enable arn region support for the service.
UseARNRegion bool
@@ -126,6 +161,12 @@ type Options struct {
// Signature Version 4a (SigV4a) Signer
httpSignerV4a httpSignerV4a
+ // The initial DefaultsMode used when the client options were constructed. If the
+ // DefaultsMode was set to aws.DefaultsModeAuto this will store what the resolved
+ // value was at that point in time. Currently does not support per operation call
+ // overrides, may in the future.
+ resolvedDefaultsMode aws.DefaultsMode
+
// The HTTP client to invoke API calls with. Defaults to client's default HTTP
// implementation if nil.
HTTPClient HTTPClient
@@ -156,6 +197,7 @@ func (o Options) Copy() Options {
to := o
to.APIOptions = make([]func(*middleware.Stack) error, len(o.APIOptions))
copy(to.APIOptions, o.APIOptions)
+
return to
}
func (c *Client) invokeOperation(ctx context.Context, opID string, params interface{}, optFns []func(*Options), stackFns ...func(*middleware.Stack, Options) error) (result interface{}, metadata middleware.Metadata, err error) {
@@ -168,6 +210,8 @@ func (c *Client) invokeOperation(ctx context.Context, opID string, params interf
setSafeEventStreamClientLogMode(&options, opID)
+ finalizeRetryMaxAttemptOptions(&options, *c)
+
finalizeClientEndpointResolverOptions(&options)
resolveCredentialProvider(&options)
@@ -209,17 +253,36 @@ func addSetLoggerMiddleware(stack *middleware.Stack, o Options) error {
return middleware.AddSetLoggerMiddleware(stack, o.Logger)
}
+func setResolvedDefaultsMode(o *Options) {
+ if len(o.resolvedDefaultsMode) > 0 {
+ return
+ }
+
+ var mode aws.DefaultsMode
+ mode.SetFromString(string(o.DefaultsMode))
+
+ if mode == aws.DefaultsModeAuto {
+ mode = defaults.ResolveDefaultsModeAuto(o.Region, o.RuntimeEnvironment)
+ }
+
+ o.resolvedDefaultsMode = mode
+}
+
// NewFromConfig returns a new client from the provided config.
func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
opts := Options{
- Region: cfg.Region,
- HTTPClient: cfg.HTTPClient,
- Credentials: cfg.Credentials,
- APIOptions: cfg.APIOptions,
- Logger: cfg.Logger,
- ClientLogMode: cfg.ClientLogMode,
+ Region: cfg.Region,
+ DefaultsMode: cfg.DefaultsMode,
+ RuntimeEnvironment: cfg.RuntimeEnvironment,
+ HTTPClient: cfg.HTTPClient,
+ Credentials: cfg.Credentials,
+ APIOptions: cfg.APIOptions,
+ Logger: cfg.Logger,
+ ClientLogMode: cfg.ClientLogMode,
}
resolveAWSRetryerProvider(cfg, &opts)
+ resolveAWSRetryMaxAttempts(cfg, &opts)
+ resolveAWSRetryMode(cfg, &opts)
resolveAWSEndpointResolver(cfg, &opts)
resolveUseARNRegion(cfg, &opts)
resolveUseDualStackEndpoint(cfg, &opts)
@@ -228,17 +291,71 @@ func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
}
func resolveHTTPClient(o *Options) {
+ var buildable *awshttp.BuildableClient
+
if o.HTTPClient != nil {
- return
+ var ok bool
+ buildable, ok = o.HTTPClient.(*awshttp.BuildableClient)
+ if !ok {
+ return
+ }
+ } else {
+ buildable = awshttp.NewBuildableClient()
}
- o.HTTPClient = awshttp.NewBuildableClient()
+
+ modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode)
+ if err == nil {
+ buildable = buildable.WithDialerOptions(func(dialer *net.Dialer) {
+ if dialerTimeout, ok := modeConfig.GetConnectTimeout(); ok {
+ dialer.Timeout = dialerTimeout
+ }
+ })
+
+ buildable = buildable.WithTransportOptions(func(transport *http.Transport) {
+ if tlsHandshakeTimeout, ok := modeConfig.GetTLSNegotiationTimeout(); ok {
+ transport.TLSHandshakeTimeout = tlsHandshakeTimeout
+ }
+ })
+ }
+
+ o.HTTPClient = buildable
}
func resolveRetryer(o *Options) {
if o.Retryer != nil {
return
}
- o.Retryer = retry.NewStandard()
+
+ if len(o.RetryMode) == 0 {
+ modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode)
+ if err == nil {
+ o.RetryMode = modeConfig.RetryMode
+ }
+ }
+ if len(o.RetryMode) == 0 {
+ o.RetryMode = aws.RetryModeStandard
+ }
+
+ var standardOptions []func(*retry.StandardOptions)
+ if v := o.RetryMaxAttempts; v != 0 {
+ standardOptions = append(standardOptions, func(so *retry.StandardOptions) {
+ so.MaxAttempts = v
+ })
+ }
+
+ switch o.RetryMode {
+ case aws.RetryModeAdaptive:
+ var adaptiveOptions []func(*retry.AdaptiveModeOptions)
+ if len(standardOptions) != 0 {
+ adaptiveOptions = append(adaptiveOptions, func(ao *retry.AdaptiveModeOptions) {
+ ao.StandardOptions = append(ao.StandardOptions, standardOptions...)
+ })
+ }
+ o.Retryer = retry.NewAdaptiveMode(adaptiveOptions...)
+
+ default:
+ o.Retryer = retry.NewStandard(standardOptions...)
+ }
}
func resolveAWSRetryerProvider(cfg aws.Config, o *Options) {
@@ -248,8 +365,29 @@ func resolveAWSRetryerProvider(cfg aws.Config, o *Options) {
o.Retryer = cfg.Retryer()
}
+func resolveAWSRetryMode(cfg aws.Config, o *Options) {
+ if len(cfg.RetryMode) == 0 {
+ return
+ }
+ o.RetryMode = cfg.RetryMode
+}
+func resolveAWSRetryMaxAttempts(cfg aws.Config, o *Options) {
+ if cfg.RetryMaxAttempts == 0 {
+ return
+ }
+ o.RetryMaxAttempts = cfg.RetryMaxAttempts
+}
+
+func finalizeRetryMaxAttemptOptions(o *Options, client Client) {
+ if v := o.RetryMaxAttempts; v == 0 || v == client.options.RetryMaxAttempts {
+ return
+ }
+
+ o.Retryer = retry.AddWithMaxAttempts(o.Retryer, o.RetryMaxAttempts)
+}
+
func resolveAWSEndpointResolver(cfg aws.Config, o *Options) {
- if cfg.EndpointResolver == nil {
+ if cfg.EndpointResolver == nil && cfg.EndpointResolverWithOptions == nil {
return
}
o.EndpointResolver = withEndpointResolver(cfg.EndpointResolver, cfg.EndpointResolverWithOptions, NewDefaultEndpointResolver())
@@ -344,6 +482,7 @@ func resolveCredentialProvider(o *Options) {
if o.Credentials == nil {
return
}
+
if _, ok := o.Credentials.(v4a.CredentialsProvider); ok {
return
}
@@ -351,11 +490,11 @@ func resolveCredentialProvider(o *Options) {
switch o.Credentials.(type) {
case aws.AnonymousCredentials, *aws.AnonymousCredentials:
return
-
}
o.Credentials = &v4a.SymmetricCredentialAdaptor{SymmetricProvider: o.Credentials}
}
+
func swapWithCustomHTTPSignerMiddleware(stack *middleware.Stack, o Options) error {
mw := s3cust.NewSignHTTPRequestMiddleware(s3cust.SignHTTPRequestMiddlewareOptions{
CredentialsProvider: o.Credentials,
@@ -363,11 +502,14 @@ func swapWithCustomHTTPSignerMiddleware(stack *middleware.Stack, o Options) erro
V4aSigner: o.httpSignerV4a,
LogSigning: o.ClientLogMode.IsSigning(),
})
+
return s3cust.RegisterSigningMiddleware(stack, mw)
}
type httpSignerV4a interface {
- SignHTTP(ctx context.Context, credentials v4a.Credentials, r *http.Request, payloadHash string, service string, regionSet []string, signingTime time.Time, optFns ...func(*v4a.SignerOptions)) error
+ SignHTTP(ctx context.Context, credentials v4a.Credentials, r *http.Request, payloadHash,
+ service string, regionSet []string, signingTime time.Time,
+ optFns ...func(*v4a.SignerOptions)) error
}
func resolveHTTPSignerV4a(o *Options) {
@@ -389,6 +531,53 @@ func addMetadataRetrieverMiddleware(stack *middleware.Stack) error {
return s3shared.AddMetadataRetrieverMiddleware(stack)
}
+// ComputedInputChecksumsMetadata provides information about the algorithms used to
+// compute the checksum(s) of the input payload.
+type ComputedInputChecksumsMetadata struct {
+ // ComputedChecksums is a map of algorithm name to checksum value of the computed
+ // input payload's checksums.
+ ComputedChecksums map[string]string
+}
+
+// GetComputedInputChecksumsMetadata retrieves from the result metadata the map of
+// algorithms and input payload checksums values.
+func GetComputedInputChecksumsMetadata(m middleware.Metadata) (ComputedInputChecksumsMetadata, bool) {
+ values, ok := internalChecksum.GetComputedInputChecksums(m)
+ if !ok {
+ return ComputedInputChecksumsMetadata{}, false
+ }
+ return ComputedInputChecksumsMetadata{
+ ComputedChecksums: values,
+ }, true
+
+}
+
+// ChecksumValidationMetadata contains metadata such as the checksum algorithm used
+// for data integrity validation.
+type ChecksumValidationMetadata struct {
+ // AlgorithmsUsed is the set of the checksum algorithms used to validate the
+ // response payload. The response payload must be completely read in order for the
+ // checksum validation to be performed. An error is returned by the operation
+ // output's response io.ReadCloser if the computed checksums are invalid.
+ AlgorithmsUsed []string
+}
+
+// GetChecksumValidationMetadata returns the set of algorithms that will be used to
+// validate the response payload with. The response payload must be completely read
+// in order for the checksum validation to be performed. An error is returned by
+// the operation output's response io.ReadCloser if the computed checksums are
+// invalid. Returns false if no checksum algorithm used metadata was found.
+func GetChecksumValidationMetadata(m middleware.Metadata) (ChecksumValidationMetadata, bool) {
+ values, ok := internalChecksum.GetOutputValidationAlgorithmsUsed(m)
+ if !ok {
+ return ChecksumValidationMetadata{}, false
+ }
+ return ChecksumValidationMetadata{
+ AlgorithmsUsed: append(make([]string, 0, len(values)), values...),
+ }, true
+
+}
+
// nopGetBucketAccessor is no-op accessor for operation that don't support bucket
// member as input
func nopGetBucketAccessor(input interface{}) (*string, bool) {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_AbortMultipartUpload.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_AbortMultipartUpload.go
index 25b0b76..042e848 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_AbortMultipartUpload.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_AbortMultipartUpload.go
@@ -74,9 +74,9 @@ type AbortMultipartUploadInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -94,13 +94,14 @@ type AbortMultipartUploadInput struct {
UploadId *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CompleteMultipartUpload.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CompleteMultipartUpload.go
index 5fc9540..95ff649 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CompleteMultipartUpload.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CompleteMultipartUpload.go
@@ -31,10 +31,13 @@ import (
// determine whether the request succeeded. Note that if CompleteMultipartUpload
// fails, applications should be prepared to retry the failed requests. For more
// information, see Amazon S3 Error Best Practices
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html). For
-// more information about multipart uploads, see Uploading Objects Using Multipart
-// Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html).
-// For information about permissions required to use the multipart upload API, see
+// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html). You
+// cannot use Content-Type: application/x-www-form-urlencoded with Complete
+// Multipart Upload requests. Also, if you do not provide a Content-Type header,
+// CompleteMultipartUpload returns a 200 OK response. For more information about
+// multipart uploads, see Uploading Objects Using Multipart Upload
+// (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). For
+// information about permissions required to use the multipart upload API, see
// Multipart Upload and Permissions
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html).
// CompleteMultipartUpload has the following special errors:
@@ -124,9 +127,9 @@ type CompleteMultipartUploadInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -143,8 +146,41 @@ type CompleteMultipartUploadInput struct {
// This member is required.
UploadId *string
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 32-bit CRC32C checksum of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 160-bit SHA-1 digest of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// The container for the multipart upload request information.
@@ -152,12 +188,33 @@ type CompleteMultipartUploadInput struct {
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
+ // The server-side encryption (SSE) algorithm used to encrypt the object. This
+ // parameter is needed only when the object was created using a checksum algorithm.
+ // For more information, see Protecting data using SSE-C keys
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+ // in the Amazon S3 User Guide.
+ SSECustomerAlgorithm *string
+
+ // The server-side encryption (SSE) customer managed key. This parameter is needed
+ // only when the object was created using a checksum algorithm. For more
+ // information, see Protecting data using SSE-C keys
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+ // in the Amazon S3 User Guide.
+ SSECustomerKey *string
+
+ // The MD5 server-side encryption (SSE) customer managed key. This parameter is
+ // needed only when the object was created using a checksum algorithm. For more
+ // information, see Protecting data using SSE-C keys
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+ // in the Amazon S3 User Guide.
+ SSECustomerKeyMD5 *string
+
noSmithyDocumentSerde
}
@@ -176,9 +233,9 @@ type CompleteMultipartUploadOutput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
Bucket *string
@@ -187,16 +244,51 @@ type CompleteMultipartUploadOutput struct {
// encryption with Amazon Web Services KMS (SSE-KMS).
BucketKeyEnabled bool
+ // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// Entity tag that identifies the newly created object's data. Objects with
// different object data will have different entity tags. The entity tag is an
// opaque string. The entity tag may or may not be an MD5 digest of the object
// data. If the entity tag is not an MD5 digest of the object data, it will contain
// one or more nonhexadecimal characters and/or will consist of less than 32 or
- // more than 32 hexadecimal digits.
+ // more than 32 hexadecimal digits. For more information about how the entity tag
+ // is calculated, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
ETag *string
// If the object expiration is configured, this will contain the expiration date
- // (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.
+ // (expiry-date) and rule ID (rule-id). The value of rule-id is URL-encoded.
Expiration *string
// The object key of the newly created object.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CopyObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CopyObject.go
index 627c11a..4779007 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CopyObject.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CopyObject.go
@@ -17,7 +17,8 @@ import (
// individual objects of up to 5 TB in Amazon S3. You create a copy of your object
// up to 5 GB in size in a single atomic action using this API. However, to copy an
// object greater than 5 GB, you must use the multipart upload Upload Part - Copy
-// API. For more information, see Copy Object Using the REST Multipart Upload API
+// (UploadPartCopy) API. For more information, see Copy Object Using the REST
+// Multipart Upload API
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html).
// All copy requests must be authenticated. Additionally, you must have read access
// to the source object and write access to the destination bucket. For more
@@ -113,10 +114,24 @@ import (
// List (ACL) Overview
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) and Managing
// ACLs Using the REST API
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html).
-// Storage Class Options You can use the CopyObject action to change the storage
-// class of an object that is already stored in Amazon S3 using the StorageClass
-// parameter. For more information, see Storage Classes
+// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html). If
+// the bucket that you're copying objects to uses the bucket owner enforced setting
+// for S3 Object Ownership, ACLs are disabled and no longer affect permissions.
+// Buckets that use this setting only accept PUT requests that don't specify an ACL
+// or PUT requests that specify bucket owner full control ACLs, such as the
+// bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed
+// in the XML format. For more information, see Controlling ownership of objects
+// and disabling ACLs
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
+// in the Amazon S3 User Guide. If your bucket uses the bucket owner enforced
+// setting for Object Ownership, all objects written to the bucket by any account
+// will be owned by the bucket owner. Checksums When copying an object, if it has a
+// checksum, that checksum will be copied to the new object by default. When you
+// copy the object over, you may optionally specify a different checksum algorithm
+// to use with the x-amz-checksum-algorithm header. Storage Class Options You can
+// use the CopyObject action to change the storage class of an object that is
+// already stored in Amazon S3 using the StorageClass parameter. For more
+// information, see Storage Classes
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) in
// the Amazon S3 User Guide. Versioning By default, x-amz-copy-source identifies
// the current version of an object to copy. If the current version is a delete
@@ -171,9 +186,9 @@ type CopyObjectInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -189,7 +204,7 @@ type CopyObjectInput struct {
// For objects not accessed through an access point, specify the name of the source
// bucket and the key of the source object, separated by a slash (/). For example,
// to copy the object reports/january.pdf from the bucket awsexamplebucket, use
- // awsexamplebucket/reports/january.pdf. The value must be URL encoded.
+ // awsexamplebucket/reports/january.pdf. The value must be URL-encoded.
//
// * For
// objects accessed through access points, specify the Amazon Resource Name (ARN)
@@ -206,7 +221,7 @@ type CopyObjectInput struct {
// reports/january.pdf through outpost my-outpost owned by account 123456789012 in
// Region us-west-2, use the URL encoding of
// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf.
- // The value must be URL encoded.
+ // The value must be URL-encoded.
//
// To copy a specific version of an object, append
// ?versionId= to the value (for example,
@@ -236,6 +251,12 @@ type CopyObjectInput struct {
// Specifies caching behavior along the request/reply chain.
CacheControl *string
+ // Indicates the algorithm you want Amazon S3 to use to create the checksum for the
+ // object. For more information, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// Specifies presentational information for the object.
ContentDisposition *string
@@ -277,13 +298,13 @@ type CopyObjectInput struct {
CopySourceSSECustomerKeyMD5 *string
// The account ID of the expected destination bucket owner. If the destination
- // bucket is owned by a different account, the request will fail with an HTTP 403
- // (Access Denied) error.
+ // bucket is owned by a different account, the request fails with the HTTP status
+ // code 403 Forbidden (access denied).
ExpectedBucketOwner *string
// The account ID of the expected source bucket owner. If the source bucket is
- // owned by a different account, the request will fail with an HTTP 403 (Access
- // Denied) error.
+ // owned by a different account, the request fails with the HTTP status code 403
+ // Forbidden (access denied).
ExpectedSourceBucketOwner *string
// The date and time at which the object is no longer cacheable.
@@ -312,7 +333,7 @@ type CopyObjectInput struct {
// metadata provided in the request.
MetadataDirective types.MetadataDirective
- // Specifies whether you want to apply a Legal Hold to the copied object.
+ // Specifies whether you want to apply a legal hold to the copied object.
ObjectLockLegalHoldStatus types.ObjectLockLegalHoldStatus
// The Object Lock mode that you want to apply to the copied object.
@@ -323,8 +344,8 @@ type CopyObjectInput struct {
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucket.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucket.go
index 38ea2c5..27322a2 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucket.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucket.go
@@ -34,15 +34,23 @@ import (
// created. If you create a bucket in a Region other than US East (N. Virginia),
// your application must be able to handle 307 redirect. For more information, see
// Virtual hosting of buckets
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html). When
-// creating a bucket using this operation, you can optionally specify the accounts
-// or groups that should be granted specific permissions on the bucket. There are
-// two ways to grant the appropriate permissions using the request headers.
+// (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html). Access
+// control lists (ACLs) When creating a bucket using this operation, you can
+// optionally configure the bucket ACL to specify the accounts or groups that
+// should be granted specific permissions on the bucket. If your CreateBucket
+// request sets bucket owner enforced for S3 Object Ownership and specifies a
+// bucket ACL that provides access to an external Amazon Web Services account, your
+// request fails with a 400 error and returns the
+// InvalidBucketAclWithObjectOwnership error code. For more information, see
+// Controlling object ownership
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
+// in the Amazon S3 User Guide. There are two ways to grant the appropriate
+// permissions using the request headers.
//
-// *
-// Specify a canned ACL using the x-amz-acl request header. Amazon S3 supports a
-// set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined
-// set of grantees and permissions. For more information, see Canned ACL
+// * Specify a canned ACL using the
+// x-amz-acl request header. Amazon S3 supports a set of predefined ACLs, known as
+// canned ACLs. Each canned ACL has a predefined set of grantees and permissions.
+// For more information, see Canned ACL
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL).
//
// *
@@ -51,41 +59,41 @@ import (
// x-amz-grant-full-control headers. These headers map to the set of permissions
// Amazon S3 supports in an ACL. For more information, see Access control list
// (ACL) overview
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). You specify
-// each grantee as a type=value pair, where the type is one of the following:
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html). You
+// specify each grantee as a type=value pair, where the type is one of the
+// following:
//
-// * id
-// – if the value specified is the canonical user ID of an Amazon Web Services
-// account
+// * id – if the value specified is the canonical user ID of an Amazon
+// Web Services account
//
-// * uri – if you are granting permissions to a predefined group
+// * uri – if you are granting permissions to a predefined
+// group
//
-// *
-// emailAddress – if the value specified is the email address of an Amazon Web
-// Services account Using email addresses to specify a grantee is only supported in
-// the following Amazon Web Services Regions:
+// * emailAddress – if the value specified is the email address of an Amazon
+// Web Services account Using email addresses to specify a grantee is only
+// supported in the following Amazon Web Services Regions:
//
-// * US East (N. Virginia)
+// * US East (N.
+// Virginia)
//
-// * US West
-// (N. California)
+// * US West (N. California)
//
// * US West (Oregon)
//
-// * Asia Pacific (Singapore)
-//
// * Asia Pacific
-// (Sydney)
+// (Singapore)
+//
+// * Asia Pacific (Sydney)
//
// * Asia Pacific (Tokyo)
//
-// * Europe (Ireland)
+// * Europe
+// (Ireland)
//
-// * South America (São
-// Paulo)
+// * South America (São Paulo)
//
-// For a list of all the Amazon S3 supported Regions and endpoints, see
-// Regions and Endpoints
+// For a list of all the Amazon S3
+// supported Regions and endpoints, see Regions and Endpoints
// (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in the
// Amazon Web Services General Reference.
//
@@ -95,15 +103,27 @@ import (
// id="11112222333", id="444455556666"
//
// You can use either a canned ACL or specify
-// access permissions explicitly. You cannot do both. Permissions If your
-// CreateBucket request specifies ACL permissions and the ACL is public-read,
-// public-read-write, authenticated-read, or if you specify access permissions
-// explicitly through any other ACL, both s3:CreateBucket and s3:PutBucketAcl
-// permissions are needed. If the ACL the CreateBucket request is private, only
-// s3:CreateBucket permission is needed. If ObjectLockEnabledForBucket is set to
-// true in your CreateBucket request, s3:PutBucketObjectLockConfiguration and
-// s3:PutBucketVersioning permissions are required. The following operations are
-// related to CreateBucket:
+// access permissions explicitly. You cannot do both. Permissions In addition to
+// s3:CreateBucket, the following permissions are required when your CreateBucket
+// includes specific headers:
+//
+// * ACLs - If your CreateBucket request specifies ACL
+// permissions and the ACL is public-read, public-read-write, authenticated-read,
+// or if you specify access permissions explicitly through any other ACL, both
+// s3:CreateBucket and s3:PutBucketAcl permissions are needed. If the ACL the
+// CreateBucket request is private or doesn't specify any ACLs, only
+// s3:CreateBucket permission is needed.
+//
+// * Object Lock - If
+// ObjectLockEnabledForBucket is set to true in your CreateBucket request,
+// s3:PutBucketObjectLockConfiguration and s3:PutBucketVersioning permissions are
+// required.
+//
+// * S3 Object Ownership - If your CreateBucket request includes the the
+// x-amz-object-ownership header, s3:PutBucketOwnershipControls permission is
+// required.
+//
+// The following operations are related to CreateBucket:
//
// * PutObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
@@ -160,14 +180,25 @@ type CreateBucketInput struct {
// Specifies whether you want S3 Object Lock to be enabled for the new bucket.
ObjectLockEnabledForBucket bool
+ // The container element for object ownership for a bucket's ownership controls.
+ // BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the
+ // bucket owner if the objects are uploaded with the bucket-owner-full-control
+ // canned ACL. ObjectWriter - The uploading account will own the object if the
+ // object is uploaded with the bucket-owner-full-control canned ACL.
+ // BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer
+ // affect permissions. The bucket owner automatically owns and has full control
+ // over every object in the bucket. The bucket only accepts PUT requests that don't
+ // specify an ACL or bucket owner full control ACLs, such as the
+ // bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed
+ // in the XML format.
+ ObjectOwnership types.ObjectOwnership
+
noSmithyDocumentSerde
}
type CreateBucketOutput struct {
- // Specifies the Region where the bucket will be created. If you are creating a
- // bucket on the US East (N. Virginia) Region (us-east-1), you do not need to
- // specify the location.
+ // A forward slash followed by the name of the bucket.
Location *string
// Metadata pertaining to the operation's result.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateMultipartUpload.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateMultipartUpload.go
index 9e3f7ed..825feeb 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateMultipartUpload.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateMultipartUpload.go
@@ -262,9 +262,9 @@ type CreateMultipartUploadInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -290,6 +290,12 @@ type CreateMultipartUploadInput struct {
// Specifies caching behavior along the request/reply chain.
CacheControl *string
+ // Indicates the algorithm you want Amazon S3 to use to create the checksum for the
+ // object. For more information, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// Specifies presentational information for the object.
ContentDisposition *string
@@ -305,7 +311,8 @@ type CreateMultipartUploadInput struct {
ContentType *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// The date and time at which the object is no longer cacheable.
@@ -330,7 +337,7 @@ type CreateMultipartUploadInput struct {
// A map of metadata to store with the object in S3.
Metadata map[string]string
- // Specifies whether you want to apply a Legal Hold to the uploaded object.
+ // Specifies whether you want to apply a legal hold to the uploaded object.
ObjectLockLegalHoldStatus types.ObjectLockLegalHoldStatus
// Specifies the Object Lock mode that you want to apply to the uploaded object.
@@ -341,8 +348,8 @@ type CreateMultipartUploadInput struct {
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
@@ -433,9 +440,9 @@ type CreateMultipartUploadOutput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
Bucket *string
@@ -444,6 +451,9 @@ type CreateMultipartUploadOutput struct {
// encryption with Amazon Web Services KMS (SSE-KMS).
BucketKeyEnabled bool
+ // The algorithm that was used to create a checksum of the object.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// Object key for which the multipart upload was initiated.
Key *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucket.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucket.go
index bcbfc35..44823c6 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucket.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucket.go
@@ -44,7 +44,8 @@ type DeleteBucketInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go
index 6f7ab3f..e016d97 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go
@@ -64,7 +64,8 @@ type DeleteBucketAnalyticsConfigurationInput struct {
Id *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketCors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketCors.go
index 07fe630..79045ab 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketCors.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketCors.go
@@ -47,7 +47,8 @@ type DeleteBucketCorsInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketEncryption.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketEncryption.go
index 79f7086..9c3201f 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketEncryption.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketEncryption.go
@@ -55,7 +55,8 @@ type DeleteBucketEncryptionInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketIntelligentTieringConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketIntelligentTieringConfiguration.go
index 7a289f6..139dd78 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketIntelligentTieringConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketIntelligentTieringConfiguration.go
@@ -15,16 +15,16 @@ import (
// S3 Intelligent-Tiering storage class is designed to optimize storage costs by
// automatically moving data to the most cost-effective storage access tier,
// without performance impact or operational overhead. S3 Intelligent-Tiering
-// delivers automatic cost savings in two low latency and high throughput access
-// tiers. For data that can be accessed asynchronously, you can choose to activate
-// automatic archiving capabilities within the S3 Intelligent-Tiering storage
-// class. The S3 Intelligent-Tiering storage class is the ideal storage class for
-// data with unknown, changing, or unpredictable access patterns, independent of
-// object size or retention period. If the size of an object is less than 128 KB,
-// it is not eligible for auto-tiering. Smaller objects can be stored, but they are
-// always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering
-// storage class. For more information, see Storage class for automatically
-// optimizing frequently and infrequently accessed objects
+// delivers automatic cost savings in three low latency and high throughput access
+// tiers. To get the lowest storage cost on data that can be accessed in minutes to
+// hours, you can choose to activate additional archiving capabilities. The S3
+// Intelligent-Tiering storage class is the ideal storage class for data with
+// unknown, changing, or unpredictable access patterns, independent of object size
+// or retention period. If the size of an object is less than 128 KB, it is not
+// monitored and not eligible for auto-tiering. Smaller objects can be stored, but
+// they are always charged at the Frequent Access tier rates in the S3
+// Intelligent-Tiering storage class. For more information, see Storage class for
+// automatically optimizing frequently and infrequently accessed objects
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access).
// Operations related to DeleteBucketIntelligentTieringConfiguration include:
//
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketInventoryConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketInventoryConfiguration.go
index 9d0e6a8..32fe81f 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketInventoryConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketInventoryConfiguration.go
@@ -63,7 +63,8 @@ type DeleteBucketInventoryConfigurationInput struct {
Id *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketLifecycle.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketLifecycle.go
index f1c59da..c110bfb 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketLifecycle.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketLifecycle.go
@@ -53,7 +53,8 @@ type DeleteBucketLifecycleInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketMetricsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketMetricsConfiguration.go
index c9d7e8c..cc08f04 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketMetricsConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketMetricsConfiguration.go
@@ -69,7 +69,8 @@ type DeleteBucketMetricsConfigurationInput struct {
Id *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketOwnershipControls.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketOwnershipControls.go
index 2f3dc33..6186db5 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketOwnershipControls.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketOwnershipControls.go
@@ -46,7 +46,8 @@ type DeleteBucketOwnershipControlsInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketPolicy.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketPolicy.go
index 815b5ba..618d9be 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketPolicy.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketPolicy.go
@@ -56,7 +56,8 @@ type DeleteBucketPolicyInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketReplication.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketReplication.go
index 3489765..ad2d772 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketReplication.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketReplication.go
@@ -54,7 +54,8 @@ type DeleteBucketReplicationInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketTagging.go
index e05f3d4..063f0bc 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketTagging.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketTagging.go
@@ -45,7 +45,8 @@ type DeleteBucketTaggingInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketWebsite.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketWebsite.go
index a1d22e9..7eb72b8 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketWebsite.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketWebsite.go
@@ -54,7 +54,8 @@ type DeleteBucketWebsiteInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObject.go
index 54468e9..82e6687 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObject.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObject.go
@@ -65,9 +65,9 @@ type DeleteObjectInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -81,11 +81,12 @@ type DeleteObjectInput struct {
// Indicates whether S3 Object Lock should bypass Governance-mode restrictions to
// process this operation. To use this header, you must have the
- // s3:PutBucketPublicAccessBlock permission.
+ // s3:BypassGovernanceRetention permission.
BypassGovernanceRetention bool
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// The concatenation of the authentication device's serial number, a space, and the
@@ -95,8 +96,8 @@ type DeleteObjectInput struct {
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjectTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjectTagging.go
index 81640f6..0d1bb73 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjectTagging.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjectTagging.go
@@ -55,9 +55,9 @@ type DeleteObjectTaggingInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -70,7 +70,8 @@ type DeleteObjectTaggingInput struct {
Key *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// The versionId of the object that the tag-set will be removed from.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjects.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjects.go
index 7e439da..50078da 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjects.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjects.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -86,9 +87,9 @@ type DeleteObjectsInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -102,11 +103,25 @@ type DeleteObjectsInput struct {
// Specifies whether you want to delete this object even if it has a
// Governance-type Object Lock in place. To use this header, you must have the
- // s3:PutBucketPublicAccessBlock permission.
+ // s3:BypassGovernanceRetention permission.
BypassGovernanceRetention bool
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter. This checksum algorithm must
+ // be the same for all parts and it match the checksum value supplied in the
+ // CreateMultipartUpload request.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// The concatenation of the authentication device's serial number, a space, and the
@@ -116,8 +131,8 @@ type DeleteObjectsInput struct {
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
@@ -193,9 +208,6 @@ func (c *Client) addOperationDeleteObjectsMiddlewares(stack *middleware.Stack, o
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpDeleteObjectsValidationMiddleware(stack); err != nil {
return err
}
@@ -205,6 +217,9 @@ func (c *Client) addOperationDeleteObjectsMiddlewares(stack *middleware.Stack, o
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addDeleteObjectsInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addDeleteObjectsUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -232,6 +247,26 @@ func newServiceMetadataMiddleware_opDeleteObjects(region string) *awsmiddleware.
}
}
+// getDeleteObjectsRequestAlgorithmMember gets the request checksum algorithm value
+// provided as input.
+func getDeleteObjectsRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*DeleteObjectsInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addDeleteObjectsInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getDeleteObjectsRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getDeleteObjectsBucketMember returns a pointer to string denoting a provided
// bucket member valueand a boolean indicating if the input has a modeled bucket
// name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeletePublicAccessBlock.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeletePublicAccessBlock.go
index 04df464..3defd53 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeletePublicAccessBlock.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeletePublicAccessBlock.go
@@ -58,7 +58,8 @@ type DeletePublicAccessBlockInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAccelerateConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAccelerateConfiguration.go
index d2dff75..d1690f3 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAccelerateConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAccelerateConfiguration.go
@@ -59,7 +59,8 @@ type GetBucketAccelerateConfigurationInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAcl.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAcl.go
index 96a5043..6107628 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAcl.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAcl.go
@@ -16,7 +16,13 @@ import (
// access control list (ACL) of a bucket. To use GET to return the ACL of the
// bucket, you must have READ_ACP access to the bucket. If READ_ACP permission is
// granted to the anonymous user, you can return the ACL of the bucket without
-// using an authorization header. Related Resources
+// using an authorization header. If your bucket uses the bucket owner enforced
+// setting for S3 Object Ownership, requests to read ACLs are still supported and
+// return the bucket-owner-full-control ACL with the owner being the account that
+// created the bucket. For more information, see Controlling object ownership and
+// disabling ACLs
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
+// in the Amazon S3 User Guide. Related Resources
//
// * ListObjects
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html)
@@ -43,7 +49,8 @@ type GetBucketAclInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAnalyticsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAnalyticsConfiguration.go
index 3f87c98..bf2c3be 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAnalyticsConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAnalyticsConfiguration.go
@@ -65,7 +65,8 @@ type GetBucketAnalyticsConfigurationInput struct {
Id *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketCors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketCors.go
index 1f291ac..0ed6127 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketCors.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketCors.go
@@ -12,10 +12,11 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Returns the cors configuration information set for the bucket. To use this
-// operation, you must have permission to perform the s3:GetBucketCORS action. By
-// default, the bucket owner has this permission and can grant it to others. For
-// more information about cors, see Enabling Cross-Origin Resource Sharing
+// Returns the Cross-Origin Resource Sharing (CORS) configuration information set
+// for the bucket. To use this operation, you must have permission to perform the
+// s3:GetBucketCORS action. By default, the bucket owner has this permission and
+// can grant it to others. For more information about CORS, see Enabling
+// Cross-Origin Resource Sharing
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). The following
// operations are related to GetBucketCors:
//
@@ -48,7 +49,8 @@ type GetBucketCorsInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketEncryption.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketEncryption.go
index 12507c1..7fa92fc 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketEncryption.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketEncryption.go
@@ -59,7 +59,8 @@ type GetBucketEncryptionInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketIntelligentTieringConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketIntelligentTieringConfiguration.go
index 9c5c6ab..70bbb9d 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketIntelligentTieringConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketIntelligentTieringConfiguration.go
@@ -16,16 +16,16 @@ import (
// Intelligent-Tiering storage class is designed to optimize storage costs by
// automatically moving data to the most cost-effective storage access tier,
// without performance impact or operational overhead. S3 Intelligent-Tiering
-// delivers automatic cost savings in two low latency and high throughput access
-// tiers. For data that can be accessed asynchronously, you can choose to activate
-// automatic archiving capabilities within the S3 Intelligent-Tiering storage
-// class. The S3 Intelligent-Tiering storage class is the ideal storage class for
-// data with unknown, changing, or unpredictable access patterns, independent of
-// object size or retention period. If the size of an object is less than 128 KB,
-// it is not eligible for auto-tiering. Smaller objects can be stored, but they are
-// always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering
-// storage class. For more information, see Storage class for automatically
-// optimizing frequently and infrequently accessed objects
+// delivers automatic cost savings in three low latency and high throughput access
+// tiers. To get the lowest storage cost on data that can be accessed in minutes to
+// hours, you can choose to activate additional archiving capabilities. The S3
+// Intelligent-Tiering storage class is the ideal storage class for data with
+// unknown, changing, or unpredictable access patterns, independent of object size
+// or retention period. If the size of an object is less than 128 KB, it is not
+// monitored and not eligible for auto-tiering. Smaller objects can be stored, but
+// they are always charged at the Frequent Access tier rates in the S3
+// Intelligent-Tiering storage class. For more information, see Storage class for
+// automatically optimizing frequently and infrequently accessed objects
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access).
// Operations related to GetBucketIntelligentTieringConfiguration include:
//
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketInventoryConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketInventoryConfiguration.go
index 6411472..f35a460 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketInventoryConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketInventoryConfiguration.go
@@ -63,7 +63,8 @@ type GetBucketInventoryConfigurationInput struct {
Id *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLifecycleConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLifecycleConfiguration.go
index f64f148..5d72d2e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLifecycleConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLifecycleConfiguration.go
@@ -80,7 +80,8 @@ type GetBucketLifecycleConfigurationInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLocation.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLocation.go
index 7adda20..fb8ff30 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLocation.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLocation.go
@@ -57,7 +57,8 @@ type GetBucketLocationInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLogging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLogging.go
index 2e43477..ca11588 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLogging.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLogging.go
@@ -45,7 +45,8 @@ type GetBucketLoggingInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketMetricsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketMetricsConfiguration.go
index 30025a6..22cf389 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketMetricsConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketMetricsConfiguration.go
@@ -70,7 +70,8 @@ type GetBucketMetricsConfigurationInput struct {
Id *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketNotificationConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketNotificationConfiguration.go
index 93edf8b..cbf103a 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketNotificationConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketNotificationConfiguration.go
@@ -50,7 +50,8 @@ type GetBucketNotificationConfigurationInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -60,6 +61,9 @@ type GetBucketNotificationConfigurationInput struct {
// element is empty, notifications are turned off for the bucket.
type GetBucketNotificationConfigurationOutput struct {
+ // Enables delivery of events to Amazon EventBridge.
+ EventBridgeConfiguration *types.EventBridgeConfiguration
+
// Describes the Lambda functions to invoke and the events for which to invoke
// them.
LambdaFunctionConfigurations []types.LambdaFunctionConfiguration
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketOwnershipControls.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketOwnershipControls.go
index ca4144d..571c956 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketOwnershipControls.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketOwnershipControls.go
@@ -14,10 +14,10 @@ import (
// Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you
// must have the s3:GetBucketOwnershipControls permission. For more information
-// about Amazon S3 permissions, see Specifying Permissions in a Policy
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html).
+// about Amazon S3 permissions, see Specifying permissions in a policy
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html).
// For information about Amazon S3 Object Ownership, see Using Object Ownership
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html).
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html).
// The following operations are related to GetBucketOwnershipControls:
//
// *
@@ -47,7 +47,8 @@ type GetBucketOwnershipControlsInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -55,8 +56,8 @@ type GetBucketOwnershipControlsInput struct {
type GetBucketOwnershipControlsOutput struct {
- // The OwnershipControls (BucketOwnerPreferred or ObjectWriter) currently in effect
- // for this Amazon S3 bucket.
+ // The OwnershipControls (BucketOwnerEnforced, BucketOwnerPreferred, or
+ // ObjectWriter) currently in effect for this Amazon S3 bucket.
OwnershipControls *types.OwnershipControls
// Metadata pertaining to the operation's result.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicy.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicy.go
index 4e0d1af..f16c84c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicy.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicy.go
@@ -51,7 +51,8 @@ type GetBucketPolicyInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicyStatus.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicyStatus.go
index 42b3b80..570f60f 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicyStatus.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicyStatus.go
@@ -60,7 +60,8 @@ type GetBucketPolicyStatusInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketReplication.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketReplication.go
index b03baf4..5d7f311 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketReplication.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketReplication.go
@@ -58,7 +58,8 @@ type GetBucketReplicationInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketRequestPayment.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketRequestPayment.go
index 18166d4..45f985b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketRequestPayment.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketRequestPayment.go
@@ -43,7 +43,8 @@ type GetBucketRequestPaymentInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketTagging.go
index 7072844..816d1b3 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketTagging.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketTagging.go
@@ -17,16 +17,15 @@ import (
// bucket owner has this permission and can grant this permission to others.
// GetBucketTagging has the following special error:
//
-// * Error code:
-// NoSuchTagSetError
-//
-// * Description: There is no tag set associated with the
-// bucket.
-//
-// The following operations are related to GetBucketTagging:
+// * Error code: NoSuchTagSet
//
// *
-// PutBucketTagging
+// Description: There is no tag set associated with the bucket.
+//
+// The following
+// operations are related to GetBucketTagging:
+//
+// * PutBucketTagging
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)
//
// *
@@ -55,7 +54,8 @@ type GetBucketTaggingInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketVersioning.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketVersioning.go
index 7de1f13..3657bd1 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketVersioning.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketVersioning.go
@@ -52,7 +52,8 @@ type GetBucketVersioningInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketWebsite.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketWebsite.go
index 5e994e3..aa866b3 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketWebsite.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketWebsite.go
@@ -51,7 +51,8 @@ type GetBucketWebsiteInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObject.go
index 8126463..92c38be 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObject.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObject.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -29,10 +30,7 @@ import (
// specify the resource as /examplebucket/photos/2006/February/sample.jpg. For more
// information about request types, see HTTP Host Header Bucket Specification
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket).
-// To distribute large files to many people, you can save bandwidth costs by using
-// BitTorrent. For more information, see Amazon S3 Torrent
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html). For more
-// information about returning the ACL of an object, see GetObjectAcl
+// For more information about returning the ACL of an object, see GetObjectAcl
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html). If the
// object you are retrieving is stored in the S3 Glacier or S3 Glacier Deep Archive
// storage class, or S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep
@@ -84,15 +82,17 @@ import (
// Versioning By default, the GET action returns the current version of an
// object. To return a different version, use the versionId subresource.
//
-// * You
-// need the s3:GetObjectVersion permission to access a specific version of an
-// object.
+// * If you
+// supply a versionId, you need the s3:GetObjectVersion permission to access a
+// specific version of an object. If you request a specific version, you do not
+// need to have the s3:GetObject permission.
//
-// * If the current version of the object is a delete marker, Amazon S3
-// behaves as if the object was deleted and includes x-amz-delete-marker: true in
-// the response.
+// * If the current version of the
+// object is a delete marker, Amazon S3 behaves as if the object was deleted and
+// includes x-amz-delete-marker: true in the response.
//
-// For more information about versioning, see PutBucketVersioning
+// For more information about
+// versioning, see PutBucketVersioning
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html).
// Overriding Response Header Values There are times when you want to override
// certain response header values in a GET response. For example, you might
@@ -171,9 +171,9 @@ type GetObjectInput struct {
// action with Amazon S3 on Outposts, you must direct requests to the S3 on
// Outposts hostname. The S3 on Outposts hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -185,24 +185,28 @@ type GetObjectInput struct {
// This member is required.
Key *string
+ // To retrieve the checksum, this mode must be enabled.
+ ChecksumMode types.ChecksumMode
+
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Return the object only if its entity tag (ETag) is the same as the one
- // specified, otherwise return a 412 (precondition failed).
+ // specified; otherwise, return a 412 (precondition failed) error.
IfMatch *string
- // Return the object only if it has been modified since the specified time,
- // otherwise return a 304 (not modified).
+ // Return the object only if it has been modified since the specified time;
+ // otherwise, return a 304 (not modified) error.
IfModifiedSince *time.Time
// Return the object only if its entity tag (ETag) is different from the one
- // specified, otherwise return a 304 (not modified).
+ // specified; otherwise, return a 304 (not modified) error.
IfNoneMatch *string
- // Return the object only if it has not been modified since the specified time,
- // otherwise return a 412 (precondition failed).
+ // Return the object only if it has not been modified since the specified time;
+ // otherwise, return a 412 (precondition failed) error.
IfUnmodifiedSince *time.Time
// Part number of the object being read. This is a positive integer between 1 and
@@ -219,8 +223,8 @@ type GetObjectInput struct {
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
@@ -280,6 +284,38 @@ type GetObjectOutput struct {
// Specifies caching behavior along the request/reply chain.
CacheControl *string
+ // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// Specifies presentational information for the object.
ContentDisposition *string
@@ -304,14 +340,14 @@ type GetObjectOutput struct {
// Marker. If false, this response header does not appear in the response.
DeleteMarker bool
- // An ETag is an opaque identifier assigned by a web server to a specific version
- // of a resource found at a URL.
+ // An entity tag (ETag) is an opaque identifier assigned by a web server to a
+ // specific version of a resource found at a URL.
ETag *string
// If the object expiration is configured (see PUT Bucket lifecycle), the response
// includes this header. It includes the expiry-date and rule-id key-value pairs
- // providing object expiration information. The value of the rule-id is URL
- // encoded.
+ // providing object expiration information. The value of the rule-id is
+ // URL-encoded.
Expiration *string
// The date and time at which the object is no longer cacheable.
@@ -341,7 +377,8 @@ type GetObjectOutput struct {
// The date and time when this object's Object Lock will expire.
ObjectLockRetainUntilDate *time.Time
- // The count of parts this object has.
+ // The count of parts this object has. This value is only returned if you specify
+ // partNumber in your request and the object was uploaded as a multipart upload.
PartsCount int32
// Amazon S3 can return this if your request involves a bucket that is either a
@@ -449,6 +486,9 @@ func (c *Client) addOperationGetObjectMiddlewares(stack *middleware.Stack, optio
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addGetObjectOutputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addGetObjectUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -476,6 +516,26 @@ func newServiceMetadataMiddleware_opGetObject(region string) *awsmiddleware.Regi
}
}
+// getGetObjectRequestValidationModeMember gets the request checksum validation
+// mode provided as input.
+func getGetObjectRequestValidationModeMember(input interface{}) (string, bool) {
+ in := input.(*GetObjectInput)
+ if len(in.ChecksumMode) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumMode), true
+}
+
+func addGetObjectOutputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddOutputMiddleware(stack, internalChecksum.OutputMiddlewareOptions{
+ GetValidationMode: getGetObjectRequestValidationModeMember,
+ ValidationAlgorithms: []string{"CRC32", "CRC32C", "SHA256", "SHA1"},
+ IgnoreMultipartValidation: true,
+ LogValidationSkipped: true,
+ LogMultipartValidationSkipped: true,
+ })
+}
+
// getGetObjectBucketMember returns a pointer to string denoting a provided bucket
// member valueand a boolean indicating if the input has a modeled bucket name,
func getGetObjectBucketMember(input interface{}) (*string, bool) {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAcl.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAcl.go
index b260a8d..709e62f 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAcl.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAcl.go
@@ -13,16 +13,29 @@ import (
)
// Returns the access control list (ACL) of an object. To use this operation, you
-// must have READ_ACP access to the object. This action is not supported by Amazon
-// S3 on Outposts. Versioning By default, GET returns ACL information about the
-// current version of an object. To return ACL information about a different
-// version, use the versionId subresource. The following operations are related to
+// must have s3:GetObjectAcl permissions or READ_ACP access to the object. For more
+// information, see Mapping of ACL permissions and access policy permissions
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping)
+// in the Amazon S3 User Guide This action is not supported by Amazon S3 on
+// Outposts. Versioning By default, GET returns ACL information about the current
+// version of an object. To return ACL information about a different version, use
+// the versionId subresource. If your bucket uses the bucket owner enforced setting
+// for S3 Object Ownership, requests to read ACLs are still supported and return
+// the bucket-owner-full-control ACL with the owner being the account that created
+// the bucket. For more information, see Controlling object ownership and
+// disabling ACLs
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
+// in the Amazon S3 User Guide. The following operations are related to
// GetObjectAcl:
//
// * GetObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
//
// *
+// GetObjectAttributes
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)
+//
+// *
// DeleteObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
//
@@ -64,13 +77,14 @@ type GetObjectAclInput struct {
Key *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAttributes.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAttributes.go
new file mode 100644
index 0000000..fb1683e
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAttributes.go
@@ -0,0 +1,363 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package s3
+
+import (
+ "context"
+ awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
+ "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
+ "github.com/aws/aws-sdk-go-v2/service/s3/types"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+ "time"
+)
+
+// Retrieves all the metadata from an object without returning the object itself.
+// This action is useful if you're interested only in an object's metadata. To use
+// GetObjectAttributes, you must have READ access to the object.
+// GetObjectAttributes combines the functionality of GetObjectAcl,
+// GetObjectLegalHold, GetObjectLockConfiguration, GetObjectRetention,
+// GetObjectTagging, HeadObject, and ListParts. All of the data returned with each
+// of those individual calls can be returned with a single call to
+// GetObjectAttributes. If you encrypt an object by using server-side encryption
+// with customer-provided encryption keys (SSE-C) when you store the object in
+// Amazon S3, then when you retrieve the metadata from the object, you must use the
+// following headers:
+//
+// * x-amz-server-side-encryption-customer-algorithm
+//
+// *
+// x-amz-server-side-encryption-customer-key
+//
+// *
+// x-amz-server-side-encryption-customer-key-MD5
+//
+// For more information about SSE-C,
+// see Server-Side Encryption (Using Customer-Provided Encryption Keys)
+// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+// in the Amazon S3 User Guide.
+//
+// * Encryption request headers, such as
+// x-amz-server-side-encryption, should not be sent for GET requests if your object
+// uses server-side encryption with Amazon Web Services KMS keys stored in Amazon
+// Web Services Key Management Service (SSE-KMS) or server-side encryption with
+// Amazon S3 managed encryption keys (SSE-S3). If your object does use these types
+// of keys, you'll get an HTTP 400 Bad Request error.
+//
+// * The last modified property
+// in this case is the creation date of the object.
+//
+// Consider the following when
+// using request headers:
+//
+// * If both of the If-Match and If-Unmodified-Since
+// headers are present in the request as follows, then Amazon S3 returns the HTTP
+// status code 200 OK and the data requested:
+//
+// * If-Match condition evaluates to
+// true.
+//
+// * If-Unmodified-Since condition evaluates to false.
+//
+// * If both of the
+// If-None-Match and If-Modified-Since headers are present in the request as
+// follows, then Amazon S3 returns the HTTP status code 304 Not Modified:
+//
+// *
+// If-None-Match condition evaluates to false.
+//
+// * If-Modified-Since condition
+// evaluates to true.
+//
+// For more information about conditional requests, see RFC
+// 7232 (https://tools.ietf.org/html/rfc7232). Permissions The permissions that you
+// need to use this operation depend on whether the bucket is versioned. If the
+// bucket is versioned, you need both the s3:GetObjectVersion and
+// s3:GetObjectVersionAttributes permissions for this operation. If the bucket is
+// not versioned, you need the s3:GetObject and s3:GetObjectAttributes permissions.
+// For more information, see Specifying Permissions in a Policy
+// (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) in
+// the Amazon S3 User Guide. If the object that you request does not exist, the
+// error Amazon S3 returns depends on whether you also have the s3:ListBucket
+// permission.
+//
+// * If you have the s3:ListBucket permission on the bucket, Amazon S3
+// returns an HTTP status code 404 Not Found ("no such key") error.
+//
+// * If you don't
+// have the s3:ListBucket permission, Amazon S3 returns an HTTP status code 403
+// Forbidden ("access denied") error.
+//
+// The following actions are related to
+// GetObjectAttributes:
+//
+// * GetObject
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+//
+// *
+// GetObjectAcl
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html)
+//
+// *
+// GetObjectLegalHold
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html)
+//
+// *
+// GetObjectLockConfiguration
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html)
+//
+// *
+// GetObjectRetention
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html)
+//
+// *
+// GetObjectTagging
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)
+//
+// *
+// HeadObject
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)
+//
+// *
+// ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
+func (c *Client) GetObjectAttributes(ctx context.Context, params *GetObjectAttributesInput, optFns ...func(*Options)) (*GetObjectAttributesOutput, error) {
+ if params == nil {
+ params = &GetObjectAttributesInput{}
+ }
+
+ result, metadata, err := c.invokeOperation(ctx, "GetObjectAttributes", params, optFns, c.addOperationGetObjectAttributesMiddlewares)
+ if err != nil {
+ return nil, err
+ }
+
+ out := result.(*GetObjectAttributesOutput)
+ out.ResultMetadata = metadata
+ return out, nil
+}
+
+type GetObjectAttributesInput struct {
+
+ // The name of the bucket that contains the object. When using this action with an
+ // access point, you must direct requests to the access point hostname. The access
+ // point hostname takes the form
+ // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
+ // action with an access point through the Amazon Web Services SDKs, you provide
+ // the access point ARN in place of the bucket name. For more information about
+ // access point ARNs, see Using access points
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
+ // in the Amazon S3 User Guide. When using this action with Amazon S3 on Outposts,
+ // you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
+ // hostname takes the form
+ // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
+ // provide the Outposts bucket ARN in place of the bucket name. For more
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
+ // Amazon S3 User Guide.
+ //
+ // This member is required.
+ Bucket *string
+
+ // The object key.
+ //
+ // This member is required.
+ Key *string
+
+ // An XML header that specifies the fields at the root level that you want returned
+ // in the response. Fields that you do not specify are not returned.
+ //
+ // This member is required.
+ ObjectAttributes []types.ObjectAttributes
+
+ // The account ID of the expected bucket owner. If the bucket is owned by a
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
+ ExpectedBucketOwner *string
+
+ // Sets the maximum number of parts to return.
+ MaxParts int32
+
+ // Specifies the part after which listing should begin. Only parts with higher part
+ // numbers will be listed.
+ PartNumberMarker *string
+
+ // Confirms that the requester knows that they will be charged for the request.
+ // Bucket owners need not specify this parameter in their requests. For information
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
+ // in the Amazon S3 User Guide.
+ RequestPayer types.RequestPayer
+
+ // Specifies the algorithm to use when encrypting the object (for example, AES256).
+ SSECustomerAlgorithm *string
+
+ // Specifies the customer-provided encryption key for Amazon S3 to use in
+ // encrypting data. This value is used to store the object and then it is
+ // discarded; Amazon S3 does not store the encryption key. The key must be
+ // appropriate for use with the algorithm specified in the
+ // x-amz-server-side-encryption-customer-algorithm header.
+ SSECustomerKey *string
+
+ // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
+ // Amazon S3 uses this header for a message integrity check to ensure that the
+ // encryption key was transmitted without error.
+ SSECustomerKeyMD5 *string
+
+ // The version ID used to reference a specific version of the object.
+ VersionId *string
+
+ noSmithyDocumentSerde
+}
+
+type GetObjectAttributesOutput struct {
+
+ // The checksum or digest of the object.
+ Checksum *types.Checksum
+
+ // Specifies whether the object retrieved was (true) or was not (false) a delete
+ // marker. If false, this response header does not appear in the response.
+ DeleteMarker bool
+
+ // An ETag is an opaque identifier assigned by a web server to a specific version
+ // of a resource found at a URL.
+ ETag *string
+
+ // The creation date of the object.
+ LastModified *time.Time
+
+ // A collection of parts associated with a multipart upload.
+ ObjectParts *types.GetObjectAttributesParts
+
+ // The size of the object in bytes.
+ ObjectSize int64
+
+ // If present, indicates that the requester was successfully charged for the
+ // request.
+ RequestCharged types.RequestCharged
+
+ // Provides the storage class information of the object. Amazon S3 returns this
+ // header for all objects except for S3 Standard storage class objects. For more
+ // information, see Storage Classes
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html).
+ StorageClass types.StorageClass
+
+ // The version ID of the object.
+ VersionId *string
+
+ // Metadata pertaining to the operation's result.
+ ResultMetadata middleware.Metadata
+
+ noSmithyDocumentSerde
+}
+
+func (c *Client) addOperationGetObjectAttributesMiddlewares(stack *middleware.Stack, options Options) (err error) {
+ err = stack.Serialize.Add(&awsRestxml_serializeOpGetObjectAttributes{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ err = stack.Deserialize.Add(&awsRestxml_deserializeOpGetObjectAttributes{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ if err = addSetLoggerMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResolveEndpointMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
+ return err
+ }
+ if err = addRetryMiddlewares(stack, options); err != nil {
+ return err
+ }
+ if err = addHTTPSignerV4Middleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
+ return err
+ }
+ if err = addClientUserAgent(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = addOpGetObjectAttributesValidationMiddleware(stack); err != nil {
+ return err
+ }
+ if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetObjectAttributes(options.Region), middleware.Before); err != nil {
+ return err
+ }
+ if err = addMetadataRetrieverMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addGetObjectAttributesUpdateEndpoint(stack, options); err != nil {
+ return err
+ }
+ if err = addResponseErrorMiddleware(stack); err != nil {
+ return err
+ }
+ if err = v4.AddContentSHA256HeaderMiddleware(stack); err != nil {
+ return err
+ }
+ if err = disableAcceptEncodingGzip(stack); err != nil {
+ return err
+ }
+ if err = addRequestResponseLogging(stack, options); err != nil {
+ return err
+ }
+ return nil
+}
+
+func newServiceMetadataMiddleware_opGetObjectAttributes(region string) *awsmiddleware.RegisterServiceMetadata {
+ return &awsmiddleware.RegisterServiceMetadata{
+ Region: region,
+ ServiceID: ServiceID,
+ SigningName: "s3",
+ OperationName: "GetObjectAttributes",
+ }
+}
+
+// getGetObjectAttributesBucketMember returns a pointer to string denoting a
+// provided bucket member valueand a boolean indicating if the input has a modeled
+// bucket name,
+func getGetObjectAttributesBucketMember(input interface{}) (*string, bool) {
+ in := input.(*GetObjectAttributesInput)
+ if in.Bucket == nil {
+ return nil, false
+ }
+ return in.Bucket, true
+}
+func addGetObjectAttributesUpdateEndpoint(stack *middleware.Stack, options Options) error {
+ return s3cust.UpdateEndpoint(stack, s3cust.UpdateEndpointOptions{
+ Accessor: s3cust.UpdateEndpointParameterAccessor{
+ GetBucketFromInput: getGetObjectAttributesBucketMember,
+ },
+ UsePathStyle: options.UsePathStyle,
+ UseAccelerate: options.UseAccelerate,
+ SupportsAccelerate: true,
+ TargetS3ObjectLambda: false,
+ EndpointResolver: options.EndpointResolver,
+ EndpointResolverOptions: options.EndpointOptions,
+ UseARNRegion: options.UseARNRegion,
+ DisableMultiRegionAccessPoints: options.DisableMultiRegionAccessPoints,
+ })
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLegalHold.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLegalHold.go
index 75a6cfb..a2446ac 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLegalHold.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLegalHold.go
@@ -12,9 +12,13 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Gets an object's current Legal Hold status. For more information, see Locking
+// Gets an object's current legal hold status. For more information, see Locking
// Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). This
-// action is not supported by Amazon S3 on Outposts.
+// action is not supported by Amazon S3 on Outposts. The following action is
+// related to GetObjectLegalHold:
+//
+// * GetObjectAttributes
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)
func (c *Client) GetObjectLegalHold(ctx context.Context, params *GetObjectLegalHoldInput, optFns ...func(*Options)) (*GetObjectLegalHoldOutput, error) {
if params == nil {
params = &GetObjectLegalHoldInput{}
@@ -32,7 +36,7 @@ func (c *Client) GetObjectLegalHold(ctx context.Context, params *GetObjectLegalH
type GetObjectLegalHoldInput struct {
- // The bucket name containing the object whose Legal Hold status you want to
+ // The bucket name containing the object whose legal hold status you want to
// retrieve. When using this action with an access point, you must direct requests
// to the access point hostname. The access point hostname takes the form
// AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
@@ -45,24 +49,25 @@ type GetObjectLegalHoldInput struct {
// This member is required.
Bucket *string
- // The key name for the object whose Legal Hold status you want to retrieve.
+ // The key name for the object whose legal hold status you want to retrieve.
//
// This member is required.
Key *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
- // The version ID of the object whose Legal Hold status you want to retrieve.
+ // The version ID of the object whose legal hold status you want to retrieve.
VersionId *string
noSmithyDocumentSerde
@@ -70,7 +75,7 @@ type GetObjectLegalHoldInput struct {
type GetObjectLegalHoldOutput struct {
- // The current Legal Hold status for the specified object.
+ // The current legal hold status for the specified object.
LegalHold *types.ObjectLockLegalHold
// Metadata pertaining to the operation's result.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLockConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLockConfiguration.go
index 34f4a62..91793c1 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLockConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLockConfiguration.go
@@ -15,7 +15,12 @@ import (
// Gets the Object Lock configuration for a bucket. The rule specified in the
// Object Lock configuration will be applied by default to every new object placed
// in the specified bucket. For more information, see Locking Objects
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html).
+// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). The
+// following action is related to GetObjectLockConfiguration:
+//
+// *
+// GetObjectAttributes
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)
func (c *Client) GetObjectLockConfiguration(ctx context.Context, params *GetObjectLockConfigurationInput, optFns ...func(*Options)) (*GetObjectLockConfigurationOutput, error) {
if params == nil {
params = &GetObjectLockConfigurationInput{}
@@ -47,7 +52,8 @@ type GetObjectLockConfigurationInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectRetention.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectRetention.go
index 7c23c79..33fc048 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectRetention.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectRetention.go
@@ -14,7 +14,11 @@ import (
// Retrieves an object's retention settings. For more information, see Locking
// Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). This
-// action is not supported by Amazon S3 on Outposts.
+// action is not supported by Amazon S3 on Outposts. The following action is
+// related to GetObjectRetention:
+//
+// * GetObjectAttributes
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)
func (c *Client) GetObjectRetention(ctx context.Context, params *GetObjectRetentionInput, optFns ...func(*Options)) (*GetObjectRetentionOutput, error) {
if params == nil {
params = &GetObjectRetentionInput{}
@@ -51,13 +55,14 @@ type GetObjectRetentionInput struct {
Key *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTagging.go
index bad7636..cec5210 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTagging.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTagging.go
@@ -22,14 +22,18 @@ import (
// permission and can grant this permission to others. For information about the
// Amazon S3 object tagging feature, see Object Tagging
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). The
-// following action is related to GetObjectTagging:
+// following actions are related to GetObjectTagging:
//
-// * PutObjectTagging
-// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)
+// * DeleteObjectTagging
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html)
//
// *
-// DeleteObjectTagging
-// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html)
+// GetObjectAttributes
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)
+//
+// *
+// PutObjectTagging
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)
func (c *Client) GetObjectTagging(ctx context.Context, params *GetObjectTaggingInput, optFns ...func(*Options)) (*GetObjectTaggingOutput, error) {
if params == nil {
params = &GetObjectTaggingInput{}
@@ -59,9 +63,9 @@ type GetObjectTaggingInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -74,13 +78,14 @@ type GetObjectTaggingInput struct {
Key *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTorrent.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTorrent.go
index a8c7cdd..fa71442 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTorrent.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTorrent.go
@@ -53,13 +53,14 @@ type GetObjectTorrentInput struct {
Key *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetPublicAccessBlock.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetPublicAccessBlock.go
index 16b957a..eb42c7d 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetPublicAccessBlock.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetPublicAccessBlock.go
@@ -66,7 +66,8 @@ type GetPublicAccessBlockInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadBucket.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadBucket.go
index 1623e34..7344f20 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadBucket.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadBucket.go
@@ -66,9 +66,9 @@ type HeadBucketInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -76,7 +76,8 @@ type HeadBucketInput struct {
Bucket *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadObject.go
index 875c5cc..1e745a7 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadObject.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadObject.go
@@ -97,10 +97,14 @@ import (
// Amazon S3 returns an HTTP status code 403 ("access denied") error.
//
// The
-// following action is related to HeadObject:
+// following actions are related to HeadObject:
//
// * GetObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+//
+// *
+// GetObjectAttributes
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)
func (c *Client) HeadObject(ctx context.Context, params *HeadObjectInput, optFns ...func(*Options)) (*HeadObjectOutput, error) {
if params == nil {
params = &HeadObjectInput{}
@@ -130,9 +134,9 @@ type HeadObjectInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -144,24 +148,31 @@ type HeadObjectInput struct {
// This member is required.
Key *string
+ // To retrieve the checksum, this parameter must be enabled. In addition, if you
+ // enable ChecksumMode and the object is encrypted with Amazon Web Services Key
+ // Management Service (Amazon Web Services KMS), you must have permission to use
+ // the kms:Decrypt action for the request to succeed.
+ ChecksumMode types.ChecksumMode
+
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Return the object only if its entity tag (ETag) is the same as the one
- // specified, otherwise return a 412 (precondition failed).
+ // specified; otherwise, return a 412 (precondition failed) error.
IfMatch *string
- // Return the object only if it has been modified since the specified time,
- // otherwise return a 304 (not modified).
+ // Return the object only if it has been modified since the specified time;
+ // otherwise, return a 304 (not modified) error.
IfModifiedSince *time.Time
// Return the object only if its entity tag (ETag) is different from the one
- // specified, otherwise return a 304 (not modified).
+ // specified; otherwise, return a 304 (not modified) error.
IfNoneMatch *string
- // Return the object only if it has not been modified since the specified time,
- // otherwise return a 412 (precondition failed).
+ // Return the object only if it has not been modified since the specified time;
+ // otherwise, return a 412 (precondition failed) error.
IfUnmodifiedSince *time.Time
// Part number of the object being read. This is a positive integer between 1 and
@@ -170,17 +181,14 @@ type HeadObjectInput struct {
// object.
PartNumber int32
- // Downloads the specified range bytes of an object. For more information about the
- // HTTP Range header, see
- // http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
- // (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35). Amazon S3
- // doesn't support retrieving multiple ranges of data per GET request.
+ // Because HeadObject returns only the metadata for an object, this parameter has
+ // no effect.
Range *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
@@ -222,6 +230,38 @@ type HeadObjectOutput struct {
// Specifies caching behavior along the request/reply chain.
CacheControl *string
+ // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// Specifies presentational information for the object.
ContentDisposition *string
@@ -243,14 +283,14 @@ type HeadObjectOutput struct {
// Marker. If false, this response header does not appear in the response.
DeleteMarker bool
- // An ETag is an opaque identifier assigned by a web server to a specific version
- // of a resource found at a URL.
+ // An entity tag (ETag) is an opaque identifier assigned by a web server to a
+ // specific version of a resource found at a URL.
ETag *string
// If the object expiration is configured (see PUT Bucket lifecycle), the response
// includes this header. It includes the expiry-date and rule-id key-value pairs
- // providing object expiration information. The value of the rule-id is URL
- // encoded.
+ // providing object expiration information. The value of the rule-id is
+ // URL-encoded.
Expiration *string
// The date and time at which the object is no longer cacheable.
@@ -287,7 +327,8 @@ type HeadObjectOutput struct {
// only returned if the requester has the s3:GetObjectRetention permission.
ObjectLockRetainUntilDate *time.Time
- // The count of parts this object has.
+ // The count of parts this object has. This value is only returned if you specify
+ // partNumber in your request and the object was uploaded as a multipart upload.
PartsCount int32
// Amazon S3 can return this header if your request involves a bucket that is
@@ -298,7 +339,7 @@ type HeadObjectOutput struct {
// return the x-amz-replication-status header in the response as follows:
//
// * If
- // requesting an object from the source bucket — Amazon S3 will return the
+ // requesting an object from the source bucket, Amazon S3 will return the
// x-amz-replication-status header if the object in your request is eligible for
// replication. For example, suppose that in your replication configuration, you
// specify object prefix TaxDocs requesting Amazon S3 to replicate objects with key
@@ -308,13 +349,13 @@ type HeadObjectOutput struct {
// with value PENDING, COMPLETED or FAILED indicating object replication status.
//
// *
- // If requesting an object from a destination bucket — Amazon S3 will return the
+ // If requesting an object from a destination bucket, Amazon S3 will return the
// x-amz-replication-status header with value REPLICA if the object in your request
// is a replica that Amazon S3 created and there is no replica modification
// replication in progress.
//
// * When replicating objects to multiple destination
- // buckets the x-amz-replication-status header acts differently. The header of the
+ // buckets, the x-amz-replication-status header acts differently. The header of the
// source object will only return a value of COMPLETED when replication is
// successful to all destinations. The header will remain at value PENDING until
// replication has completed for all destinations. If one or more destinations
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketAnalyticsConfigurations.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketAnalyticsConfigurations.go
index e2b24a9..0a0373f 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketAnalyticsConfigurations.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketAnalyticsConfigurations.go
@@ -71,7 +71,8 @@ type ListBucketAnalyticsConfigurationsInput struct {
ContinuationToken *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketIntelligentTieringConfigurations.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketIntelligentTieringConfigurations.go
index 9309e61..972a69c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketIntelligentTieringConfigurations.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketIntelligentTieringConfigurations.go
@@ -16,16 +16,16 @@ import (
// Intelligent-Tiering storage class is designed to optimize storage costs by
// automatically moving data to the most cost-effective storage access tier,
// without performance impact or operational overhead. S3 Intelligent-Tiering
-// delivers automatic cost savings in two low latency and high throughput access
-// tiers. For data that can be accessed asynchronously, you can choose to activate
-// automatic archiving capabilities within the S3 Intelligent-Tiering storage
-// class. The S3 Intelligent-Tiering storage class is the ideal storage class for
-// data with unknown, changing, or unpredictable access patterns, independent of
-// object size or retention period. If the size of an object is less than 128 KB,
-// it is not eligible for auto-tiering. Smaller objects can be stored, but they are
-// always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering
-// storage class. For more information, see Storage class for automatically
-// optimizing frequently and infrequently accessed objects
+// delivers automatic cost savings in three low latency and high throughput access
+// tiers. To get the lowest storage cost on data that can be accessed in minutes to
+// hours, you can choose to activate additional archiving capabilities. The S3
+// Intelligent-Tiering storage class is the ideal storage class for data with
+// unknown, changing, or unpredictable access patterns, independent of object size
+// or retention period. If the size of an object is less than 128 KB, it is not
+// monitored and not eligible for auto-tiering. Smaller objects can be stored, but
+// they are always charged at the Frequent Access tier rates in the S3
+// Intelligent-Tiering storage class. For more information, see Storage class for
+// automatically optimizing frequently and infrequently accessed objects
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access).
// Operations related to ListBucketIntelligentTieringConfigurations include:
//
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketInventoryConfigurations.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketInventoryConfigurations.go
index 8dc3215..e6c8c79 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketInventoryConfigurations.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketInventoryConfigurations.go
@@ -72,7 +72,8 @@ type ListBucketInventoryConfigurationsInput struct {
ContinuationToken *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketMetricsConfigurations.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketMetricsConfigurations.go
index fdd7309..50b207a 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketMetricsConfigurations.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketMetricsConfigurations.go
@@ -74,7 +74,8 @@ type ListBucketMetricsConfigurationsInput struct {
ContinuationToken *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBuckets.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBuckets.go
index 54abd9f..7a3de38 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBuckets.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBuckets.go
@@ -13,6 +13,7 @@ import (
)
// Returns a list of all buckets owned by the authenticated sender of the request.
+// To use this operation, you must have the s3:ListAllMyBuckets permission.
func (c *Client) ListBuckets(ctx context.Context, params *ListBucketsInput, optFns ...func(*Options)) (*ListBucketsOutput, error) {
if params == nil {
params = &ListBucketsInput{}
@@ -34,7 +35,7 @@ type ListBucketsInput struct {
type ListBucketsOutput struct {
- // The list of buckets owned by the requestor.
+ // The list of buckets owned by the requester.
Buckets []types.Bucket
// The owner of the buckets listed.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListMultipartUploads.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListMultipartUploads.go
index 9fff728..af281a2 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListMultipartUploads.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListMultipartUploads.go
@@ -81,9 +81,9 @@ type ListMultipartUploadsInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -107,7 +107,8 @@ type ListMultipartUploadsInput struct {
EncodingType types.EncodingType
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Together with upload-id-marker, this parameter specifies the multipart upload
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectVersions.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectVersions.go
index 0013ad0..f2d2b9f 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectVersions.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectVersions.go
@@ -74,7 +74,8 @@ type ListObjectVersionsInput struct {
EncodingType types.EncodingType
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Specifies the key to start with when listing objects in a bucket.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjects.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjects.go
index 37a467e..b2d83ff 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjects.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjects.go
@@ -70,9 +70,9 @@ type ListObjectsInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -91,7 +91,8 @@ type ListObjectsInput struct {
EncodingType types.EncodingType
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Marker is where you want Amazon S3 to start listing from. Amazon S3 starts
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectsV2.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectsV2.go
index 3ebfee5..6214d24 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectsV2.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectsV2.go
@@ -76,9 +76,9 @@ type ListObjectsV2Input struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -96,7 +96,8 @@ type ListObjectsV2Input struct {
EncodingType types.EncodingType
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// The owner field is not present in listV2 by default, if you want to return owner
@@ -181,9 +182,9 @@ type ListObjectsV2Output struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
Name *string
@@ -329,12 +330,13 @@ func NewListObjectsV2Paginator(client ListObjectsV2APIClient, params *ListObject
client: client,
params: params,
firstPage: true,
+ nextToken: params.ContinuationToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListObjectsV2Paginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListObjectsV2 page.
@@ -360,7 +362,10 @@ func (p *ListObjectsV2Paginator) NextPage(ctx context.Context, optFns ...func(*O
p.nextToken = result.NextContinuationToken
}
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListParts.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListParts.go
index 6e0df29..36675dc 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListParts.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListParts.go
@@ -24,8 +24,10 @@ import (
// more than 1,000 parts, the response returns an IsTruncated field with the value
// of true, and a NextPartNumberMarker element. In subsequent ListParts requests
// you can include the part-number-marker query string parameter and set its value
-// to the NextPartNumberMarker field value from the previous response. For more
-// information on multipart uploads, see Uploading Objects Using Multipart Upload
+// to the NextPartNumberMarker field value from the previous response. If the
+// upload was created using a checksum algorithm, you will need to have permission
+// to the kms:Decrypt action for the request to succeed. For more information on
+// multipart uploads, see Uploading Objects Using Multipart Upload
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). For
// information on permissions required to use the multipart upload API, see
// Multipart Upload and Permissions
@@ -48,6 +50,10 @@ import (
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
//
// *
+// GetObjectAttributes
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)
+//
+// *
// ListMultipartUploads
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)
func (c *Client) ListParts(ctx context.Context, params *ListPartsInput, optFns ...func(*Options)) (*ListPartsOutput, error) {
@@ -79,9 +85,9 @@ type ListPartsInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -99,7 +105,8 @@ type ListPartsInput struct {
UploadId *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Sets the maximum number of parts to return.
@@ -111,12 +118,33 @@ type ListPartsInput struct {
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
+ // The server-side encryption (SSE) algorithm used to encrypt the object. This
+ // parameter is needed only when the object was created using a checksum algorithm.
+ // For more information, see Protecting data using SSE-C keys
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+ // in the Amazon S3 User Guide.
+ SSECustomerAlgorithm *string
+
+ // The server-side encryption (SSE) customer managed key. This parameter is needed
+ // only when the object was created using a checksum algorithm. For more
+ // information, see Protecting data using SSE-C keys
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+ // in the Amazon S3 User Guide.
+ SSECustomerKey *string
+
+ // The MD5 server-side encryption (SSE) customer managed key. This parameter is
+ // needed only when the object was created using a checksum algorithm. For more
+ // information, see Protecting data using SSE-C keys
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+ // in the Amazon S3 User Guide.
+ SSECustomerKeyMD5 *string
+
noSmithyDocumentSerde
}
@@ -142,6 +170,9 @@ type ListPartsOutput struct {
// return the access point ARN or access point alias if used.
Bucket *string
+ // The algorithm that was used to create a checksum of the object.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// Container element that identifies who initiated the multipart upload. If the
// initiator is an Amazon Web Services account, this element provides the same
// information as the Owner element. If the initiator is an IAM User, this element
@@ -316,12 +347,13 @@ func NewListPartsPaginator(client ListPartsAPIClient, params *ListPartsInput, op
client: client,
params: params,
firstPage: true,
+ nextToken: params.PartNumberMarker,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListPartsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListParts page.
@@ -347,7 +379,10 @@ func (p *ListPartsPaginator) NextPage(ctx context.Context, optFns ...func(*Optio
p.nextToken = result.NextPartNumberMarker
}
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAccelerateConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAccelerateConfiguration.go
index d8da696..7875798 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAccelerateConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAccelerateConfiguration.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -76,8 +77,20 @@ type PutBucketAccelerateConfigurationInput struct {
// This member is required.
Bucket *string
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -147,6 +160,9 @@ func (c *Client) addOperationPutBucketAccelerateConfigurationMiddlewares(stack *
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketAccelerateConfigurationInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketAccelerateConfigurationUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -174,6 +190,26 @@ func newServiceMetadataMiddleware_opPutBucketAccelerateConfiguration(region stri
}
}
+// getPutBucketAccelerateConfigurationRequestAlgorithmMember gets the request
+// checksum algorithm value provided as input.
+func getPutBucketAccelerateConfigurationRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketAccelerateConfigurationInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketAccelerateConfigurationInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketAccelerateConfigurationRequestAlgorithmMember,
+ RequireChecksum: false,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketAccelerateConfigurationBucketMember returns a pointer to string
// denoting a provided bucket member valueand a boolean indicating if the input has
// a modeled bucket name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAcl.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAcl.go
index 8f619e8..0f669d2 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAcl.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAcl.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -28,15 +29,22 @@ import (
// application needs, you may choose to set the ACL on a bucket using either the
// request body or the headers. For example, if you have an existing application
// that updates a bucket ACL using the request body, then you can continue to use
-// that approach. Access Permissions You can set access permissions using one of
-// the following methods:
+// that approach. If your bucket uses the bucket owner enforced setting for S3
+// Object Ownership, ACLs are disabled and no longer affect permissions. You must
+// use policies to grant access to your bucket and the objects in it. Requests to
+// set ACLs or update ACLs fail and return the AccessControlListNotSupported error
+// code. Requests to read ACLs are still supported. For more information, see
+// Controlling object ownership
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
+// in the Amazon S3 User Guide. Access Permissions You can set access permissions
+// using one of the following methods:
//
-// * Specify a canned ACL with the x-amz-acl request
-// header. Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each
-// canned ACL has a predefined set of grantees and permissions. Specify the canned
-// ACL name as the value of x-amz-acl. If you use this header, you cannot use other
-// access control-specific headers in your request. For more information, see
-// Canned ACL
+// * Specify a canned ACL with the x-amz-acl
+// request header. Amazon S3 supports a set of predefined ACLs, known as canned
+// ACLs. Each canned ACL has a predefined set of grantees and permissions. Specify
+// the canned ACL name as the value of x-amz-acl. If you use this header, you
+// cannot use other access control-specific headers in your request. For more
+// information, see Canned ACL
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL).
//
// *
@@ -174,6 +182,17 @@ type PutBucketAclInput struct {
// Contains the elements that set the ACL permissions for an object per grantee.
AccessControlPolicy *types.AccessControlPolicy
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The base64-encoded 128-bit MD5 digest of the data. This header must be used as a
// message integrity check to verify that the request body was not corrupted in
// transit. For more information, go to RFC 1864.
@@ -183,7 +202,8 @@ type PutBucketAclInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Allows grantee the read, write, read ACP, and write ACP permissions on the
@@ -262,9 +282,6 @@ func (c *Client) addOperationPutBucketAclMiddlewares(stack *middleware.Stack, op
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketAclValidationMiddleware(stack); err != nil {
return err
}
@@ -274,6 +291,9 @@ func (c *Client) addOperationPutBucketAclMiddlewares(stack *middleware.Stack, op
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketAclInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketAclUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -301,6 +321,26 @@ func newServiceMetadataMiddleware_opPutBucketAcl(region string) *awsmiddleware.R
}
}
+// getPutBucketAclRequestAlgorithmMember gets the request checksum algorithm value
+// provided as input.
+func getPutBucketAclRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketAclInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketAclInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketAclRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketAclBucketMember returns a pointer to string denoting a provided
// bucket member valueand a boolean indicating if the input has a modeled bucket
// name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAnalyticsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAnalyticsConfiguration.go
index dc78a41..45cec74 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAnalyticsConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAnalyticsConfiguration.go
@@ -109,7 +109,8 @@ type PutBucketAnalyticsConfigurationInput struct {
Id *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketCors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketCors.go
index 038d979..55a67f1 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketCors.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketCors.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -84,6 +85,17 @@ type PutBucketCorsInput struct {
// This member is required.
CORSConfiguration *types.CORSConfiguration
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The base64-encoded 128-bit MD5 digest of the data. This header must be used as a
// message integrity check to verify that the request body was not corrupted in
// transit. For more information, go to RFC 1864.
@@ -93,7 +105,8 @@ type PutBucketCorsInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -154,9 +167,6 @@ func (c *Client) addOperationPutBucketCorsMiddlewares(stack *middleware.Stack, o
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketCorsValidationMiddleware(stack); err != nil {
return err
}
@@ -166,6 +176,9 @@ func (c *Client) addOperationPutBucketCorsMiddlewares(stack *middleware.Stack, o
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketCorsInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketCorsUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -193,6 +206,26 @@ func newServiceMetadataMiddleware_opPutBucketCors(region string) *awsmiddleware.
}
}
+// getPutBucketCorsRequestAlgorithmMember gets the request checksum algorithm value
+// provided as input.
+func getPutBucketCorsRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketCorsInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketCorsInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketCorsRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketCorsBucketMember returns a pointer to string denoting a provided
// bucket member valueand a boolean indicating if the input has a modeled bucket
// name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketEncryption.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketEncryption.go
index 7e6006b..184f0cd 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketEncryption.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketEncryption.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -16,8 +17,11 @@ import (
// Amazon S3 Bucket Key for an existing bucket. Default encryption for a bucket can
// use server-side encryption with Amazon S3-managed keys (SSE-S3) or customer
// managed keys (SSE-KMS). If you specify default encryption using SSE-KMS, you can
-// also configure Amazon S3 Bucket Key. For information about default encryption,
-// see Amazon S3 default bucket encryption
+// also configure Amazon S3 Bucket Key. When the default encryption is SSE-KMS, if
+// you upload an object to the bucket and do not specify the KMS key to use for
+// encryption, Amazon S3 uses the default Amazon Web Services managed KMS key for
+// your account. For information about default encryption, see Amazon S3 default
+// bucket encryption
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the
// Amazon S3 User Guide. For more information about S3 Bucket Keys, see Amazon S3
// Bucket Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in
@@ -73,6 +77,17 @@ type PutBucketEncryptionInput struct {
// This member is required.
ServerSideEncryptionConfiguration *types.ServerSideEncryptionConfiguration
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The base64-encoded 128-bit MD5 digest of the server-side encryption
// configuration. For requests made using the Amazon Web Services Command Line
// Interface (CLI) or Amazon Web Services SDKs, this field is calculated
@@ -80,7 +95,8 @@ type PutBucketEncryptionInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -141,9 +157,6 @@ func (c *Client) addOperationPutBucketEncryptionMiddlewares(stack *middleware.St
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketEncryptionValidationMiddleware(stack); err != nil {
return err
}
@@ -153,6 +166,9 @@ func (c *Client) addOperationPutBucketEncryptionMiddlewares(stack *middleware.St
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketEncryptionInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketEncryptionUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -180,6 +196,26 @@ func newServiceMetadataMiddleware_opPutBucketEncryption(region string) *awsmiddl
}
}
+// getPutBucketEncryptionRequestAlgorithmMember gets the request checksum algorithm
+// value provided as input.
+func getPutBucketEncryptionRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketEncryptionInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketEncryptionInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketEncryptionRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketEncryptionBucketMember returns a pointer to string denoting a
// provided bucket member valueand a boolean indicating if the input has a modeled
// bucket name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketIntelligentTieringConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketIntelligentTieringConfiguration.go
index 4ae3a81..edf5d17 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketIntelligentTieringConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketIntelligentTieringConfiguration.go
@@ -17,16 +17,16 @@ import (
// Intelligent-Tiering storage class is designed to optimize storage costs by
// automatically moving data to the most cost-effective storage access tier,
// without performance impact or operational overhead. S3 Intelligent-Tiering
-// delivers automatic cost savings in two low latency and high throughput access
-// tiers. For data that can be accessed asynchronously, you can choose to activate
-// automatic archiving capabilities within the S3 Intelligent-Tiering storage
-// class. The S3 Intelligent-Tiering storage class is the ideal storage class for
-// data with unknown, changing, or unpredictable access patterns, independent of
-// object size or retention period. If the size of an object is less than 128 KB,
-// it is not eligible for auto-tiering. Smaller objects can be stored, but they are
-// always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering
-// storage class. For more information, see Storage class for automatically
-// optimizing frequently and infrequently accessed objects
+// delivers automatic cost savings in three low latency and high throughput access
+// tiers. To get the lowest storage cost on data that can be accessed in minutes to
+// hours, you can choose to activate additional archiving capabilities. The S3
+// Intelligent-Tiering storage class is the ideal storage class for data with
+// unknown, changing, or unpredictable access patterns, independent of object size
+// or retention period. If the size of an object is less than 128 KB, it is not
+// monitored and not eligible for auto-tiering. Smaller objects can be stored, but
+// they are always charged at the Frequent Access tier rates in the S3
+// Intelligent-Tiering storage class. For more information, see Storage class for
+// automatically optimizing frequently and infrequently accessed objects
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access).
// Operations related to PutBucketIntelligentTieringConfiguration include:
//
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketInventoryConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketInventoryConfiguration.go
index 239235c..afca60b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketInventoryConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketInventoryConfiguration.go
@@ -110,7 +110,8 @@ type PutBucketInventoryConfigurationInput struct {
InventoryConfiguration *types.InventoryConfiguration
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLifecycleConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLifecycleConfiguration.go
index 13c5955..ca79b24 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLifecycleConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLifecycleConfiguration.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -13,8 +14,10 @@ import (
)
// Creates a new lifecycle configuration for the bucket or replaces an existing
-// lifecycle configuration. For information about lifecycle configuration, see
-// Managing your storage lifecycle
+// lifecycle configuration. Keep in mind that this will overwrite an existing
+// lifecycle configuration, so if you want to retain any configuration details,
+// they must be included in the new lifecycle configuration. For information about
+// lifecycle configuration, see Managing your storage lifecycle
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html).
// Bucket lifecycle configuration now supports specifying a lifecycle rule using an
// object key name prefix, one or more object tags, or a combination of both.
@@ -24,24 +27,26 @@ import (
// PutBucketLifecycle
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html).
// Rules You specify the lifecycle configuration in your request body. The
-// lifecycle configuration is specified as XML consisting of one or more rules.
-// Each rule consists of the following:
+// lifecycle configuration is specified as XML consisting of one or more rules. An
+// Amazon S3 Lifecycle configuration can have up to 1,000 rules. This limit is not
+// adjustable. Each rule consists of the following:
//
-// * Filter identifying a subset of objects
-// to which the rule applies. The filter can be based on a key name prefix, object
-// tags, or a combination of both.
+// * Filter identifying a subset
+// of objects to which the rule applies. The filter can be based on a key name
+// prefix, object tags, or a combination of both.
//
-// * Status whether the rule is in effect.
+// * Status whether the rule is in
+// effect.
//
-// * One
-// or more lifecycle transition and expiration actions that you want Amazon S3 to
-// perform on the objects identified by the filter. If the state of your bucket is
-// versioning-enabled or versioning-suspended, you can have many versions of the
-// same object (one current version and zero or more noncurrent versions). Amazon
-// S3 provides predefined actions that you can specify for current and noncurrent
-// object versions.
+// * One or more lifecycle transition and expiration actions that you want
+// Amazon S3 to perform on the objects identified by the filter. If the state of
+// your bucket is versioning-enabled or versioning-suspended, you can have many
+// versions of the same object (one current version and zero or more noncurrent
+// versions). Amazon S3 provides predefined actions that you can specify for
+// current and noncurrent object versions.
//
-// For more information, see Object Lifecycle Management
+// For more information, see Object
+// Lifecycle Management
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) and
// Lifecycle Configuration Elements
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html).
@@ -101,8 +106,20 @@ type PutBucketLifecycleConfigurationInput struct {
// This member is required.
Bucket *string
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Container for lifecycle rules. You can add as many as 1,000 rules.
@@ -166,9 +183,6 @@ func (c *Client) addOperationPutBucketLifecycleConfigurationMiddlewares(stack *m
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketLifecycleConfigurationValidationMiddleware(stack); err != nil {
return err
}
@@ -178,6 +192,9 @@ func (c *Client) addOperationPutBucketLifecycleConfigurationMiddlewares(stack *m
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketLifecycleConfigurationInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketLifecycleConfigurationUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -205,6 +222,26 @@ func newServiceMetadataMiddleware_opPutBucketLifecycleConfiguration(region strin
}
}
+// getPutBucketLifecycleConfigurationRequestAlgorithmMember gets the request
+// checksum algorithm value provided as input.
+func getPutBucketLifecycleConfigurationRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketLifecycleConfigurationInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketLifecycleConfigurationInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketLifecycleConfigurationRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketLifecycleConfigurationBucketMember returns a pointer to string
// denoting a provided bucket member valueand a boolean indicating if the input has
// a modeled bucket name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLogging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLogging.go
index b4f2f00..0f3ea6d 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLogging.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLogging.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -18,16 +19,22 @@ import (
// of a bucket, you must be the bucket owner. The bucket owner is automatically
// granted FULL_CONTROL to all logs. You use the Grantee request element to grant
// access to other people. The Permissions request element specifies the kind of
-// access the grantee has to the logs. Grantee Values You can specify the person
-// (grantee) to whom you're assigning access rights (using request elements) in the
-// following ways:
+// access the grantee has to the logs. If the target bucket for log delivery uses
+// the bucket owner enforced setting for S3 Object Ownership, you can't use the
+// Grantee request element to grant access to others. Permissions can only be
+// granted using policies. For more information, see Permissions for server access
+// log delivery
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general)
+// in the Amazon S3 User Guide. Grantee Values You can specify the person (grantee)
+// to whom you're assigning access rights (using request elements) in the following
+// ways:
//
-// * By the person's ID: <>ID<><>GranteesEmail<> DisplayName is
-// optional and ignored in the request.
+// * By the person's ID: <>ID<><>GranteesEmail<> DisplayName is optional
+// and ignored in the request.
//
-// * By Email address:
-// <>Grantees@email.com<> The grantee is resolved to the CanonicalUser and, in a
-// response to a GET Object acl request, appears as the CanonicalUser.
+// * By Email address: <>Grantees@email.com<> The
+// grantee is resolved to the CanonicalUser and, in a response to a GET Object acl
+// request, appears as the CanonicalUser.
//
// * By URI:
// <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>
@@ -36,8 +43,9 @@ import (
// logging, you use LoggingEnabled and its children request elements. To disable
// logging, you use an empty BucketLoggingStatus request element: For more
// information about server access logging, see Server Access Logging
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html). For more
-// information about creating a bucket, see CreateBucket
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html) in the
+// Amazon S3 User Guide. For more information about creating a bucket, see
+// CreateBucket
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). For
// more information about returning the logging status of a bucket, see
// GetBucketLogging
@@ -85,13 +93,25 @@ type PutBucketLoggingInput struct {
// This member is required.
BucketLoggingStatus *types.BucketLoggingStatus
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The MD5 hash of the PutBucketLogging request body. For requests made using the
// Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs,
// this field is calculated automatically.
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -152,9 +172,6 @@ func (c *Client) addOperationPutBucketLoggingMiddlewares(stack *middleware.Stack
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketLoggingValidationMiddleware(stack); err != nil {
return err
}
@@ -164,6 +181,9 @@ func (c *Client) addOperationPutBucketLoggingMiddlewares(stack *middleware.Stack
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketLoggingInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketLoggingUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -191,6 +211,26 @@ func newServiceMetadataMiddleware_opPutBucketLogging(region string) *awsmiddlewa
}
}
+// getPutBucketLoggingRequestAlgorithmMember gets the request checksum algorithm
+// value provided as input.
+func getPutBucketLoggingRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketLoggingInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketLoggingInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketLoggingRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketLoggingBucketMember returns a pointer to string denoting a provided
// bucket member valueand a boolean indicating if the input has a modeled bucket
// name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketMetricsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketMetricsConfiguration.go
index d42a6df..6f0c6fa 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketMetricsConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketMetricsConfiguration.go
@@ -84,7 +84,8 @@ type PutBucketMetricsConfigurationInput struct {
MetricsConfiguration *types.MetricsConfiguration
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketNotificationConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketNotificationConfiguration.go
index 6322b10..8e771d6 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketNotificationConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketNotificationConfiguration.go
@@ -31,18 +31,22 @@ import (
// more information, see Configuring Notifications for Amazon S3 Events
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). You
// can disable notifications by adding the empty NotificationConfiguration element.
-// By default, only the bucket owner can configure notifications on a bucket.
-// However, bucket owners can use a bucket policy to grant permission to other
-// users to set this configuration with s3:PutBucketNotification permission. The
-// PUT notification is an atomic operation. For example, suppose your notification
-// configuration includes SNS topic, SQS queue, and Lambda function configurations.
-// When you send a PUT request with this configuration, Amazon S3 sends test
-// messages to your SNS topic. If the message fails, the entire PUT action will
-// fail, and Amazon S3 will not add the configuration to your bucket. Responses If
-// the configuration in the request body includes only one TopicConfiguration
-// specifying only the s3:ReducedRedundancyLostObject event type, the response will
-// also include the x-amz-sns-test-message-id header containing the message ID of
-// the test notification sent to the topic. The following action is related to
+// For more information about the number of event notification configurations that
+// you can create per bucket, see Amazon S3 service quotas
+// (https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3) in Amazon Web
+// Services General Reference. By default, only the bucket owner can configure
+// notifications on a bucket. However, bucket owners can use a bucket policy to
+// grant permission to other users to set this configuration with
+// s3:PutBucketNotification permission. The PUT notification is an atomic
+// operation. For example, suppose your notification configuration includes SNS
+// topic, SQS queue, and Lambda function configurations. When you send a PUT
+// request with this configuration, Amazon S3 sends test messages to your SNS
+// topic. If the message fails, the entire PUT action will fail, and Amazon S3 will
+// not add the configuration to your bucket. Responses If the configuration in the
+// request body includes only one TopicConfiguration specifying only the
+// s3:ReducedRedundancyLostObject event type, the response will also include the
+// x-amz-sns-test-message-id header containing the message ID of the test
+// notification sent to the topic. The following action is related to
// PutBucketNotificationConfiguration:
//
// * GetBucketNotificationConfiguration
@@ -76,9 +80,14 @@ type PutBucketNotificationConfigurationInput struct {
NotificationConfiguration *types.NotificationConfiguration
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
+ // Skips validation of Amazon SQS, Amazon SNS, and Lambda destinations. True or
+ // false value.
+ SkipDestinationValidation bool
+
noSmithyDocumentSerde
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketOwnershipControls.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketOwnershipControls.go
index 394f17d..83210ca 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketOwnershipControls.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketOwnershipControls.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -14,10 +15,10 @@ import (
// Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this
// operation, you must have the s3:PutBucketOwnershipControls permission. For more
-// information about Amazon S3 permissions, see Specifying Permissions in a Policy
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html).
-// For information about Amazon S3 Object Ownership, see Using Object Ownership
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html).
+// information about Amazon S3 permissions, see Specifying permissions in a policy
+// (https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-with-s3-actions.html).
+// For information about Amazon S3 Object Ownership, see Using object ownership
+// (https://docs.aws.amazon.com/AmazonS3/latest/user-guide/about-object-ownership.html).
// The following operations are related to PutBucketOwnershipControls:
//
// *
@@ -46,8 +47,8 @@ type PutBucketOwnershipControlsInput struct {
// This member is required.
Bucket *string
- // The OwnershipControls (BucketOwnerPreferred or ObjectWriter) that you want to
- // apply to this Amazon S3 bucket.
+ // The OwnershipControls (BucketOwnerEnforced, BucketOwnerPreferred, or
+ // ObjectWriter) that you want to apply to this Amazon S3 bucket.
//
// This member is required.
OwnershipControls *types.OwnershipControls
@@ -58,7 +59,8 @@ type PutBucketOwnershipControlsInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -119,9 +121,6 @@ func (c *Client) addOperationPutBucketOwnershipControlsMiddlewares(stack *middle
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketOwnershipControlsValidationMiddleware(stack); err != nil {
return err
}
@@ -131,6 +130,9 @@ func (c *Client) addOperationPutBucketOwnershipControlsMiddlewares(stack *middle
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketOwnershipControlsInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketOwnershipControlsUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -158,6 +160,16 @@ func newServiceMetadataMiddleware_opPutBucketOwnershipControls(region string) *a
}
}
+func addPutBucketOwnershipControlsInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: nil,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketOwnershipControlsBucketMember returns a pointer to string denoting a
// provided bucket member valueand a boolean indicating if the input has a modeled
// bucket name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketPolicy.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketPolicy.go
index 0904599..8860d3b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketPolicy.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketPolicy.go
@@ -6,7 +6,9 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
+ "github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
@@ -58,6 +60,17 @@ type PutBucketPolicyInput struct {
// This member is required.
Policy *string
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// Set this parameter to true to confirm that you want to remove your permissions
// to change this bucket policy in the future.
ConfirmRemoveSelfBucketAccess bool
@@ -68,7 +81,8 @@ type PutBucketPolicyInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -129,9 +143,6 @@ func (c *Client) addOperationPutBucketPolicyMiddlewares(stack *middleware.Stack,
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketPolicyValidationMiddleware(stack); err != nil {
return err
}
@@ -141,6 +152,9 @@ func (c *Client) addOperationPutBucketPolicyMiddlewares(stack *middleware.Stack,
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketPolicyInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketPolicyUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -168,6 +182,26 @@ func newServiceMetadataMiddleware_opPutBucketPolicy(region string) *awsmiddlewar
}
}
+// getPutBucketPolicyRequestAlgorithmMember gets the request checksum algorithm
+// value provided as input.
+func getPutBucketPolicyRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketPolicyInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketPolicyInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketPolicyRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketPolicyBucketMember returns a pointer to string denoting a provided
// bucket member valueand a boolean indicating if the input has a modeled bucket
// name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketReplication.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketReplication.go
index 691c08a..2213373 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketReplication.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketReplication.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -92,6 +93,17 @@ type PutBucketReplicationInput struct {
// This member is required.
ReplicationConfiguration *types.ReplicationConfiguration
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The base64-encoded 128-bit MD5 digest of the data. You must use this header as a
// message integrity check to verify that the request body was not corrupted in
// transit. For more information, see RFC 1864
@@ -101,7 +113,8 @@ type PutBucketReplicationInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// A token to allow Object Lock to be enabled for an existing bucket.
@@ -165,9 +178,6 @@ func (c *Client) addOperationPutBucketReplicationMiddlewares(stack *middleware.S
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketReplicationValidationMiddleware(stack); err != nil {
return err
}
@@ -177,6 +187,9 @@ func (c *Client) addOperationPutBucketReplicationMiddlewares(stack *middleware.S
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketReplicationInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketReplicationUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -204,6 +217,26 @@ func newServiceMetadataMiddleware_opPutBucketReplication(region string) *awsmidd
}
}
+// getPutBucketReplicationRequestAlgorithmMember gets the request checksum
+// algorithm value provided as input.
+func getPutBucketReplicationRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketReplicationInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketReplicationInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketReplicationRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketReplicationBucketMember returns a pointer to string denoting a
// provided bucket member valueand a boolean indicating if the input has a modeled
// bucket name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketRequestPayment.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketRequestPayment.go
index 36f4b5d..c89d97b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketRequestPayment.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketRequestPayment.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -52,6 +53,17 @@ type PutBucketRequestPaymentInput struct {
// This member is required.
RequestPaymentConfiguration *types.RequestPaymentConfiguration
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The base64-encoded 128-bit MD5 digest of the data. You must use this header as a
// message integrity check to verify that the request body was not corrupted in
// transit. For more information, see RFC 1864
@@ -61,7 +73,8 @@ type PutBucketRequestPaymentInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -122,9 +135,6 @@ func (c *Client) addOperationPutBucketRequestPaymentMiddlewares(stack *middlewar
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketRequestPaymentValidationMiddleware(stack); err != nil {
return err
}
@@ -134,6 +144,9 @@ func (c *Client) addOperationPutBucketRequestPaymentMiddlewares(stack *middlewar
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketRequestPaymentInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketRequestPaymentUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -161,6 +174,26 @@ func newServiceMetadataMiddleware_opPutBucketRequestPayment(region string) *awsm
}
}
+// getPutBucketRequestPaymentRequestAlgorithmMember gets the request checksum
+// algorithm value provided as input.
+func getPutBucketRequestPaymentRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketRequestPaymentInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketRequestPaymentInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketRequestPaymentRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketRequestPaymentBucketMember returns a pointer to string denoting a
// provided bucket member valueand a boolean indicating if the input has a modeled
// bucket name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketTagging.go
index 0803795..f410107 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketTagging.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketTagging.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -97,6 +98,17 @@ type PutBucketTaggingInput struct {
// This member is required.
Tagging *types.Tagging
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The base64-encoded 128-bit MD5 digest of the data. You must use this header as a
// message integrity check to verify that the request body was not corrupted in
// transit. For more information, see RFC 1864
@@ -106,7 +118,8 @@ type PutBucketTaggingInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -167,9 +180,6 @@ func (c *Client) addOperationPutBucketTaggingMiddlewares(stack *middleware.Stack
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketTaggingValidationMiddleware(stack); err != nil {
return err
}
@@ -179,6 +189,9 @@ func (c *Client) addOperationPutBucketTaggingMiddlewares(stack *middleware.Stack
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketTaggingInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketTaggingUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -206,6 +219,26 @@ func newServiceMetadataMiddleware_opPutBucketTagging(region string) *awsmiddlewa
}
}
+// getPutBucketTaggingRequestAlgorithmMember gets the request checksum algorithm
+// value provided as input.
+func getPutBucketTaggingRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketTaggingInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketTaggingInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketTaggingRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketTaggingBucketMember returns a pointer to string denoting a provided
// bucket member valueand a boolean indicating if the input has a modeled bucket
// name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketVersioning.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketVersioning.go
index 1f87c2d..6d7943e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketVersioning.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketVersioning.go
@@ -6,30 +6,31 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Sets the versioning state of an existing bucket. To set the versioning state,
-// you must be the bucket owner. You can set the versioning state with one of the
-// following values: Enabled—Enables versioning for the objects in the bucket. All
-// objects added to the bucket receive a unique version ID. Suspended—Disables
-// versioning for the objects in the bucket. All objects added to the bucket
-// receive the version ID null. If the versioning state has never been set on a
-// bucket, it has no versioning state; a GetBucketVersioning
+// Sets the versioning state of an existing bucket. You can set the versioning
+// state with one of the following values: Enabled—Enables versioning for the
+// objects in the bucket. All objects added to the bucket receive a unique version
+// ID. Suspended—Disables versioning for the objects in the bucket. All objects
+// added to the bucket receive the version ID null. If the versioning state has
+// never been set on a bucket, it has no versioning state; a GetBucketVersioning
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html)
-// request does not return a versioning state value. If the bucket owner enables
-// MFA Delete in the bucket versioning configuration, the bucket owner must include
-// the x-amz-mfa request header and the Status and the MfaDelete request elements
-// in a request to set the versioning state of the bucket. If you have an object
-// expiration lifecycle policy in your non-versioned bucket and you want to
-// maintain the same permanent delete behavior when you enable versioning, you must
-// add a noncurrent expiration policy. The noncurrent expiration lifecycle policy
-// will manage the deletes of the noncurrent object versions in the version-enabled
-// bucket. (A version-enabled bucket maintains one current and zero or more
-// noncurrent object versions.) For more information, see Lifecycle and Versioning
+// request does not return a versioning state value. In order to enable MFA Delete,
+// you must be the bucket owner. If you are the bucket owner and want to enable MFA
+// Delete in the bucket versioning configuration, you must include the x-amz-mfa
+// request header and the Status and the MfaDelete request elements in a request to
+// set the versioning state of the bucket. If you have an object expiration
+// lifecycle policy in your non-versioned bucket and you want to maintain the same
+// permanent delete behavior when you enable versioning, you must add a noncurrent
+// expiration policy. The noncurrent expiration lifecycle policy will manage the
+// deletes of the noncurrent object versions in the version-enabled bucket. (A
+// version-enabled bucket maintains one current and zero or more noncurrent object
+// versions.) For more information, see Lifecycle and Versioning
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config).
// Related Resources
//
@@ -70,6 +71,17 @@ type PutBucketVersioningInput struct {
// This member is required.
VersioningConfiguration *types.VersioningConfiguration
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// >The base64-encoded 128-bit MD5 digest of the data. You must use this header as
// a message integrity check to verify that the request body was not corrupted in
// transit. For more information, see RFC 1864
@@ -79,7 +91,8 @@ type PutBucketVersioningInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// The concatenation of the authentication device's serial number, a space, and the
@@ -144,9 +157,6 @@ func (c *Client) addOperationPutBucketVersioningMiddlewares(stack *middleware.St
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketVersioningValidationMiddleware(stack); err != nil {
return err
}
@@ -156,6 +166,9 @@ func (c *Client) addOperationPutBucketVersioningMiddlewares(stack *middleware.St
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketVersioningInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketVersioningUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -183,6 +196,26 @@ func newServiceMetadataMiddleware_opPutBucketVersioning(region string) *awsmiddl
}
}
+// getPutBucketVersioningRequestAlgorithmMember gets the request checksum algorithm
+// value provided as input.
+func getPutBucketVersioningRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketVersioningInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketVersioningInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketVersioningRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketVersioningBucketMember returns a pointer to string denoting a
// provided bucket member valueand a boolean indicating if the input has a modeled
// bucket name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketWebsite.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketWebsite.go
index 0e1db51..11cb4a3 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketWebsite.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketWebsite.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -110,6 +111,17 @@ type PutBucketWebsiteInput struct {
// This member is required.
WebsiteConfiguration *types.WebsiteConfiguration
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The base64-encoded 128-bit MD5 digest of the data. You must use this header as a
// message integrity check to verify that the request body was not corrupted in
// transit. For more information, see RFC 1864
@@ -119,7 +131,8 @@ type PutBucketWebsiteInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -180,9 +193,6 @@ func (c *Client) addOperationPutBucketWebsiteMiddlewares(stack *middleware.Stack
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutBucketWebsiteValidationMiddleware(stack); err != nil {
return err
}
@@ -192,6 +202,9 @@ func (c *Client) addOperationPutBucketWebsiteMiddlewares(stack *middleware.Stack
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutBucketWebsiteInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutBucketWebsiteUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -219,6 +232,26 @@ func newServiceMetadataMiddleware_opPutBucketWebsite(region string) *awsmiddlewa
}
}
+// getPutBucketWebsiteRequestAlgorithmMember gets the request checksum algorithm
+// value provided as input.
+func getPutBucketWebsiteRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutBucketWebsiteInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutBucketWebsiteInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutBucketWebsiteRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutBucketWebsiteBucketMember returns a pointer to string denoting a provided
// bucket member valueand a boolean indicating if the input has a modeled bucket
// name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go
index bbe5277..6433640 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go
@@ -7,6 +7,7 @@ import (
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -60,12 +61,25 @@ import (
// For more information, see Access Control List (ACL) Overview
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) and Managing
// ACLs Using the REST API
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html).
-// Storage Class Options By default, Amazon S3 uses the STANDARD Storage Class to
-// store newly created objects. The STANDARD storage class provides high durability
-// and high availability. Depending on performance needs, you can specify a
-// different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage
-// Class. For more information, see Storage Classes
+// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html). If
+// the bucket that you're uploading objects to uses the bucket owner enforced
+// setting for S3 Object Ownership, ACLs are disabled and no longer affect
+// permissions. Buckets that use this setting only accept PUT requests that don't
+// specify an ACL or PUT requests that specify bucket owner full control ACLs, such
+// as the bucket-owner-full-control canned ACL or an equivalent form of this ACL
+// expressed in the XML format. PUT requests that contain other ACLs (for example,
+// custom grants to certain Amazon Web Services accounts) fail and return a 400
+// error with the error code AccessControlListNotSupported. For more information,
+// see Controlling ownership of objects and disabling ACLs
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
+// in the Amazon S3 User Guide. If your bucket uses the bucket owner enforced
+// setting for Object Ownership, all objects written to the bucket by any account
+// will be owned by the bucket owner. Storage Class Options By default, Amazon S3
+// uses the STANDARD Storage Class to store newly created objects. The STANDARD
+// storage class provides high durability and high availability. Depending on
+// performance needs, you can specify a different Storage Class. Amazon S3 on
+// Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage
+// Classes
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) in
// the Amazon S3 User Guide. Versioning If you enable versioning for a bucket,
// Amazon S3 automatically generates a unique version ID for the object being
@@ -114,9 +128,9 @@ type PutObjectInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -148,6 +162,49 @@ type PutObjectInput struct {
// (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9).
CacheControl *string
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 32-bit CRC32C checksum of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 160-bit SHA-1 digest of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// Specifies presentational information for the object. For more information, see
// http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1
// (http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1).
@@ -184,7 +241,8 @@ type PutObjectInput struct {
ContentType *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// The date and time at which the object is no longer cacheable. For more
@@ -225,8 +283,8 @@ type PutObjectInput struct {
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
@@ -303,6 +361,38 @@ type PutObjectOutput struct {
// encryption with Amazon Web Services KMS (SSE-KMS).
BucketKeyEnabled bool
+ // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// Entity tag for the uploaded object.
ETag *string
@@ -311,7 +401,7 @@ type PutObjectOutput struct {
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)),
// the response includes this header. It includes the expiry-date and rule-id
// key-value pairs that provide information about object expiration. The value of
- // the rule-id is URL encoded.
+ // the rule-id is URL-encoded.
Expiration *string
// If present, indicates that the requester was successfully charged for the
@@ -410,6 +500,9 @@ func (c *Client) addOperationPutObjectMiddlewares(stack *middleware.Stack, optio
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutObjectInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutObjectUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -440,6 +533,26 @@ func newServiceMetadataMiddleware_opPutObject(region string) *awsmiddleware.Regi
}
}
+// getPutObjectRequestAlgorithmMember gets the request checksum algorithm value
+// provided as input.
+func getPutObjectRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutObjectInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutObjectInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutObjectRequestAlgorithmMember,
+ RequireChecksum: false,
+ EnableTrailingChecksum: true,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutObjectBucketMember returns a pointer to string denoting a provided bucket
// member valueand a boolean indicating if the input has a modeled bucket name,
func getPutObjectBucketMember(input interface{}) (*string, bool) {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectAcl.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectAcl.go
index 957aa56..05a377b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectAcl.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectAcl.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -24,15 +25,22 @@ import (
// can continue to use that approach. For more information, see Access Control List
// (ACL) Overview
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) in the
-// Amazon S3 User Guide. Access Permissions You can set access permissions using
-// one of the following methods:
+// Amazon S3 User Guide. If your bucket uses the bucket owner enforced setting for
+// S3 Object Ownership, ACLs are disabled and no longer affect permissions. You
+// must use policies to grant access to your bucket and the objects in it. Requests
+// to set ACLs or update ACLs fail and return the AccessControlListNotSupported
+// error code. Requests to read ACLs are still supported. For more information, see
+// Controlling object ownership
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
+// in the Amazon S3 User Guide. Access Permissions You can set access permissions
+// using one of the following methods:
//
-// * Specify a canned ACL with the x-amz-acl request
-// header. Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each
-// canned ACL has a predefined set of grantees and permissions. Specify the canned
-// ACL name as the value of x-amz-acl. If you use this header, you cannot use other
-// access control-specific headers in your request. For more information, see
-// Canned ACL
+// * Specify a canned ACL with the x-amz-acl
+// request header. Amazon S3 supports a set of predefined ACLs, known as canned
+// ACLs. Each canned ACL has a predefined set of grantees and permissions. Specify
+// the canned ACL name as the value of x-amz-acl. If you use this header, you
+// cannot use other access control-specific headers in your request. For more
+// information, see Canned ACL
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL).
//
// *
@@ -181,9 +189,9 @@ type PutObjectAclInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -197,6 +205,17 @@ type PutObjectAclInput struct {
// Contains the elements that set the ACL permissions for an object per grantee.
AccessControlPolicy *types.AccessControlPolicy
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The base64-encoded 128-bit MD5 digest of the data. This header must be used as a
// message integrity check to verify that the request body was not corrupted in
// transit. For more information, go to RFC 1864.>
@@ -206,7 +225,8 @@ type PutObjectAclInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Allows grantee the read, write, read ACP, and write ACP permissions on the
@@ -232,8 +252,8 @@ type PutObjectAclInput struct {
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
@@ -304,9 +324,6 @@ func (c *Client) addOperationPutObjectAclMiddlewares(stack *middleware.Stack, op
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutObjectAclValidationMiddleware(stack); err != nil {
return err
}
@@ -316,6 +333,9 @@ func (c *Client) addOperationPutObjectAclMiddlewares(stack *middleware.Stack, op
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutObjectAclInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutObjectAclUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -343,6 +363,26 @@ func newServiceMetadataMiddleware_opPutObjectAcl(region string) *awsmiddleware.R
}
}
+// getPutObjectAclRequestAlgorithmMember gets the request checksum algorithm value
+// provided as input.
+func getPutObjectAclRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutObjectAclInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutObjectAclInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutObjectAclRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutObjectAclBucketMember returns a pointer to string denoting a provided
// bucket member valueand a boolean indicating if the input has a modeled bucket
// name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLegalHold.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLegalHold.go
index f7d85b0..b8004b5 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLegalHold.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLegalHold.go
@@ -6,13 +6,14 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Applies a Legal Hold configuration to the specified object. For more
+// Applies a legal hold configuration to the specified object. For more
// information, see Locking Objects
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). This action
// is not supported by Amazon S3 on Outposts.
@@ -33,7 +34,7 @@ func (c *Client) PutObjectLegalHold(ctx context.Context, params *PutObjectLegalH
type PutObjectLegalHoldInput struct {
- // The bucket name containing the object that you want to place a Legal Hold on.
+ // The bucket name containing the object that you want to place a legal hold on.
// When using this action with an access point, you must direct requests to the
// access point hostname. The access point hostname takes the form
// AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
@@ -46,33 +47,45 @@ type PutObjectLegalHoldInput struct {
// This member is required.
Bucket *string
- // The key name for the object that you want to place a Legal Hold on.
+ // The key name for the object that you want to place a legal hold on.
//
// This member is required.
Key *string
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The MD5 hash for the request body. For requests made using the Amazon Web
// Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is
// calculated automatically.
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
- // Container element for the Legal Hold configuration you want to apply to the
+ // Container element for the legal hold configuration you want to apply to the
// specified object.
LegalHold *types.ObjectLockLegalHold
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
- // The version ID of the object that you want to place a Legal Hold on.
+ // The version ID of the object that you want to place a legal hold on.
VersionId *string
noSmithyDocumentSerde
@@ -138,9 +151,6 @@ func (c *Client) addOperationPutObjectLegalHoldMiddlewares(stack *middleware.Sta
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutObjectLegalHoldValidationMiddleware(stack); err != nil {
return err
}
@@ -150,6 +160,9 @@ func (c *Client) addOperationPutObjectLegalHoldMiddlewares(stack *middleware.Sta
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutObjectLegalHoldInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutObjectLegalHoldUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -177,6 +190,26 @@ func newServiceMetadataMiddleware_opPutObjectLegalHold(region string) *awsmiddle
}
}
+// getPutObjectLegalHoldRequestAlgorithmMember gets the request checksum algorithm
+// value provided as input.
+func getPutObjectLegalHoldRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutObjectLegalHoldInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutObjectLegalHoldInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutObjectLegalHoldRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutObjectLegalHoldBucketMember returns a pointer to string denoting a
// provided bucket member valueand a boolean indicating if the input has a modeled
// bucket name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLockConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLockConfiguration.go
index 461c9b8..9740967 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLockConfiguration.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLockConfiguration.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -49,13 +50,25 @@ type PutObjectLockConfigurationInput struct {
// This member is required.
Bucket *string
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The MD5 hash for the request body. For requests made using the Amazon Web
// Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is
// calculated automatically.
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// The Object Lock configuration that you want to apply to the specified bucket.
@@ -63,8 +76,8 @@ type PutObjectLockConfigurationInput struct {
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
@@ -135,9 +148,6 @@ func (c *Client) addOperationPutObjectLockConfigurationMiddlewares(stack *middle
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutObjectLockConfigurationValidationMiddleware(stack); err != nil {
return err
}
@@ -147,6 +157,9 @@ func (c *Client) addOperationPutObjectLockConfigurationMiddlewares(stack *middle
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutObjectLockConfigurationInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutObjectLockConfigurationUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -174,6 +187,26 @@ func newServiceMetadataMiddleware_opPutObjectLockConfiguration(region string) *a
}
}
+// getPutObjectLockConfigurationRequestAlgorithmMember gets the request checksum
+// algorithm value provided as input.
+func getPutObjectLockConfigurationRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutObjectLockConfigurationInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutObjectLockConfigurationInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutObjectLockConfigurationRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutObjectLockConfigurationBucketMember returns a pointer to string denoting a
// provided bucket member valueand a boolean indicating if the input has a modeled
// bucket name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectRetention.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectRetention.go
index 4be8b90..c4918f3 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectRetention.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectRetention.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -18,10 +19,7 @@ import (
// accounts require the s3:PutObjectRetention permission in order to place an
// Object Retention configuration on objects. Bypassing a Governance Retention
// configuration requires the s3:BypassGovernanceRetention permission. This action
-// is not supported by Amazon S3 on Outposts. Permissions When the Object Lock
-// retention mode is set to compliance, you need s3:PutObjectRetention and
-// s3:BypassGovernanceRetention permissions. For other requests to
-// PutObjectRetention, only s3:PutObjectRetention permissions are required.
+// is not supported by Amazon S3 on Outposts.
func (c *Client) PutObjectRetention(ctx context.Context, params *PutObjectRetentionInput, optFns ...func(*Options)) (*PutObjectRetentionOutput, error) {
if params == nil {
params = &PutObjectRetentionInput{}
@@ -61,19 +59,31 @@ type PutObjectRetentionInput struct {
// Indicates whether this action should bypass Governance-mode restrictions.
BypassGovernanceRetention bool
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The MD5 hash for the request body. For requests made using the Amazon Web
// Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is
// calculated automatically.
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
@@ -148,9 +158,6 @@ func (c *Client) addOperationPutObjectRetentionMiddlewares(stack *middleware.Sta
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutObjectRetentionValidationMiddleware(stack); err != nil {
return err
}
@@ -160,6 +167,9 @@ func (c *Client) addOperationPutObjectRetentionMiddlewares(stack *middleware.Sta
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutObjectRetentionInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutObjectRetentionUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -187,6 +197,26 @@ func newServiceMetadataMiddleware_opPutObjectRetention(region string) *awsmiddle
}
}
+// getPutObjectRetentionRequestAlgorithmMember gets the request checksum algorithm
+// value provided as input.
+func getPutObjectRetentionRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutObjectRetentionInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutObjectRetentionInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutObjectRetentionRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutObjectRetentionBucketMember returns a pointer to string denoting a
// provided bucket member valueand a boolean indicating if the input has a modeled
// bucket name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectTagging.go
index d496008..43effb9 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectTagging.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectTagging.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -91,9 +92,9 @@ type PutObjectTaggingInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -110,19 +111,31 @@ type PutObjectTaggingInput struct {
// This member is required.
Tagging *types.Tagging
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The MD5 hash for the request body. For requests made using the Amazon Web
// Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is
// calculated automatically.
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
@@ -192,9 +205,6 @@ func (c *Client) addOperationPutObjectTaggingMiddlewares(stack *middleware.Stack
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutObjectTaggingValidationMiddleware(stack); err != nil {
return err
}
@@ -204,6 +214,9 @@ func (c *Client) addOperationPutObjectTaggingMiddlewares(stack *middleware.Stack
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutObjectTaggingInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutObjectTaggingUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -231,6 +244,26 @@ func newServiceMetadataMiddleware_opPutObjectTagging(region string) *awsmiddlewa
}
}
+// getPutObjectTaggingRequestAlgorithmMember gets the request checksum algorithm
+// value provided as input.
+func getPutObjectTaggingRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutObjectTaggingInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutObjectTaggingInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutObjectTaggingRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutObjectTaggingBucketMember returns a pointer to string denoting a provided
// bucket member valueand a boolean indicating if the input has a modeled bucket
// name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutPublicAccessBlock.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutPublicAccessBlock.go
index 301ebbf..922102b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutPublicAccessBlock.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutPublicAccessBlock.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -74,13 +75,25 @@ type PutPublicAccessBlockInput struct {
// This member is required.
PublicAccessBlockConfiguration *types.PublicAccessBlockConfiguration
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The MD5 hash of the PutPublicAccessBlock request body. For requests made using
// the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services
// SDKs, this field is calculated automatically.
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
noSmithyDocumentSerde
@@ -141,9 +154,6 @@ func (c *Client) addOperationPutPublicAccessBlockMiddlewares(stack *middleware.S
if err = swapWithCustomHTTPSignerMiddleware(stack, options); err != nil {
return err
}
- if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil {
- return err
- }
if err = addOpPutPublicAccessBlockValidationMiddleware(stack); err != nil {
return err
}
@@ -153,6 +163,9 @@ func (c *Client) addOperationPutPublicAccessBlockMiddlewares(stack *middleware.S
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addPutPublicAccessBlockInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addPutPublicAccessBlockUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -180,6 +193,26 @@ func newServiceMetadataMiddleware_opPutPublicAccessBlock(region string) *awsmidd
}
}
+// getPutPublicAccessBlockRequestAlgorithmMember gets the request checksum
+// algorithm value provided as input.
+func getPutPublicAccessBlockRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*PutPublicAccessBlockInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addPutPublicAccessBlockInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getPutPublicAccessBlockRequestAlgorithmMember,
+ RequireChecksum: true,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getPutPublicAccessBlockBucketMember returns a pointer to string denoting a
// provided bucket member valueand a boolean indicating if the input has a modeled
// bucket name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_RestoreObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_RestoreObject.go
index 754bbb6..0131975 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_RestoreObject.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_RestoreObject.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -259,9 +260,9 @@ type RestoreObjectInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -273,14 +274,26 @@ type RestoreObjectInput struct {
// This member is required.
Key *string
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
@@ -367,6 +380,9 @@ func (c *Client) addOperationRestoreObjectMiddlewares(stack *middleware.Stack, o
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addRestoreObjectInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addRestoreObjectUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -394,6 +410,26 @@ func newServiceMetadataMiddleware_opRestoreObject(region string) *awsmiddleware.
}
}
+// getRestoreObjectRequestAlgorithmMember gets the request checksum algorithm value
+// provided as input.
+func getRestoreObjectRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*RestoreObjectInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addRestoreObjectInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getRestoreObjectRequestAlgorithmMember,
+ RequireChecksum: false,
+ EnableTrailingChecksum: false,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getRestoreObjectBucketMember returns a pointer to string denoting a provided
// bucket member valueand a boolean indicating if the input has a modeled bucket
// name,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_SelectObjectContent.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_SelectObjectContent.go
index 272e72c..1b9dbc7 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_SelectObjectContent.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_SelectObjectContent.go
@@ -23,6 +23,8 @@ import (
// action is not supported by Amazon S3 on Outposts. For more information about
// Amazon S3 Select, see Selecting Content from Objects
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html)
+// and SELECT Command
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html)
// in the Amazon S3 User Guide. For more information about using SQL with Amazon S3
// Select, see SQL Reference for Amazon S3 Select and S3 Glacier Select
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html)
@@ -155,25 +157,32 @@ type SelectObjectContentInput struct {
OutputSerialization *types.OutputSerialization
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Specifies if periodic request progress information should be enabled.
RequestProgress *types.RequestProgress
- // The SSE Algorithm used to encrypt the object. For more information, see
- // Server-Side Encryption (Using Customer-Provided Encryption Keys
- // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
+ // The server-side encryption (SSE) algorithm used to encrypt the object. This
+ // parameter is needed only when the object was created using a checksum algorithm.
+ // For more information, see Protecting data using SSE-C keys
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+ // in the Amazon S3 User Guide.
SSECustomerAlgorithm *string
- // The SSE Customer Key. For more information, see Server-Side Encryption (Using
- // Customer-Provided Encryption Keys
- // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
+ // The server-side encryption (SSE) customer managed key. This parameter is needed
+ // only when the object was created using a checksum algorithm. For more
+ // information, see Protecting data using SSE-C keys
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+ // in the Amazon S3 User Guide.
SSECustomerKey *string
- // The SSE Customer Key MD5. For more information, see Server-Side Encryption
- // (Using Customer-Provided Encryption Keys
- // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
+ // The MD5 server-side encryption (SSE) customer managed key. This parameter is
+ // needed only when the object was created using a checksum algorithm. For more
+ // information, see Protecting data using SSE-C keys
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+ // in the Amazon S3 User Guide.
SSECustomerKeyMD5 *string
// Specifies the byte range of the object to get the records from. A record is
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go
index 430aa64..9c70d4c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go
@@ -7,6 +7,7 @@ import (
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http"
+ internalChecksum "github.com/aws/aws-sdk-go-v2/service/internal/checksum"
s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/aws/smithy-go/middleware"
@@ -26,16 +27,18 @@ import (
// part request. Part numbers can be any number from 1 to 10,000, inclusive. A part
// number uniquely identifies a part and also defines its position within the
// object being created. If you upload a new part using the same part number that
-// was used with a previous part, the previously uploaded part is overwritten. Each
-// part must be at least 5 MB in size, except the last part. There is no size limit
-// on the last part of your multipart upload. To ensure that data is not corrupted
-// when traversing the network, specify the Content-MD5 header in the upload part
-// request. Amazon S3 checks the part data against the provided MD5 value. If they
-// do not match, Amazon S3 returns an error. If the upload request is signed with
-// Signature Version 4, then Amazon Web Services S3 uses the x-amz-content-sha256
-// header as a checksum instead of Content-MD5. For more information see
-// Authenticating Requests: Using the Authorization Header (Amazon Web Services
-// Signature Version 4)
+// was used with a previous part, the previously uploaded part is overwritten. For
+// information about maximum and minimum part sizes and other multipart upload
+// specifications, see Multipart upload limits
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html) in the
+// Amazon S3 User Guide. To ensure that data is not corrupted when traversing the
+// network, specify the Content-MD5 header in the upload part request. Amazon S3
+// checks the part data against the provided MD5 value. If they do not match,
+// Amazon S3 returns an error. If the upload request is signed with Signature
+// Version 4, then Amazon Web Services S3 uses the x-amz-content-sha256 header as a
+// checksum instead of Content-MD5. For more information see Authenticating
+// Requests: Using the Authorization Header (Amazon Web Services Signature Version
+// 4)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html).
// Note: After you initiate multipart upload and upload one or more parts, you must
// either complete or abort multipart upload in order to stop getting charged for
@@ -139,9 +142,9 @@ type UploadPartInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -167,6 +170,51 @@ type UploadPartInput struct {
// Object data.
Body io.Reader
+ // Indicates the algorithm used to create the checksum for the object when using
+ // the SDK. This header will not provide any additional functionality if not using
+ // the SDK. When sending this header, there must be a corresponding x-amz-checksum
+ // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ // HTTP status code 400 Bad Request. For more information, see Checking object
+ // integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
+ // ignores any provided ChecksumAlgorithm parameter. This checksum algorithm must
+ // be the same for all parts and it match the checksum value supplied in the
+ // CreateMultipartUpload request.
+ ChecksumAlgorithm types.ChecksumAlgorithm
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 32-bit CRC32C checksum of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 160-bit SHA-1 digest of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// Size of the body in bytes. This parameter is useful when the size of the body
// cannot be determined automatically.
ContentLength int64
@@ -177,13 +225,14 @@ type UploadPartInput struct {
ContentMD5 *string
// The account ID of the expected bucket owner. If the bucket is owned by a
- // different account, the request will fail with an HTTP 403 (Access Denied) error.
+ // different account, the request fails with the HTTP status code 403 Forbidden
+ // (access denied).
ExpectedBucketOwner *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
@@ -214,6 +263,38 @@ type UploadPartOutput struct {
// encryption with Amazon Web Services KMS (SSE-KMS).
BucketKeyEnabled bool
+ // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// Entity tag for the uploaded object.
ETag *string
@@ -302,6 +383,9 @@ func (c *Client) addOperationUploadPartMiddlewares(stack *middleware.Stack, opti
if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err
}
+ if err = addUploadPartInputChecksumMiddlewares(stack, options); err != nil {
+ return err
+ }
if err = addUploadPartUpdateEndpoint(stack, options); err != nil {
return err
}
@@ -332,6 +416,26 @@ func newServiceMetadataMiddleware_opUploadPart(region string) *awsmiddleware.Reg
}
}
+// getUploadPartRequestAlgorithmMember gets the request checksum algorithm value
+// provided as input.
+func getUploadPartRequestAlgorithmMember(input interface{}) (string, bool) {
+ in := input.(*UploadPartInput)
+ if len(in.ChecksumAlgorithm) == 0 {
+ return "", false
+ }
+ return string(in.ChecksumAlgorithm), true
+}
+
+func addUploadPartInputChecksumMiddlewares(stack *middleware.Stack, options Options) error {
+ return internalChecksum.AddInputMiddleware(stack, internalChecksum.InputMiddlewareOptions{
+ GetAlgorithm: getUploadPartRequestAlgorithmMember,
+ RequireChecksum: false,
+ EnableTrailingChecksum: true,
+ EnableComputeSHA256PayloadHash: true,
+ EnableDecodedContentLengthHeader: true,
+ })
+}
+
// getUploadPartBucketMember returns a pointer to string denoting a provided bucket
// member valueand a boolean indicating if the input has a modeled bucket name,
func getUploadPartBucketMember(input interface{}) (*string, bool) {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPartCopy.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPartCopy.go
index b4c89d3..c2c58ce 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPartCopy.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPartCopy.go
@@ -16,19 +16,20 @@ import (
// Uploads a part by copying data from an existing object as data source. You
// specify the data source by adding the request header x-amz-copy-source in your
// request and a byte range by adding the request header x-amz-copy-source-range in
-// your request. The minimum allowable part size for a multipart upload is 5 MB.
-// For more information about multipart upload limits, go to Quick Facts
-// (https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html) in the Amazon S3
-// User Guide. Instead of using an existing object as part data, you might use the
-// UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
-// action and provide data in your request. You must initiate a multipart upload
-// before you can upload any part. In response to your initiate request. Amazon S3
-// returns a unique identifier, the upload ID, that you must include in your upload
-// part request. For more information about using the UploadPartCopy operation, see
-// the following:
+// your request. For information about maximum and minimum part sizes and other
+// multipart upload specifications, see Multipart upload limits
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html) in the
+// Amazon S3 User Guide. Instead of using an existing object as part data, you
+// might use the UploadPart
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) action and
+// provide data in your request. You must initiate a multipart upload before you
+// can upload any part. In response to your initiate request. Amazon S3 returns a
+// unique identifier, the upload ID, that you must include in your upload part
+// request. For more information about using the UploadPartCopy operation, see the
+// following:
//
-// * For conceptual information about multipart uploads, see
-// Uploading Objects Using Multipart Upload
+// * For conceptual information about multipart uploads, see Uploading
+// Objects Using Multipart Upload
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) in the
// Amazon S3 User Guide.
//
@@ -38,7 +39,7 @@ import (
// Amazon S3 User Guide.
//
// * For information about copying objects using a single
-// atomic action vs. the multipart upload, see Operations on Objects
+// atomic action vs. a multipart upload, see Operations on Objects
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html) in the
// Amazon S3 User Guide.
//
@@ -148,9 +149,9 @@ type UploadPartCopyInput struct {
// you must direct requests to the S3 on Outposts hostname. The S3 on Outposts
// hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using
- // this action using S3 on Outposts through the Amazon Web Services SDKs, you
+ // this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts bucket ARN in place of the bucket name. For more
- // information about S3 on Outposts ARNs, see Using S3 on Outposts
+ // information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the
// Amazon S3 User Guide.
//
@@ -166,7 +167,7 @@ type UploadPartCopyInput struct {
// For objects not accessed through an access point, specify the name of the source
// bucket and key of the source object, separated by a slash (/). For example, to
// copy the object reports/january.pdf from the bucket awsexamplebucket, use
- // awsexamplebucket/reports/january.pdf. The value must be URL encoded.
+ // awsexamplebucket/reports/january.pdf. The value must be URL-encoded.
//
// * For
// objects accessed through access points, specify the Amazon Resource Name (ARN)
@@ -183,7 +184,7 @@ type UploadPartCopyInput struct {
// reports/january.pdf through outpost my-outpost owned by account 123456789012 in
// Region us-west-2, use the URL encoding of
// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf.
- // The value must be URL encoded.
+ // The value must be URL-encoded.
//
// To copy a specific version of an object, append
// ?versionId= to the value (for example,
@@ -244,19 +245,19 @@ type UploadPartCopyInput struct {
CopySourceSSECustomerKeyMD5 *string
// The account ID of the expected destination bucket owner. If the destination
- // bucket is owned by a different account, the request will fail with an HTTP 403
- // (Access Denied) error.
+ // bucket is owned by a different account, the request fails with the HTTP status
+ // code 403 Forbidden (access denied).
ExpectedBucketOwner *string
// The account ID of the expected source bucket owner. If the source bucket is
- // owned by a different account, the request will fail with an HTTP 403 (Access
- // Denied) error.
+ // owned by a different account, the request fails with the HTTP status code 403
+ // Forbidden (access denied).
ExpectedSourceBucketOwner *string
// Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information
- // about downloading objects from requester pays buckets, see Downloading Objects
- // in Requestor Pays Buckets
+ // about downloading objects from Requester Pays buckets, see Downloading Objects
+ // in Requester Pays Buckets
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide.
RequestPayer types.RequestPayer
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_WriteGetObjectResponse.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_WriteGetObjectResponse.go
index 0da1d94..78eeadd 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_WriteGetObjectResponse.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_WriteGetObjectResponse.go
@@ -96,6 +96,54 @@ type WriteGetObjectResponseInput struct {
// Specifies caching behavior along the request/reply chain.
CacheControl *string
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This specifies the
+ // base64-encoded, 32-bit CRC32 checksum of the object returned by the Object
+ // Lambda function. This may not match the checksum for the object stored in Amazon
+ // S3. Amazon S3 will perform validation of the checksum values only when the
+ // original GetObject request required checksum validation. For more information
+ // about checksums, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. Only one checksum header can be specified at a
+ // time. If you supply multiple checksum headers, this request will fail.
+ ChecksumCRC32 *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This specifies the
+ // base64-encoded, 32-bit CRC32C checksum of the object returned by the Object
+ // Lambda function. This may not match the checksum for the object stored in Amazon
+ // S3. Amazon S3 will perform validation of the checksum values only when the
+ // original GetObject request required checksum validation. For more information
+ // about checksums, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. Only one checksum header can be specified at a
+ // time. If you supply multiple checksum headers, this request will fail.
+ ChecksumCRC32C *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This specifies the
+ // base64-encoded, 160-bit SHA-1 digest of the object returned by the Object Lambda
+ // function. This may not match the checksum for the object stored in Amazon S3.
+ // Amazon S3 will perform validation of the checksum values only when the original
+ // GetObject request required checksum validation. For more information about
+ // checksums, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. Only one checksum header can be specified at a
+ // time. If you supply multiple checksum headers, this request will fail.
+ ChecksumSHA1 *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This specifies the
+ // base64-encoded, 256-bit SHA-256 digest of the object returned by the Object
+ // Lambda function. This may not match the checksum for the object stored in Amazon
+ // S3. Amazon S3 will perform validation of the checksum values only when the
+ // original GetObject request required checksum validation. For more information
+ // about checksums, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide. Only one checksum header can be specified at a
+ // time. If you supply multiple checksum headers, this request will fail.
+ ChecksumSHA256 *string
+
// Specifies presentational information for the object.
ContentDisposition *string
@@ -127,8 +175,8 @@ type WriteGetObjectResponseInput struct {
// A string that uniquely identifies an error condition. Returned in the tag of
// the error XML response for a corresponding GetObject call. Cannot be used with a
// successful StatusCode header or when the transformed object is provided in the
- // body. All error codes from S3 are sentence-cased. Regex value is
- // "^[A-Z][a-zA-Z]+$".
+ // body. All error codes from S3 are sentence-cased. The regular expression (regex)
+ // value is "^[A-Z][a-zA-Z]+$".
ErrorCode *string
// Contains a generic description of the error condition. Returned in the tag of
@@ -136,9 +184,10 @@ type WriteGetObjectResponseInput struct {
// successful StatusCode header or when the transformed object is provided in body.
ErrorMessage *string
- // If object stored in Amazon S3 expiration is configured (see PUT Bucket
- // lifecycle) it includes expiry-date and rule-id key-value pairs providing object
- // expiration information. The value of the rule-id is URL encoded.
+ // If the object expiration is configured (see PUT Bucket lifecycle), the response
+ // includes this header. It includes the expiry-date and rule-id key-value pairs
+ // that provide the object expiration information. The value of the rule-id is
+ // URL-encoded.
Expiration *string
// The date and time at which the object is no longer cacheable.
@@ -238,7 +287,10 @@ type WriteGetObjectResponseInput struct {
// * 503 - Service Unavailable
StatusCode int32
- // The class of storage used to store object in Amazon S3.
+ // Provides storage class information of the object. Amazon S3 returns this header
+ // for all objects except for S3 Standard storage class objects. For more
+ // information, see Storage Classes
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html).
StorageClass types.StorageClass
// The number of tags, if any, on the object.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/deserializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/deserializers.go
index 8867bf4..995d909 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/deserializers.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/deserializers.go
@@ -295,6 +295,58 @@ func awsRestxml_deserializeOpDocumentCompleteMultipartUploadOutput(v **CompleteM
sv.Bucket = ptr.String(xtv)
}
+ case strings.EqualFold("ChecksumCRC32", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumCRC32C", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32C = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA1", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA1 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA256", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA256 = ptr.String(xtv)
+ }
+
case strings.EqualFold("ETag", t.Name.Local):
val, err := decoder.Value()
if err != nil {
@@ -779,6 +831,11 @@ func awsRestxml_deserializeOpHttpBindingsCreateMultipartUploadOutput(v *CreateMu
v.BucketKeyEnabled = vv
}
+ if headerValues := response.Header.Values("x-amz-checksum-algorithm"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumAlgorithm = types.ChecksumAlgorithm(headerValues[0])
+ }
+
if headerValues := response.Header.Values("x-amz-request-charged"); len(headerValues) != 0 {
headerValues[0] = strings.TrimSpace(headerValues[0])
v.RequestCharged = types.RequestCharged(headerValues[0])
@@ -3954,6 +4011,12 @@ func awsRestxml_deserializeOpDocumentGetBucketNotificationConfigurationOutput(v
originalDecoder := decoder
decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
switch {
+ case strings.EqualFold("EventBridgeConfiguration", t.Name.Local):
+ nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
+ if err := awsRestxml_deserializeDocumentEventBridgeConfiguration(&sv.EventBridgeConfiguration, nodeDecoder); err != nil {
+ return err
+ }
+
case strings.EqualFold("CloudFunctionConfiguration", t.Name.Local):
nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
if err := awsRestxml_deserializeDocumentLambdaFunctionConfigurationListUnwrapped(&sv.LambdaFunctionConfigurations, nodeDecoder); err != nil {
@@ -4151,7 +4214,7 @@ func (m *awsRestxml_deserializeOpGetBucketPolicy) HandleDeserialize(ctx context.
output := &GetBucketPolicyOutput{}
out.Result = output
- err = awsRestxml_deserializeOpDocumentGetBucketPolicyOutput(output, response.Body)
+ err = awsRestxml_deserializeOpDocumentGetBucketPolicyOutput(output, response.Body, response.ContentLength)
if err != nil {
return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to deserialize response payload, %w", err)}
}
@@ -4199,16 +4262,23 @@ func awsRestxml_deserializeOpErrorGetBucketPolicy(response *smithyhttp.Response,
}
}
-func awsRestxml_deserializeOpDocumentGetBucketPolicyOutput(v *GetBucketPolicyOutput, body io.ReadCloser) error {
+func awsRestxml_deserializeOpDocumentGetBucketPolicyOutput(v *GetBucketPolicyOutput, body io.ReadCloser, contentLength int64) error {
if v == nil {
return fmt.Errorf("unsupported deserialization of nil %T", v)
}
- bs, err := ioutil.ReadAll(body)
+ var buf bytes.Buffer
+ if contentLength > 0 {
+ buf.Grow(int(contentLength))
+ } else {
+ buf.Grow(512)
+ }
+
+ _, err := buf.ReadFrom(body)
if err != nil {
return err
}
- if len(bs) > 0 {
- v.Policy = ptr.String(string(bs))
+ if buf.Len() > 0 {
+ v.Policy = ptr.String(buf.String())
}
return nil
}
@@ -5201,6 +5271,26 @@ func awsRestxml_deserializeOpHttpBindingsGetObjectOutput(v *GetObjectOutput, res
v.CacheControl = ptr.String(headerValues[0])
}
+ if headerValues := response.Header.Values("x-amz-checksum-crc32"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumCRC32 = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-crc32c"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumCRC32C = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-sha1"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumSHA1 = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-sha256"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumSHA256 = ptr.String(headerValues[0])
+ }
+
if headerValues := response.Header.Values("Content-Disposition"); len(headerValues) != 0 {
headerValues[0] = strings.TrimSpace(headerValues[0])
v.ContentDisposition = ptr.String(headerValues[0])
@@ -5553,6 +5643,237 @@ func awsRestxml_deserializeOpDocumentGetObjectAclOutput(v **GetObjectAclOutput,
return nil
}
+type awsRestxml_deserializeOpGetObjectAttributes struct {
+}
+
+func (*awsRestxml_deserializeOpGetObjectAttributes) ID() string {
+ return "OperationDeserializer"
+}
+
+func (m *awsRestxml_deserializeOpGetObjectAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
+ out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
+) {
+ out, metadata, err = next.HandleDeserialize(ctx, in)
+ if err != nil {
+ return out, metadata, err
+ }
+
+ response, ok := out.RawResponse.(*smithyhttp.Response)
+ if !ok {
+ return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
+ }
+
+ if response.StatusCode < 200 || response.StatusCode >= 300 {
+ return out, metadata, awsRestxml_deserializeOpErrorGetObjectAttributes(response, &metadata)
+ }
+ output := &GetObjectAttributesOutput{}
+ out.Result = output
+
+ err = awsRestxml_deserializeOpHttpBindingsGetObjectAttributesOutput(output, response)
+ if err != nil {
+ return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)}
+ }
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+ body := io.TeeReader(response.Body, ringBuffer)
+ rootDecoder := xml.NewDecoder(body)
+ t, err := smithyxml.FetchRootElement(rootDecoder)
+ if err == io.EOF {
+ return out, metadata, nil
+ }
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ return out, metadata, &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ }
+
+ decoder := smithyxml.WrapNodeDecoder(rootDecoder, t)
+ err = awsRestxml_deserializeOpDocumentGetObjectAttributesOutput(&output, decoder)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ return out, metadata, &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ }
+
+ return out, metadata, err
+}
+
+func awsRestxml_deserializeOpErrorGetObjectAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error {
+ var errorBuffer bytes.Buffer
+ if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
+ return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
+ }
+ errorBody := bytes.NewReader(errorBuffer.Bytes())
+
+ errorCode := "UnknownError"
+ errorMessage := errorCode
+
+ errorComponents, err := s3shared.GetErrorResponseComponents(errorBody, s3shared.ErrorResponseDeserializerOptions{
+ UseStatusCode: true, StatusCode: response.StatusCode,
+ })
+ if err != nil {
+ return err
+ }
+ if hostID := errorComponents.HostID; len(hostID) != 0 {
+ s3shared.SetHostIDMetadata(metadata, hostID)
+ }
+ if reqID := errorComponents.RequestID; len(reqID) != 0 {
+ awsmiddleware.SetRequestIDMetadata(metadata, reqID)
+ }
+ if len(errorComponents.Code) != 0 {
+ errorCode = errorComponents.Code
+ }
+ if len(errorComponents.Message) != 0 {
+ errorMessage = errorComponents.Message
+ }
+ errorBody.Seek(0, io.SeekStart)
+ switch {
+ case strings.EqualFold("NoSuchKey", errorCode):
+ return awsRestxml_deserializeErrorNoSuchKey(response, errorBody)
+
+ default:
+ genericError := &smithy.GenericAPIError{
+ Code: errorCode,
+ Message: errorMessage,
+ }
+ return genericError
+
+ }
+}
+
+func awsRestxml_deserializeOpHttpBindingsGetObjectAttributesOutput(v *GetObjectAttributesOutput, response *smithyhttp.Response) error {
+ if v == nil {
+ return fmt.Errorf("unsupported deserialization for nil %T", v)
+ }
+
+ if headerValues := response.Header.Values("x-amz-delete-marker"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ vv, err := strconv.ParseBool(headerValues[0])
+ if err != nil {
+ return err
+ }
+ v.DeleteMarker = vv
+ }
+
+ if headerValues := response.Header.Values("Last-Modified"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ t, err := smithytime.ParseHTTPDate(headerValues[0])
+ if err != nil {
+ return err
+ }
+ v.LastModified = ptr.Time(t)
+ }
+
+ if headerValues := response.Header.Values("x-amz-request-charged"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.RequestCharged = types.RequestCharged(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-version-id"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.VersionId = ptr.String(headerValues[0])
+ }
+
+ return nil
+}
+func awsRestxml_deserializeOpDocumentGetObjectAttributesOutput(v **GetObjectAttributesOutput, decoder smithyxml.NodeDecoder) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ var sv *GetObjectAttributesOutput
+ if *v == nil {
+ sv = &GetObjectAttributesOutput{}
+ } else {
+ sv = *v
+ }
+
+ for {
+ t, done, err := decoder.Token()
+ if err != nil {
+ return err
+ }
+ if done {
+ break
+ }
+ originalDecoder := decoder
+ decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
+ switch {
+ case strings.EqualFold("Checksum", t.Name.Local):
+ nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
+ if err := awsRestxml_deserializeDocumentChecksum(&sv.Checksum, nodeDecoder); err != nil {
+ return err
+ }
+
+ case strings.EqualFold("ETag", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ETag = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ObjectParts", t.Name.Local):
+ nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
+ if err := awsRestxml_deserializeDocumentGetObjectAttributesParts(&sv.ObjectParts, nodeDecoder); err != nil {
+ return err
+ }
+
+ case strings.EqualFold("ObjectSize", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ i64, err := strconv.ParseInt(xtv, 10, 64)
+ if err != nil {
+ return err
+ }
+ sv.ObjectSize = i64
+ }
+
+ case strings.EqualFold("StorageClass", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.StorageClass = types.StorageClass(xtv)
+ }
+
+ default:
+ // Do nothing and ignore the unexpected tag element
+ err = decoder.Decoder.Skip()
+ if err != nil {
+ return err
+ }
+
+ }
+ decoder = originalDecoder
+ }
+ *v = sv
+ return nil
+}
+
type awsRestxml_deserializeOpGetObjectLegalHold struct {
}
@@ -6545,6 +6866,26 @@ func awsRestxml_deserializeOpHttpBindingsHeadObjectOutput(v *HeadObjectOutput, r
v.CacheControl = ptr.String(headerValues[0])
}
+ if headerValues := response.Header.Values("x-amz-checksum-crc32"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumCRC32 = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-crc32c"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumCRC32C = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-sha1"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumSHA1 = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-sha256"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumSHA256 = ptr.String(headerValues[0])
+ }
+
if headerValues := response.Header.Values("Content-Disposition"); len(headerValues) != 0 {
headerValues[0] = strings.TrimSpace(headerValues[0])
v.ContentDisposition = ptr.String(headerValues[0])
@@ -8861,6 +9202,19 @@ func awsRestxml_deserializeOpDocumentListPartsOutput(v **ListPartsOutput, decode
sv.Bucket = ptr.String(xtv)
}
+ case strings.EqualFold("ChecksumAlgorithm", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumAlgorithm = types.ChecksumAlgorithm(xtv)
+ }
+
case strings.EqualFold("Initiator", t.Name.Local):
nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
if err := awsRestxml_deserializeDocumentInitiator(&sv.Initiator, nodeDecoder); err != nil {
@@ -10429,6 +10783,26 @@ func awsRestxml_deserializeOpHttpBindingsPutObjectOutput(v *PutObjectOutput, res
v.BucketKeyEnabled = vv
}
+ if headerValues := response.Header.Values("x-amz-checksum-crc32"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumCRC32 = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-crc32c"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumCRC32C = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-sha1"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumSHA1 = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-sha256"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumSHA256 = ptr.String(headerValues[0])
+ }
+
if headerValues := response.Header.Values("ETag"); len(headerValues) != 0 {
headerValues[0] = strings.TrimSpace(headerValues[0])
v.ETag = ptr.String(headerValues[0])
@@ -11242,6 +11616,26 @@ func awsRestxml_deserializeOpHttpBindingsUploadPartOutput(v *UploadPartOutput, r
v.BucketKeyEnabled = vv
}
+ if headerValues := response.Header.Values("x-amz-checksum-crc32"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumCRC32 = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-crc32c"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumCRC32C = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-sha1"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumSHA1 = ptr.String(headerValues[0])
+ }
+
+ if headerValues := response.Header.Values("x-amz-checksum-sha256"); len(headerValues) != 0 {
+ headerValues[0] = strings.TrimSpace(headerValues[0])
+ v.ChecksumSHA256 = ptr.String(headerValues[0])
+ }
+
if headerValues := response.Header.Values("ETag"); len(headerValues) != 0 {
headerValues[0] = strings.TrimSpace(headerValues[0])
v.ETag = ptr.String(headerValues[0])
@@ -13054,6 +13448,174 @@ func awsRestxml_deserializeDocumentBucketsUnwrapped(v *[]types.Bucket, decoder s
*v = sv
return nil
}
+func awsRestxml_deserializeDocumentChecksum(v **types.Checksum, decoder smithyxml.NodeDecoder) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ var sv *types.Checksum
+ if *v == nil {
+ sv = &types.Checksum{}
+ } else {
+ sv = *v
+ }
+
+ for {
+ t, done, err := decoder.Token()
+ if err != nil {
+ return err
+ }
+ if done {
+ break
+ }
+ originalDecoder := decoder
+ decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
+ switch {
+ case strings.EqualFold("ChecksumCRC32", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumCRC32C", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32C = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA1", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA1 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA256", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA256 = ptr.String(xtv)
+ }
+
+ default:
+ // Do nothing and ignore the unexpected tag element
+ err = decoder.Decoder.Skip()
+ if err != nil {
+ return err
+ }
+
+ }
+ decoder = originalDecoder
+ }
+ *v = sv
+ return nil
+}
+
+func awsRestxml_deserializeDocumentChecksumAlgorithmList(v *[]types.ChecksumAlgorithm, decoder smithyxml.NodeDecoder) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ var sv []types.ChecksumAlgorithm
+ if *v == nil {
+ sv = make([]types.ChecksumAlgorithm, 0)
+ } else {
+ sv = *v
+ }
+
+ originalDecoder := decoder
+ for {
+ t, done, err := decoder.Token()
+ if err != nil {
+ return err
+ }
+ if done {
+ break
+ }
+ memberDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
+ decoder = memberDecoder
+ switch {
+ case strings.EqualFold("member", t.Name.Local):
+ var col types.ChecksumAlgorithm
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ col = types.ChecksumAlgorithm(xtv)
+ }
+ sv = append(sv, col)
+
+ default:
+ err = decoder.Decoder.Skip()
+ if err != nil {
+ return err
+ }
+
+ }
+ decoder = originalDecoder
+ }
+ *v = sv
+ return nil
+}
+
+func awsRestxml_deserializeDocumentChecksumAlgorithmListUnwrapped(v *[]types.ChecksumAlgorithm, decoder smithyxml.NodeDecoder) error {
+ var sv []types.ChecksumAlgorithm
+ if *v == nil {
+ sv = make([]types.ChecksumAlgorithm, 0)
+ } else {
+ sv = *v
+ }
+
+ switch {
+ default:
+ var mv types.ChecksumAlgorithm
+ t := decoder.StartEl
+ _ = t
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ mv = types.ChecksumAlgorithm(xtv)
+ }
+ sv = append(sv, mv)
+ }
+ *v = sv
+ return nil
+}
func awsRestxml_deserializeDocumentCommonPrefix(v **types.CommonPrefix, decoder smithyxml.NodeDecoder) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -13255,6 +13817,58 @@ func awsRestxml_deserializeDocumentCopyObjectResult(v **types.CopyObjectResult,
originalDecoder := decoder
decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
switch {
+ case strings.EqualFold("ChecksumCRC32", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumCRC32C", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32C = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA1", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA1 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA256", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA256 = ptr.String(xtv)
+ }
+
case strings.EqualFold("ETag", t.Name.Local):
val, err := decoder.Value()
if err != nil {
@@ -13321,6 +13935,58 @@ func awsRestxml_deserializeDocumentCopyPartResult(v **types.CopyPartResult, deco
originalDecoder := decoder
decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
switch {
+ case strings.EqualFold("ChecksumCRC32", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumCRC32C", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32C = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA1", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA1 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA256", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA256 = ptr.String(xtv)
+ }
+
case strings.EqualFold("ETag", t.Name.Local):
val, err := decoder.Value()
if err != nil {
@@ -14336,6 +15002,42 @@ func awsRestxml_deserializeDocumentErrorsUnwrapped(v *[]types.Error, decoder smi
*v = sv
return nil
}
+func awsRestxml_deserializeDocumentEventBridgeConfiguration(v **types.EventBridgeConfiguration, decoder smithyxml.NodeDecoder) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ var sv *types.EventBridgeConfiguration
+ if *v == nil {
+ sv = &types.EventBridgeConfiguration{}
+ } else {
+ sv = *v
+ }
+
+ for {
+ t, done, err := decoder.Token()
+ if err != nil {
+ return err
+ }
+ if done {
+ break
+ }
+ originalDecoder := decoder
+ decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
+ switch {
+ default:
+ // Do nothing and ignore the unexpected tag element
+ err = decoder.Decoder.Skip()
+ if err != nil {
+ return err
+ }
+
+ }
+ decoder = originalDecoder
+ }
+ *v = sv
+ return nil
+}
+
func awsRestxml_deserializeDocumentEventList(v *[]types.Event, decoder smithyxml.NodeDecoder) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -14675,6 +15377,124 @@ func awsRestxml_deserializeDocumentFilterRuleListUnwrapped(v *[]types.FilterRule
*v = sv
return nil
}
+func awsRestxml_deserializeDocumentGetObjectAttributesParts(v **types.GetObjectAttributesParts, decoder smithyxml.NodeDecoder) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ var sv *types.GetObjectAttributesParts
+ if *v == nil {
+ sv = &types.GetObjectAttributesParts{}
+ } else {
+ sv = *v
+ }
+
+ for {
+ t, done, err := decoder.Token()
+ if err != nil {
+ return err
+ }
+ if done {
+ break
+ }
+ originalDecoder := decoder
+ decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
+ switch {
+ case strings.EqualFold("IsTruncated", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv, err := strconv.ParseBool(string(val))
+ if err != nil {
+ return fmt.Errorf("expected IsTruncated to be of type *bool, got %T instead", val)
+ }
+ sv.IsTruncated = xtv
+ }
+
+ case strings.EqualFold("MaxParts", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ i64, err := strconv.ParseInt(xtv, 10, 64)
+ if err != nil {
+ return err
+ }
+ sv.MaxParts = int32(i64)
+ }
+
+ case strings.EqualFold("NextPartNumberMarker", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.NextPartNumberMarker = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("PartNumberMarker", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.PartNumberMarker = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("Part", t.Name.Local):
+ nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
+ if err := awsRestxml_deserializeDocumentPartsListUnwrapped(&sv.Parts, nodeDecoder); err != nil {
+ return err
+ }
+
+ case strings.EqualFold("PartsCount", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ i64, err := strconv.ParseInt(xtv, 10, 64)
+ if err != nil {
+ return err
+ }
+ sv.TotalPartsCount = int32(i64)
+ }
+
+ default:
+ // Do nothing and ignore the unexpected tag element
+ err = decoder.Decoder.Skip()
+ if err != nil {
+ return err
+ }
+
+ }
+ decoder = originalDecoder
+ }
+ *v = sv
+ return nil
+}
+
func awsRestxml_deserializeDocumentGrant(v **types.Grant, decoder smithyxml.NodeDecoder) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -16225,6 +17045,40 @@ func awsRestxml_deserializeDocumentLifecycleRuleAndOperator(v **types.LifecycleR
originalDecoder := decoder
decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
switch {
+ case strings.EqualFold("ObjectSizeGreaterThan", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ i64, err := strconv.ParseInt(xtv, 10, 64)
+ if err != nil {
+ return err
+ }
+ sv.ObjectSizeGreaterThan = i64
+ }
+
+ case strings.EqualFold("ObjectSizeLessThan", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ i64, err := strconv.ParseInt(xtv, 10, 64)
+ if err != nil {
+ return err
+ }
+ sv.ObjectSizeLessThan = i64
+ }
+
case strings.EqualFold("Prefix", t.Name.Local):
val, err := decoder.Value()
if err != nil {
@@ -16291,6 +17145,46 @@ func awsRestxml_deserializeDocumentLifecycleRuleFilter(v *types.LifecycleRuleFil
uv = &types.LifecycleRuleFilterMemberAnd{Value: mv}
memberFound = true
+ case strings.EqualFold("ObjectSizeGreaterThan", t.Name.Local):
+ var mv int64
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ i64, err := strconv.ParseInt(xtv, 10, 64)
+ if err != nil {
+ return err
+ }
+ mv = i64
+ }
+ uv = &types.LifecycleRuleFilterMemberObjectSizeGreaterThan{Value: mv}
+ memberFound = true
+
+ case strings.EqualFold("ObjectSizeLessThan", t.Name.Local):
+ var mv int64
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ i64, err := strconv.ParseInt(xtv, 10, 64)
+ if err != nil {
+ return err
+ }
+ mv = i64
+ }
+ uv = &types.LifecycleRuleFilterMemberObjectSizeLessThan{Value: mv}
+ memberFound = true
+
case strings.EqualFold("Prefix", t.Name.Local):
var mv string
val, err := decoder.Value()
@@ -16820,6 +17714,19 @@ func awsRestxml_deserializeDocumentMultipartUpload(v **types.MultipartUpload, de
originalDecoder := decoder
decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
switch {
+ case strings.EqualFold("ChecksumAlgorithm", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumAlgorithm = types.ChecksumAlgorithm(xtv)
+ }
+
case strings.EqualFold("Initiated", t.Name.Local):
val, err := decoder.Value()
if err != nil {
@@ -16992,6 +17899,23 @@ func awsRestxml_deserializeDocumentNoncurrentVersionExpiration(v **types.Noncurr
originalDecoder := decoder
decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
switch {
+ case strings.EqualFold("NewerNoncurrentVersions", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ i64, err := strconv.ParseInt(xtv, 10, 64)
+ if err != nil {
+ return err
+ }
+ sv.NewerNoncurrentVersions = int32(i64)
+ }
+
case strings.EqualFold("NoncurrentDays", t.Name.Local):
val, err := decoder.Value()
if err != nil {
@@ -17045,6 +17969,23 @@ func awsRestxml_deserializeDocumentNoncurrentVersionTransition(v **types.Noncurr
originalDecoder := decoder
decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
switch {
+ case strings.EqualFold("NewerNoncurrentVersions", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ i64, err := strconv.ParseInt(xtv, 10, 64)
+ if err != nil {
+ return err
+ }
+ sv.NewerNoncurrentVersions = int32(i64)
+ }
+
case strings.EqualFold("NoncurrentDays", t.Name.Local):
val, err := decoder.Value()
if err != nil {
@@ -17365,6 +18306,12 @@ func awsRestxml_deserializeDocumentObject(v **types.Object, decoder smithyxml.No
originalDecoder := decoder
decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
switch {
+ case strings.EqualFold("ChecksumAlgorithm", t.Name.Local):
+ nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
+ if err := awsRestxml_deserializeDocumentChecksumAlgorithmListUnwrapped(&sv.ChecksumAlgorithm, nodeDecoder); err != nil {
+ return err
+ }
+
case strings.EqualFold("ETag", t.Name.Local):
val, err := decoder.Value()
if err != nil {
@@ -17810,6 +18757,128 @@ func awsRestxml_deserializeDocumentObjectNotInActiveTierError(v **types.ObjectNo
return nil
}
+func awsRestxml_deserializeDocumentObjectPart(v **types.ObjectPart, decoder smithyxml.NodeDecoder) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ var sv *types.ObjectPart
+ if *v == nil {
+ sv = &types.ObjectPart{}
+ } else {
+ sv = *v
+ }
+
+ for {
+ t, done, err := decoder.Token()
+ if err != nil {
+ return err
+ }
+ if done {
+ break
+ }
+ originalDecoder := decoder
+ decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
+ switch {
+ case strings.EqualFold("ChecksumCRC32", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumCRC32C", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32C = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA1", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA1 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA256", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA256 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("PartNumber", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ i64, err := strconv.ParseInt(xtv, 10, 64)
+ if err != nil {
+ return err
+ }
+ sv.PartNumber = int32(i64)
+ }
+
+ case strings.EqualFold("Size", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ i64, err := strconv.ParseInt(xtv, 10, 64)
+ if err != nil {
+ return err
+ }
+ sv.Size = i64
+ }
+
+ default:
+ // Do nothing and ignore the unexpected tag element
+ err = decoder.Decoder.Skip()
+ if err != nil {
+ return err
+ }
+
+ }
+ decoder = originalDecoder
+ }
+ *v = sv
+ return nil
+}
+
func awsRestxml_deserializeDocumentObjectVersion(v **types.ObjectVersion, decoder smithyxml.NodeDecoder) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -17832,6 +18901,12 @@ func awsRestxml_deserializeDocumentObjectVersion(v **types.ObjectVersion, decode
originalDecoder := decoder
decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
switch {
+ case strings.EqualFold("ChecksumAlgorithm", t.Name.Local):
+ nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
+ if err := awsRestxml_deserializeDocumentChecksumAlgorithmListUnwrapped(&sv.ChecksumAlgorithm, nodeDecoder); err != nil {
+ return err
+ }
+
case strings.EqualFold("ETag", t.Name.Local):
val, err := decoder.Value()
if err != nil {
@@ -18265,6 +19340,58 @@ func awsRestxml_deserializeDocumentPart(v **types.Part, decoder smithyxml.NodeDe
originalDecoder := decoder
decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t)
switch {
+ case strings.EqualFold("ChecksumCRC32", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumCRC32C", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumCRC32C = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA1", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA1 = ptr.String(xtv)
+ }
+
+ case strings.EqualFold("ChecksumSHA256", t.Name.Local):
+ val, err := decoder.Value()
+ if err != nil {
+ return err
+ }
+ if val == nil {
+ break
+ }
+ {
+ xtv := string(val)
+ sv.ChecksumSHA256 = ptr.String(xtv)
+ }
+
case strings.EqualFold("ETag", t.Name.Local):
val, err := decoder.Value()
if err != nil {
@@ -18411,6 +19538,74 @@ func awsRestxml_deserializeDocumentPartsUnwrapped(v *[]types.Part, decoder smith
*v = sv
return nil
}
+func awsRestxml_deserializeDocumentPartsList(v *[]types.ObjectPart, decoder smithyxml.NodeDecoder) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ var sv []types.ObjectPart
+ if *v == nil {
+ sv = make([]types.ObjectPart, 0)
+ } else {
+ sv = *v
+ }
+
+ originalDecoder := decoder
+ for {
+ t, done, err := decoder.Token()
+ if err != nil {
+ return err
+ }
+ if done {
+ break
+ }
+ switch {
+ case strings.EqualFold("member", t.Name.Local):
+ var col types.ObjectPart
+ nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
+ destAddr := &col
+ if err := awsRestxml_deserializeDocumentObjectPart(&destAddr, nodeDecoder); err != nil {
+ return err
+ }
+ col = *destAddr
+ sv = append(sv, col)
+
+ default:
+ err = decoder.Decoder.Skip()
+ if err != nil {
+ return err
+ }
+
+ }
+ decoder = originalDecoder
+ }
+ *v = sv
+ return nil
+}
+
+func awsRestxml_deserializeDocumentPartsListUnwrapped(v *[]types.ObjectPart, decoder smithyxml.NodeDecoder) error {
+ var sv []types.ObjectPart
+ if *v == nil {
+ sv = make([]types.ObjectPart, 0)
+ } else {
+ sv = *v
+ }
+
+ switch {
+ default:
+ var mv types.ObjectPart
+ t := decoder.StartEl
+ _ = t
+ nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
+ destAddr := &mv
+ if err := awsRestxml_deserializeDocumentObjectPart(&destAddr, nodeDecoder); err != nil {
+ return err
+ }
+ mv = *destAddr
+ sv = append(sv, mv)
+ }
+ *v = sv
+ return nil
+}
func awsRestxml_deserializeDocumentPolicyStatus(v **types.PolicyStatus, decoder smithyxml.NodeDecoder) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/eventstream.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/eventstream.go
index 38d579a..d6cdb53 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/eventstream.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/eventstream.go
@@ -28,7 +28,7 @@ type SelectObjectContentEventStreamReader interface {
Err() error
}
-type selectObjectContentEventStream struct {
+type selectObjectContentEventStreamReader struct {
stream chan types.SelectObjectContentEventStream
decoder *eventstream.Decoder
eventStream io.ReadCloser
@@ -38,8 +38,8 @@ type selectObjectContentEventStream struct {
closeOnce sync.Once
}
-func newSelectObjectContentEventStream(readCloser io.ReadCloser, decoder *eventstream.Decoder) *selectObjectContentEventStream {
- w := &selectObjectContentEventStream{
+func newSelectObjectContentEventStreamReader(readCloser io.ReadCloser, decoder *eventstream.Decoder) *selectObjectContentEventStreamReader {
+ w := &selectObjectContentEventStreamReader{
stream: make(chan types.SelectObjectContentEventStream),
decoder: decoder,
eventStream: readCloser,
@@ -53,11 +53,11 @@ func newSelectObjectContentEventStream(readCloser io.ReadCloser, decoder *events
return w
}
-func (r *selectObjectContentEventStream) Events() <-chan types.SelectObjectContentEventStream {
+func (r *selectObjectContentEventStreamReader) Events() <-chan types.SelectObjectContentEventStream {
return r.stream
}
-func (r *selectObjectContentEventStream) readEventStream() {
+func (r *selectObjectContentEventStreamReader) readEventStream() {
defer r.Close()
defer close(r.stream)
@@ -92,7 +92,7 @@ func (r *selectObjectContentEventStream) readEventStream() {
}
}
-func (r *selectObjectContentEventStream) deserializeEventMessage(msg *eventstream.Message) (types.SelectObjectContentEventStream, error) {
+func (r *selectObjectContentEventStreamReader) deserializeEventMessage(msg *eventstream.Message) (types.SelectObjectContentEventStream, error) {
messageType := msg.Headers.Get(eventstreamapi.MessageTypeHeader)
if messageType == nil {
return nil, fmt.Errorf("%s event header not present", eventstreamapi.MessageTypeHeader)
@@ -133,26 +133,26 @@ func (r *selectObjectContentEventStream) deserializeEventMessage(msg *eventstrea
}
}
-func (r *selectObjectContentEventStream) ErrorSet() <-chan struct{} {
+func (r *selectObjectContentEventStreamReader) ErrorSet() <-chan struct{} {
return r.err.ErrorSet()
}
-func (r *selectObjectContentEventStream) Close() error {
+func (r *selectObjectContentEventStreamReader) Close() error {
r.closeOnce.Do(r.safeClose)
return r.Err()
}
-func (r *selectObjectContentEventStream) safeClose() {
+func (r *selectObjectContentEventStreamReader) safeClose() {
close(r.done)
r.eventStream.Close()
}
-func (r *selectObjectContentEventStream) Err() error {
+func (r *selectObjectContentEventStreamReader) Err() error {
return r.err.Err()
}
-func (r *selectObjectContentEventStream) Closed() <-chan struct{} {
+func (r *selectObjectContentEventStreamReader) Closed() <-chan struct{} {
return r.done
}
@@ -202,7 +202,7 @@ func (m *awsRestxml_deserializeOpEventStreamSelectObjectContent) HandleDeseriali
out.Result = output
}
- eventReader := newSelectObjectContentEventStream(
+ eventReader := newSelectObjectContentEventStreamReader(
deserializeOutput.Body,
eventstream.NewDecoder(func(options *eventstream.DecoderOptions) {
options.Logger = logger
@@ -234,10 +234,14 @@ func (*awsRestxml_deserializeOpEventStreamSelectObjectContent) closeResponseBody
}
func addEventStreamSelectObjectContentMiddleware(stack *middleware.Stack, options Options) error {
- return stack.Deserialize.Insert(&awsRestxml_deserializeOpEventStreamSelectObjectContent{
+ if err := stack.Deserialize.Insert(&awsRestxml_deserializeOpEventStreamSelectObjectContent{
LogEventStreamWrites: options.ClientLogMode.IsRequestEventMessage(),
LogEventStreamReads: options.ClientLogMode.IsResponseEventMessage(),
- }, "OperationDeserializer", middleware.Before)
+ }, "OperationDeserializer", middleware.Before); err != nil {
+ return err
+ }
+ return nil
+
}
// UnknownEventMessageError provides an error when a message is received from the stream,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/generated.json b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/generated.json
index 5e47a19..8643d42 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/generated.json
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/generated.json
@@ -4,13 +4,16 @@
"github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream": "v0.0.0-00010101000000-000000000000",
"github.com/aws/aws-sdk-go-v2/internal/configsources": "v0.0.0-00010101000000-000000000000",
"github.com/aws/aws-sdk-go-v2/internal/endpoints/v2": "v2.0.0-00010101000000-000000000000",
+ "github.com/aws/aws-sdk-go-v2/internal/v4a": "v0.0.0-00010101000000-000000000000",
"github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding": "v1.0.5",
+ "github.com/aws/aws-sdk-go-v2/service/internal/checksum": "v0.0.0-00010101000000-000000000000",
"github.com/aws/aws-sdk-go-v2/service/internal/presigned-url": "v1.0.7",
"github.com/aws/aws-sdk-go-v2/service/internal/s3shared": "v1.2.3",
"github.com/aws/smithy-go": "v1.4.0"
},
"files": [
"api_client.go",
+ "api_client_test.go",
"api_op_AbortMultipartUpload.go",
"api_op_CompleteMultipartUpload.go",
"api_op_CopyObject.go",
@@ -55,6 +58,7 @@
"api_op_GetBucketWebsite.go",
"api_op_GetObject.go",
"api_op_GetObjectAcl.go",
+ "api_op_GetObjectAttributes.go",
"api_op_GetObjectLegalHold.go",
"api_op_GetObjectLockConfiguration.go",
"api_op_GetObjectRetention.go",
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go
index 9ca3f77..c31f263 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go
@@ -3,4 +3,4 @@
package s3
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.19.0"
+const goModuleVersion = "1.26.11"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/process_arn_resource.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/process_arn_resource.go
index 7c68cbc..a232e62 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/process_arn_resource.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/process_arn_resource.go
@@ -11,11 +11,11 @@ import (
"github.com/aws/aws-sdk-go-v2/aws"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
+ "github.com/aws/aws-sdk-go-v2/internal/v4a"
"github.com/aws/aws-sdk-go-v2/service/internal/s3shared"
"github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn"
s3arn "github.com/aws/aws-sdk-go-v2/service/s3/internal/arn"
"github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints"
- "github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a"
)
const (
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/signer_wrapper.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/signer_wrapper.go
index 40d6682..6689acb 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/signer_wrapper.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/signer_wrapper.go
@@ -6,7 +6,7 @@ import (
"github.com/aws/aws-sdk-go-v2/aws"
v4 "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
- "github.com/aws/aws-sdk-go-v2/service/s3/internal/v4a"
+ "github.com/aws/aws-sdk-go-v2/internal/v4a"
"github.com/aws/smithy-go/middleware"
)
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/update_endpoint.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/update_endpoint.go
index 209e554..e5f9525 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/update_endpoint.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/update_endpoint.go
@@ -35,7 +35,6 @@ type UpdateEndpointParameterAccessor struct {
// UpdateEndpointOptions provides the options for the UpdateEndpoint middleware setup.
type UpdateEndpointOptions struct {
-
// Accessor are parameter accessors used by the middleware
Accessor UpdateEndpointParameterAccessor
@@ -256,8 +255,11 @@ func removeBucketFromPath(u *url.URL, bucket string) {
}
// hostCompatibleBucketName returns true if the request should
-// put the bucket in the host. This is false if S3ForcePathStyle is
-// explicitly set or if the bucket is not DNS compatible.
+// put the bucket in the host. This is false if the bucket is not
+// DNS compatible or the EndpointResolver resolves an aws.Endpoint with
+// HostnameImmutable member set to true.
+//
+// https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws#Endpoint.HostnameImmutable
func hostCompatibleBucketName(u *url.URL, bucket string) bool {
// Bucket might be DNS compatible but dots in the hostname will fail
// certificate validation, so do not use host-style.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints/endpoints.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints/endpoints.go
index baba873..cd09031 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints/endpoints.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints/endpoints.go
@@ -221,6 +221,15 @@ var defaultPartitions = endpoints.Partitions{
Hostname: "s3.dualstack.ap-southeast-2.amazonaws.com",
SignatureVersions: []string{"s3", "s3v4"},
},
+ endpoints.EndpointKey{
+ Region: "ap-southeast-3",
+ }: endpoints.Endpoint{},
+ endpoints.EndpointKey{
+ Region: "ap-southeast-3",
+ Variant: endpoints.DualStackVariant,
+ }: {
+ Hostname: "s3.dualstack.ap-southeast-3.amazonaws.com",
+ },
endpoints.EndpointKey{
Region: "aws-global",
}: endpoints.Endpoint{
@@ -791,3 +800,28 @@ func GetDNSSuffix(id string, options Options) (string, error) {
}
}
+
+// GetDNSSuffixFromRegion returns the DNS suffix for the provided region and
+// options.
+func GetDNSSuffixFromRegion(region string, options Options) (string, error) {
+ switch {
+ case partitionRegexp.Aws.MatchString(region):
+ return GetDNSSuffix("aws", options)
+
+ case partitionRegexp.AwsCn.MatchString(region):
+ return GetDNSSuffix("aws-cn", options)
+
+ case partitionRegexp.AwsIso.MatchString(region):
+ return GetDNSSuffix("aws-iso", options)
+
+ case partitionRegexp.AwsIsoB.MatchString(region):
+ return GetDNSSuffix("aws-iso-b", options)
+
+ case partitionRegexp.AwsUsGov.MatchString(region):
+ return GetDNSSuffix("aws-us-gov", options)
+
+ default:
+ return GetDNSSuffix("aws", options)
+
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/serializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/serializers.go
index ca2281b..f398aa9 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/serializers.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/serializers.go
@@ -14,6 +14,7 @@ import (
smithytime "github.com/aws/smithy-go/time"
smithyhttp "github.com/aws/smithy-go/transport/http"
"net/http"
+ "strconv"
"strings"
)
@@ -176,6 +177,26 @@ func awsRestxml_serializeOpHttpBindingsCompleteMultipartUploadInput(v *CompleteM
}
}
+ if v.ChecksumCRC32 != nil && len(*v.ChecksumCRC32) > 0 {
+ locationName := "X-Amz-Checksum-Crc32"
+ encoder.SetHeader(locationName).String(*v.ChecksumCRC32)
+ }
+
+ if v.ChecksumCRC32C != nil && len(*v.ChecksumCRC32C) > 0 {
+ locationName := "X-Amz-Checksum-Crc32c"
+ encoder.SetHeader(locationName).String(*v.ChecksumCRC32C)
+ }
+
+ if v.ChecksumSHA1 != nil && len(*v.ChecksumSHA1) > 0 {
+ locationName := "X-Amz-Checksum-Sha1"
+ encoder.SetHeader(locationName).String(*v.ChecksumSHA1)
+ }
+
+ if v.ChecksumSHA256 != nil && len(*v.ChecksumSHA256) > 0 {
+ locationName := "X-Amz-Checksum-Sha256"
+ encoder.SetHeader(locationName).String(*v.ChecksumSHA256)
+ }
+
if v.ExpectedBucketOwner != nil && len(*v.ExpectedBucketOwner) > 0 {
locationName := "X-Amz-Expected-Bucket-Owner"
encoder.SetHeader(locationName).String(*v.ExpectedBucketOwner)
@@ -195,6 +216,21 @@ func awsRestxml_serializeOpHttpBindingsCompleteMultipartUploadInput(v *CompleteM
encoder.SetHeader(locationName).String(string(v.RequestPayer))
}
+ if v.SSECustomerAlgorithm != nil && len(*v.SSECustomerAlgorithm) > 0 {
+ locationName := "X-Amz-Server-Side-Encryption-Customer-Algorithm"
+ encoder.SetHeader(locationName).String(*v.SSECustomerAlgorithm)
+ }
+
+ if v.SSECustomerKey != nil && len(*v.SSECustomerKey) > 0 {
+ locationName := "X-Amz-Server-Side-Encryption-Customer-Key"
+ encoder.SetHeader(locationName).String(*v.SSECustomerKey)
+ }
+
+ if v.SSECustomerKeyMD5 != nil && len(*v.SSECustomerKeyMD5) > 0 {
+ locationName := "X-Amz-Server-Side-Encryption-Customer-Key-Md5"
+ encoder.SetHeader(locationName).String(*v.SSECustomerKeyMD5)
+ }
+
if v.UploadId != nil {
encoder.SetQuery("uploadId").String(*v.UploadId)
}
@@ -272,6 +308,11 @@ func awsRestxml_serializeOpHttpBindingsCopyObjectInput(v *CopyObjectInput, encod
encoder.SetHeader(locationName).String(*v.CacheControl)
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentDisposition != nil && len(*v.ContentDisposition) > 0 {
locationName := "Content-Disposition"
encoder.SetHeader(locationName).String(*v.ContentDisposition)
@@ -576,6 +617,11 @@ func awsRestxml_serializeOpHttpBindingsCreateBucketInput(v *CreateBucketInput, e
encoder.SetHeader(locationName).Boolean(v.ObjectLockEnabledForBucket)
}
+ if len(v.ObjectOwnership) > 0 {
+ locationName := "X-Amz-Object-Ownership"
+ encoder.SetHeader(locationName).String(string(v.ObjectOwnership))
+ }
+
return nil
}
@@ -649,6 +695,11 @@ func awsRestxml_serializeOpHttpBindingsCreateMultipartUploadInput(v *CreateMulti
encoder.SetHeader(locationName).String(*v.CacheControl)
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentDisposition != nil && len(*v.ContentDisposition) > 0 {
locationName := "Content-Disposition"
encoder.SetHeader(locationName).String(*v.ContentDisposition)
@@ -1789,6 +1840,11 @@ func awsRestxml_serializeOpHttpBindingsDeleteObjectsInput(v *DeleteObjectsInput,
encoder.SetHeader(locationName).Boolean(v.BypassGovernanceRetention)
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ExpectedBucketOwner != nil && len(*v.ExpectedBucketOwner) > 0 {
locationName := "X-Amz-Expected-Bucket-Owner"
encoder.SetHeader(locationName).String(*v.ExpectedBucketOwner)
@@ -3272,6 +3328,11 @@ func awsRestxml_serializeOpHttpBindingsGetObjectInput(v *GetObjectInput, encoder
}
}
+ if len(v.ChecksumMode) > 0 {
+ locationName := "X-Amz-Checksum-Mode"
+ encoder.SetHeader(locationName).String(string(v.ChecksumMode))
+ }
+
if v.ExpectedBucketOwner != nil && len(*v.ExpectedBucketOwner) > 0 {
locationName := "X-Amz-Expected-Bucket-Owner"
encoder.SetHeader(locationName).String(*v.ExpectedBucketOwner)
@@ -3447,6 +3508,126 @@ func awsRestxml_serializeOpHttpBindingsGetObjectAclInput(v *GetObjectAclInput, e
return nil
}
+type awsRestxml_serializeOpGetObjectAttributes struct {
+}
+
+func (*awsRestxml_serializeOpGetObjectAttributes) ID() string {
+ return "OperationSerializer"
+}
+
+func (m *awsRestxml_serializeOpGetObjectAttributes) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
+ out middleware.SerializeOutput, metadata middleware.Metadata, err error,
+) {
+ request, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
+ }
+
+ input, ok := in.Parameters.(*GetObjectAttributesInput)
+ _ = input
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
+ }
+
+ opPath, opQuery := httpbinding.SplitURI("/{Bucket}/{Key+}?attributes")
+ request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
+ request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
+ request.Method = "GET"
+ restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
+ if err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if err := awsRestxml_serializeOpHttpBindingsGetObjectAttributesInput(input, restEncoder); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request.Request, err = restEncoder.Encode(request.Request); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ in.Request = request
+
+ return next.HandleSerialize(ctx, in)
+}
+func awsRestxml_serializeOpHttpBindingsGetObjectAttributesInput(v *GetObjectAttributesInput, encoder *httpbinding.Encoder) error {
+ if v == nil {
+ return fmt.Errorf("unsupported serialization of nil %T", v)
+ }
+
+ if v.Bucket == nil || len(*v.Bucket) == 0 {
+ return &smithy.SerializationError{Err: fmt.Errorf("input member Bucket must not be empty")}
+ }
+ if v.Bucket != nil {
+ if err := encoder.SetURI("Bucket").String(*v.Bucket); err != nil {
+ return err
+ }
+ }
+
+ if v.ExpectedBucketOwner != nil && len(*v.ExpectedBucketOwner) > 0 {
+ locationName := "X-Amz-Expected-Bucket-Owner"
+ encoder.SetHeader(locationName).String(*v.ExpectedBucketOwner)
+ }
+
+ if v.Key == nil || len(*v.Key) == 0 {
+ return &smithy.SerializationError{Err: fmt.Errorf("input member Key must not be empty")}
+ }
+ if v.Key != nil {
+ if err := encoder.SetURI("Key").String(*v.Key); err != nil {
+ return err
+ }
+ }
+
+ if v.MaxParts != 0 {
+ locationName := "X-Amz-Max-Parts"
+ encoder.SetHeader(locationName).Integer(v.MaxParts)
+ }
+
+ if v.ObjectAttributes != nil {
+ locationName := "X-Amz-Object-Attributes"
+ for i := range v.ObjectAttributes {
+ if len(v.ObjectAttributes[i]) > 0 {
+ escaped := string(v.ObjectAttributes[i])
+ if strings.Index(string(v.ObjectAttributes[i]), `,`) != -1 || strings.Index(string(v.ObjectAttributes[i]), `"`) != -1 {
+ escaped = strconv.Quote(string(v.ObjectAttributes[i]))
+ }
+
+ encoder.AddHeader(locationName).String(string(escaped))
+ }
+ }
+ }
+
+ if v.PartNumberMarker != nil && len(*v.PartNumberMarker) > 0 {
+ locationName := "X-Amz-Part-Number-Marker"
+ encoder.SetHeader(locationName).String(*v.PartNumberMarker)
+ }
+
+ if len(v.RequestPayer) > 0 {
+ locationName := "X-Amz-Request-Payer"
+ encoder.SetHeader(locationName).String(string(v.RequestPayer))
+ }
+
+ if v.SSECustomerAlgorithm != nil && len(*v.SSECustomerAlgorithm) > 0 {
+ locationName := "X-Amz-Server-Side-Encryption-Customer-Algorithm"
+ encoder.SetHeader(locationName).String(*v.SSECustomerAlgorithm)
+ }
+
+ if v.SSECustomerKey != nil && len(*v.SSECustomerKey) > 0 {
+ locationName := "X-Amz-Server-Side-Encryption-Customer-Key"
+ encoder.SetHeader(locationName).String(*v.SSECustomerKey)
+ }
+
+ if v.SSECustomerKeyMD5 != nil && len(*v.SSECustomerKeyMD5) > 0 {
+ locationName := "X-Amz-Server-Side-Encryption-Customer-Key-Md5"
+ encoder.SetHeader(locationName).String(*v.SSECustomerKeyMD5)
+ }
+
+ if v.VersionId != nil {
+ encoder.SetQuery("versionId").String(*v.VersionId)
+ }
+
+ return nil
+}
+
type awsRestxml_serializeOpGetObjectLegalHold struct {
}
@@ -4011,6 +4192,11 @@ func awsRestxml_serializeOpHttpBindingsHeadObjectInput(v *HeadObjectInput, encod
}
}
+ if len(v.ChecksumMode) > 0 {
+ locationName := "X-Amz-Checksum-Mode"
+ encoder.SetHeader(locationName).String(string(v.ChecksumMode))
+ }
+
if v.ExpectedBucketOwner != nil && len(*v.ExpectedBucketOwner) > 0 {
locationName := "X-Amz-Expected-Bucket-Owner"
encoder.SetHeader(locationName).String(*v.ExpectedBucketOwner)
@@ -4829,6 +5015,21 @@ func awsRestxml_serializeOpHttpBindingsListPartsInput(v *ListPartsInput, encoder
encoder.SetHeader(locationName).String(string(v.RequestPayer))
}
+ if v.SSECustomerAlgorithm != nil && len(*v.SSECustomerAlgorithm) > 0 {
+ locationName := "X-Amz-Server-Side-Encryption-Customer-Algorithm"
+ encoder.SetHeader(locationName).String(*v.SSECustomerAlgorithm)
+ }
+
+ if v.SSECustomerKey != nil && len(*v.SSECustomerKey) > 0 {
+ locationName := "X-Amz-Server-Side-Encryption-Customer-Key"
+ encoder.SetHeader(locationName).String(*v.SSECustomerKey)
+ }
+
+ if v.SSECustomerKeyMD5 != nil && len(*v.SSECustomerKeyMD5) > 0 {
+ locationName := "X-Amz-Server-Side-Encryption-Customer-Key-Md5"
+ encoder.SetHeader(locationName).String(*v.SSECustomerKeyMD5)
+ }
+
if v.UploadId != nil {
encoder.SetQuery("uploadId").String(*v.UploadId)
}
@@ -4914,6 +5115,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketAccelerateConfigurationInput(v *
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ExpectedBucketOwner != nil && len(*v.ExpectedBucketOwner) > 0 {
locationName := "X-Amz-Expected-Bucket-Owner"
encoder.SetHeader(locationName).String(*v.ExpectedBucketOwner)
@@ -5005,6 +5211,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketAclInput(v *PutBucketAclInput, e
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -5211,6 +5422,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketCorsInput(v *PutBucketCorsInput,
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -5302,6 +5518,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketEncryptionInput(v *PutBucketEncr
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -5568,6 +5789,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketLifecycleConfigurationInput(v *P
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ExpectedBucketOwner != nil && len(*v.ExpectedBucketOwner) > 0 {
locationName := "X-Amz-Expected-Bucket-Owner"
encoder.SetHeader(locationName).String(*v.ExpectedBucketOwner)
@@ -5654,6 +5880,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketLoggingInput(v *PutBucketLogging
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -5840,6 +6071,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketNotificationConfigurationInput(v
encoder.SetHeader(locationName).String(*v.ExpectedBucketOwner)
}
+ if v.SkipDestinationValidation {
+ locationName := "X-Amz-Skip-Destination-Validation"
+ encoder.SetHeader(locationName).Boolean(v.SkipDestinationValidation)
+ }
+
return nil
}
@@ -6000,6 +6236,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketPolicyInput(v *PutBucketPolicyIn
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ConfirmRemoveSelfBucketAccess {
locationName := "X-Amz-Confirm-Remove-Self-Bucket-Access"
encoder.SetHeader(locationName).Boolean(v.ConfirmRemoveSelfBucketAccess)
@@ -6096,6 +6337,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketReplicationInput(v *PutBucketRep
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -6192,6 +6438,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketRequestPaymentInput(v *PutBucket
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -6283,6 +6534,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketTaggingInput(v *PutBucketTagging
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -6374,6 +6630,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketVersioningInput(v *PutBucketVers
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -6470,6 +6731,11 @@ func awsRestxml_serializeOpHttpBindingsPutBucketWebsiteInput(v *PutBucketWebsite
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -6564,6 +6830,31 @@ func awsRestxml_serializeOpHttpBindingsPutObjectInput(v *PutObjectInput, encoder
encoder.SetHeader(locationName).String(*v.CacheControl)
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
+ if v.ChecksumCRC32 != nil && len(*v.ChecksumCRC32) > 0 {
+ locationName := "X-Amz-Checksum-Crc32"
+ encoder.SetHeader(locationName).String(*v.ChecksumCRC32)
+ }
+
+ if v.ChecksumCRC32C != nil && len(*v.ChecksumCRC32C) > 0 {
+ locationName := "X-Amz-Checksum-Crc32c"
+ encoder.SetHeader(locationName).String(*v.ChecksumCRC32C)
+ }
+
+ if v.ChecksumSHA1 != nil && len(*v.ChecksumSHA1) > 0 {
+ locationName := "X-Amz-Checksum-Sha1"
+ encoder.SetHeader(locationName).String(*v.ChecksumSHA1)
+ }
+
+ if v.ChecksumSHA256 != nil && len(*v.ChecksumSHA256) > 0 {
+ locationName := "X-Amz-Checksum-Sha256"
+ encoder.SetHeader(locationName).String(*v.ChecksumSHA256)
+ }
+
if v.ContentDisposition != nil && len(*v.ContentDisposition) > 0 {
locationName := "Content-Disposition"
encoder.SetHeader(locationName).String(*v.ContentDisposition)
@@ -6793,6 +7084,11 @@ func awsRestxml_serializeOpHttpBindingsPutObjectAclInput(v *PutObjectAclInput, e
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -6927,6 +7223,11 @@ func awsRestxml_serializeOpHttpBindingsPutObjectLegalHoldInput(v *PutObjectLegal
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -7036,6 +7337,11 @@ func awsRestxml_serializeOpHttpBindingsPutObjectLockConfigurationInput(v *PutObj
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -7142,6 +7448,11 @@ func awsRestxml_serializeOpHttpBindingsPutObjectRetentionInput(v *PutObjectReten
encoder.SetHeader(locationName).Boolean(v.BypassGovernanceRetention)
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -7251,6 +7562,11 @@ func awsRestxml_serializeOpHttpBindingsPutObjectTaggingInput(v *PutObjectTagging
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -7360,6 +7676,11 @@ func awsRestxml_serializeOpHttpBindingsPutPublicAccessBlockInput(v *PutPublicAcc
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ContentMD5 != nil && len(*v.ContentMD5) > 0 {
locationName := "Content-Md5"
encoder.SetHeader(locationName).String(*v.ContentMD5)
@@ -7451,6 +7772,11 @@ func awsRestxml_serializeOpHttpBindingsRestoreObjectInput(v *RestoreObjectInput,
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
if v.ExpectedBucketOwner != nil && len(*v.ExpectedBucketOwner) > 0 {
locationName := "X-Amz-Expected-Bucket-Owner"
encoder.SetHeader(locationName).String(*v.ExpectedBucketOwner)
@@ -7727,6 +8053,31 @@ func awsRestxml_serializeOpHttpBindingsUploadPartInput(v *UploadPartInput, encod
}
}
+ if len(v.ChecksumAlgorithm) > 0 {
+ locationName := "X-Amz-Sdk-Checksum-Algorithm"
+ encoder.SetHeader(locationName).String(string(v.ChecksumAlgorithm))
+ }
+
+ if v.ChecksumCRC32 != nil && len(*v.ChecksumCRC32) > 0 {
+ locationName := "X-Amz-Checksum-Crc32"
+ encoder.SetHeader(locationName).String(*v.ChecksumCRC32)
+ }
+
+ if v.ChecksumCRC32C != nil && len(*v.ChecksumCRC32C) > 0 {
+ locationName := "X-Amz-Checksum-Crc32c"
+ encoder.SetHeader(locationName).String(*v.ChecksumCRC32C)
+ }
+
+ if v.ChecksumSHA1 != nil && len(*v.ChecksumSHA1) > 0 {
+ locationName := "X-Amz-Checksum-Sha1"
+ encoder.SetHeader(locationName).String(*v.ChecksumSHA1)
+ }
+
+ if v.ChecksumSHA256 != nil && len(*v.ChecksumSHA256) > 0 {
+ locationName := "X-Amz-Checksum-Sha256"
+ encoder.SetHeader(locationName).String(*v.ChecksumSHA256)
+ }
+
if v.ContentLength != 0 {
locationName := "Content-Length"
encoder.SetHeader(locationName).Long(v.ContentLength)
@@ -8004,6 +8355,26 @@ func awsRestxml_serializeOpHttpBindingsWriteGetObjectResponseInput(v *WriteGetOb
encoder.SetHeader(locationName).String(*v.CacheControl)
}
+ if v.ChecksumCRC32 != nil && len(*v.ChecksumCRC32) > 0 {
+ locationName := "X-Amz-Fwd-Header-X-Amz-Checksum-Crc32"
+ encoder.SetHeader(locationName).String(*v.ChecksumCRC32)
+ }
+
+ if v.ChecksumCRC32C != nil && len(*v.ChecksumCRC32C) > 0 {
+ locationName := "X-Amz-Fwd-Header-X-Amz-Checksum-Crc32c"
+ encoder.SetHeader(locationName).String(*v.ChecksumCRC32C)
+ }
+
+ if v.ChecksumSHA1 != nil && len(*v.ChecksumSHA1) > 0 {
+ locationName := "X-Amz-Fwd-Header-X-Amz-Checksum-Sha1"
+ encoder.SetHeader(locationName).String(*v.ChecksumSHA1)
+ }
+
+ if v.ChecksumSHA256 != nil && len(*v.ChecksumSHA256) > 0 {
+ locationName := "X-Amz-Fwd-Header-X-Amz-Checksum-Sha256"
+ encoder.SetHeader(locationName).String(*v.ChecksumSHA256)
+ }
+
if v.ContentDisposition != nil && len(*v.ContentDisposition) > 0 {
locationName := "X-Amz-Fwd-Header-Content-Disposition"
encoder.SetHeader(locationName).String(*v.ContentDisposition)
@@ -8530,6 +8901,50 @@ func awsRestxml_serializeDocumentCompletedMultipartUpload(v *types.CompletedMult
func awsRestxml_serializeDocumentCompletedPart(v *types.CompletedPart, value smithyxml.Value) error {
defer value.Close()
+ if v.ChecksumCRC32 != nil {
+ rootAttr := []smithyxml.Attr{}
+ root := smithyxml.StartElement{
+ Name: smithyxml.Name{
+ Local: "ChecksumCRC32",
+ },
+ Attr: rootAttr,
+ }
+ el := value.MemberElement(root)
+ el.String(*v.ChecksumCRC32)
+ }
+ if v.ChecksumCRC32C != nil {
+ rootAttr := []smithyxml.Attr{}
+ root := smithyxml.StartElement{
+ Name: smithyxml.Name{
+ Local: "ChecksumCRC32C",
+ },
+ Attr: rootAttr,
+ }
+ el := value.MemberElement(root)
+ el.String(*v.ChecksumCRC32C)
+ }
+ if v.ChecksumSHA1 != nil {
+ rootAttr := []smithyxml.Attr{}
+ root := smithyxml.StartElement{
+ Name: smithyxml.Name{
+ Local: "ChecksumSHA1",
+ },
+ Attr: rootAttr,
+ }
+ el := value.MemberElement(root)
+ el.String(*v.ChecksumSHA1)
+ }
+ if v.ChecksumSHA256 != nil {
+ rootAttr := []smithyxml.Attr{}
+ root := smithyxml.StartElement{
+ Name: smithyxml.Name{
+ Local: "ChecksumSHA256",
+ },
+ Attr: rootAttr,
+ }
+ el := value.MemberElement(root)
+ el.String(*v.ChecksumSHA256)
+ }
if v.ETag != nil {
rootAttr := []smithyxml.Attr{}
root := smithyxml.StartElement{
@@ -9110,6 +9525,11 @@ func awsRestxml_serializeDocumentErrorDocument(v *types.ErrorDocument, value smi
return nil
}
+func awsRestxml_serializeDocumentEventBridgeConfiguration(v *types.EventBridgeConfiguration, value smithyxml.Value) error {
+ defer value.Close()
+ return nil
+}
+
func awsRestxml_serializeDocumentEventList(v []types.Event, value smithyxml.Value) error {
var array *smithyxml.Array
if !value.IsFlattened() {
@@ -10020,6 +10440,28 @@ func awsRestxml_serializeDocumentLifecycleRule(v *types.LifecycleRule, value smi
func awsRestxml_serializeDocumentLifecycleRuleAndOperator(v *types.LifecycleRuleAndOperator, value smithyxml.Value) error {
defer value.Close()
+ if v.ObjectSizeGreaterThan != 0 {
+ rootAttr := []smithyxml.Attr{}
+ root := smithyxml.StartElement{
+ Name: smithyxml.Name{
+ Local: "ObjectSizeGreaterThan",
+ },
+ Attr: rootAttr,
+ }
+ el := value.MemberElement(root)
+ el.Long(v.ObjectSizeGreaterThan)
+ }
+ if v.ObjectSizeLessThan != 0 {
+ rootAttr := []smithyxml.Attr{}
+ root := smithyxml.StartElement{
+ Name: smithyxml.Name{
+ Local: "ObjectSizeLessThan",
+ },
+ Attr: rootAttr,
+ }
+ el := value.MemberElement(root)
+ el.Long(v.ObjectSizeLessThan)
+ }
if v.Prefix != nil {
rootAttr := []smithyxml.Attr{}
root := smithyxml.StartElement{
@@ -10063,6 +10505,28 @@ func awsRestxml_serializeDocumentLifecycleRuleFilter(v types.LifecycleRuleFilter
return err
}
+ case *types.LifecycleRuleFilterMemberObjectSizeGreaterThan:
+ customMemberNameAttr := []smithyxml.Attr{}
+ customMemberName := smithyxml.StartElement{
+ Name: smithyxml.Name{
+ Local: "ObjectSizeGreaterThan",
+ },
+ Attr: customMemberNameAttr,
+ }
+ av := value.MemberElement(customMemberName)
+ av.Long(uv.Value)
+
+ case *types.LifecycleRuleFilterMemberObjectSizeLessThan:
+ customMemberNameAttr := []smithyxml.Attr{}
+ customMemberName := smithyxml.StartElement{
+ Name: smithyxml.Name{
+ Local: "ObjectSizeLessThan",
+ },
+ Attr: customMemberNameAttr,
+ }
+ av := value.MemberElement(customMemberName)
+ av.Long(uv.Value)
+
case *types.LifecycleRuleFilterMemberPrefix:
customMemberNameAttr := []smithyxml.Attr{}
customMemberName := smithyxml.StartElement{
@@ -10334,6 +10798,17 @@ func awsRestxml_serializeDocumentMetricsFilter(v types.MetricsFilter, value smit
func awsRestxml_serializeDocumentNoncurrentVersionExpiration(v *types.NoncurrentVersionExpiration, value smithyxml.Value) error {
defer value.Close()
+ if v.NewerNoncurrentVersions != 0 {
+ rootAttr := []smithyxml.Attr{}
+ root := smithyxml.StartElement{
+ Name: smithyxml.Name{
+ Local: "NewerNoncurrentVersions",
+ },
+ Attr: rootAttr,
+ }
+ el := value.MemberElement(root)
+ el.Integer(v.NewerNoncurrentVersions)
+ }
if v.NoncurrentDays != 0 {
rootAttr := []smithyxml.Attr{}
root := smithyxml.StartElement{
@@ -10350,6 +10825,17 @@ func awsRestxml_serializeDocumentNoncurrentVersionExpiration(v *types.Noncurrent
func awsRestxml_serializeDocumentNoncurrentVersionTransition(v *types.NoncurrentVersionTransition, value smithyxml.Value) error {
defer value.Close()
+ if v.NewerNoncurrentVersions != 0 {
+ rootAttr := []smithyxml.Attr{}
+ root := smithyxml.StartElement{
+ Name: smithyxml.Name{
+ Local: "NewerNoncurrentVersions",
+ },
+ Attr: rootAttr,
+ }
+ el := value.MemberElement(root)
+ el.Integer(v.NewerNoncurrentVersions)
+ }
if v.NoncurrentDays != 0 {
rootAttr := []smithyxml.Attr{}
root := smithyxml.StartElement{
@@ -10392,6 +10878,19 @@ func awsRestxml_serializeDocumentNoncurrentVersionTransitionList(v []types.Noncu
func awsRestxml_serializeDocumentNotificationConfiguration(v *types.NotificationConfiguration, value smithyxml.Value) error {
defer value.Close()
+ if v.EventBridgeConfiguration != nil {
+ rootAttr := []smithyxml.Attr{}
+ root := smithyxml.StartElement{
+ Name: smithyxml.Name{
+ Local: "EventBridgeConfiguration",
+ },
+ Attr: rootAttr,
+ }
+ el := value.MemberElement(root)
+ if err := awsRestxml_serializeDocumentEventBridgeConfiguration(v.EventBridgeConfiguration, el); err != nil {
+ return err
+ }
+ }
if v.LambdaFunctionConfigurations != nil {
rootAttr := []smithyxml.Attr{}
root := smithyxml.StartElement{
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go
index 5ead561..5b52540 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go
@@ -178,6 +178,44 @@ func (BucketVersioningStatus) Values() []BucketVersioningStatus {
}
}
+type ChecksumAlgorithm string
+
+// Enum values for ChecksumAlgorithm
+const (
+ ChecksumAlgorithmCrc32 ChecksumAlgorithm = "CRC32"
+ ChecksumAlgorithmCrc32c ChecksumAlgorithm = "CRC32C"
+ ChecksumAlgorithmSha1 ChecksumAlgorithm = "SHA1"
+ ChecksumAlgorithmSha256 ChecksumAlgorithm = "SHA256"
+)
+
+// Values returns all known values for ChecksumAlgorithm. Note that this can be
+// expanded in the future, and so it is only as up to date as the client. The
+// ordering of this slice is not guaranteed to be stable across updates.
+func (ChecksumAlgorithm) Values() []ChecksumAlgorithm {
+ return []ChecksumAlgorithm{
+ "CRC32",
+ "CRC32C",
+ "SHA1",
+ "SHA256",
+ }
+}
+
+type ChecksumMode string
+
+// Enum values for ChecksumMode
+const (
+ ChecksumModeEnabled ChecksumMode = "ENABLED"
+)
+
+// Values returns all known values for ChecksumMode. Note that this can be expanded
+// in the future, and so it is only as up to date as the client. The ordering of
+// this slice is not guaranteed to be stable across updates.
+func (ChecksumMode) Values() []ChecksumMode {
+ return []ChecksumMode{
+ "ENABLED",
+ }
+}
+
type CompressionType string
// Enum values for CompressionType
@@ -257,6 +295,16 @@ func (Event) Values() []Event {
"s3:Replication:OperationNotTracked",
"s3:Replication:OperationMissedThreshold",
"s3:Replication:OperationReplicatedAfterThreshold",
+ "s3:ObjectRestore:Delete",
+ "s3:LifecycleTransition",
+ "s3:IntelligentTiering",
+ "s3:ObjectAcl:Put",
+ "s3:LifecycleExpiration:*",
+ "s3:LifecycleExpiration:Delete",
+ "s3:LifecycleExpiration:DeleteMarkerCreated",
+ "s3:ObjectTagging:*",
+ "s3:ObjectTagging:Put",
+ "s3:ObjectTagging:Delete",
}
}
@@ -460,6 +508,7 @@ const (
InventoryOptionalFieldObjectLockLegalHoldStatus InventoryOptionalField = "ObjectLockLegalHoldStatus"
InventoryOptionalFieldIntelligentTieringAccessTier InventoryOptionalField = "IntelligentTieringAccessTier"
InventoryOptionalFieldBucketKeyStatus InventoryOptionalField = "BucketKeyStatus"
+ InventoryOptionalFieldChecksumAlgorithm InventoryOptionalField = "ChecksumAlgorithm"
)
// Values returns all known values for InventoryOptionalField. Note that this can
@@ -479,6 +528,7 @@ func (InventoryOptionalField) Values() []InventoryOptionalField {
"ObjectLockLegalHoldStatus",
"IntelligentTieringAccessTier",
"BucketKeyStatus",
+ "ChecksumAlgorithm",
}
}
@@ -572,6 +622,30 @@ func (MFADeleteStatus) Values() []MFADeleteStatus {
}
}
+type ObjectAttributes string
+
+// Enum values for ObjectAttributes
+const (
+ ObjectAttributesEtag ObjectAttributes = "ETag"
+ ObjectAttributesChecksum ObjectAttributes = "Checksum"
+ ObjectAttributesObjectParts ObjectAttributes = "ObjectParts"
+ ObjectAttributesStorageClass ObjectAttributes = "StorageClass"
+ ObjectAttributesObjectSize ObjectAttributes = "ObjectSize"
+)
+
+// Values returns all known values for ObjectAttributes. Note that this can be
+// expanded in the future, and so it is only as up to date as the client. The
+// ordering of this slice is not guaranteed to be stable across updates.
+func (ObjectAttributes) Values() []ObjectAttributes {
+ return []ObjectAttributes{
+ "ETag",
+ "Checksum",
+ "ObjectParts",
+ "StorageClass",
+ "ObjectSize",
+ }
+}
+
type ObjectCannedACL string
// Enum values for ObjectCannedACL
@@ -676,6 +750,7 @@ type ObjectOwnership string
const (
ObjectOwnershipBucketOwnerPreferred ObjectOwnership = "BucketOwnerPreferred"
ObjectOwnershipObjectWriter ObjectOwnership = "ObjectWriter"
+ ObjectOwnershipBucketOwnerEnforced ObjectOwnership = "BucketOwnerEnforced"
)
// Values returns all known values for ObjectOwnership. Note that this can be
@@ -685,6 +760,7 @@ func (ObjectOwnership) Values() []ObjectOwnership {
return []ObjectOwnership{
"BucketOwnerPreferred",
"ObjectWriter",
+ "BucketOwnerEnforced",
}
}
@@ -700,6 +776,7 @@ const (
ObjectStorageClassIntelligentTiering ObjectStorageClass = "INTELLIGENT_TIERING"
ObjectStorageClassDeepArchive ObjectStorageClass = "DEEP_ARCHIVE"
ObjectStorageClassOutposts ObjectStorageClass = "OUTPOSTS"
+ ObjectStorageClassGlacierIr ObjectStorageClass = "GLACIER_IR"
)
// Values returns all known values for ObjectStorageClass. Note that this can be
@@ -715,6 +792,7 @@ func (ObjectStorageClass) Values() []ObjectStorageClass {
"INTELLIGENT_TIERING",
"DEEP_ARCHIVE",
"OUTPOSTS",
+ "GLACIER_IR",
}
}
@@ -1000,6 +1078,7 @@ const (
StorageClassGlacier StorageClass = "GLACIER"
StorageClassDeepArchive StorageClass = "DEEP_ARCHIVE"
StorageClassOutposts StorageClass = "OUTPOSTS"
+ StorageClassGlacierIr StorageClass = "GLACIER_IR"
)
// Values returns all known values for StorageClass. Note that this can be expanded
@@ -1015,6 +1094,7 @@ func (StorageClass) Values() []StorageClass {
"GLACIER",
"DEEP_ARCHIVE",
"OUTPOSTS",
+ "GLACIER_IR",
}
}
@@ -1082,6 +1162,7 @@ const (
TransitionStorageClassOnezoneIa TransitionStorageClass = "ONEZONE_IA"
TransitionStorageClassIntelligentTiering TransitionStorageClass = "INTELLIGENT_TIERING"
TransitionStorageClassDeepArchive TransitionStorageClass = "DEEP_ARCHIVE"
+ TransitionStorageClassGlacierIr TransitionStorageClass = "GLACIER_IR"
)
// Values returns all known values for TransitionStorageClass. Note that this can
@@ -1094,6 +1175,7 @@ func (TransitionStorageClass) Values() []TransitionStorageClass {
"ONEZONE_IA",
"INTELLIGENT_TIERING",
"DEEP_ARCHIVE",
+ "GLACIER_IR",
}
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/types.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/types.go
index 9bb2e28..a9692d0 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/types.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/types.go
@@ -215,6 +215,44 @@ type BucketLoggingStatus struct {
noSmithyDocumentSerde
}
+// Contains all the possible checksum or digest values for an object.
+type Checksum struct {
+
+ // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
+ noSmithyDocumentSerde
+}
+
// Container for all (if there are any) keys between Prefix and the next occurrence
// of the string specified by a delimiter. CommonPrefixes lists keys that act like
// subdirectories in the directory specified by Prefix. For example, if the prefix
@@ -231,7 +269,8 @@ type CommonPrefix struct {
// The container for the completed multipart upload details.
type CompletedMultipartUpload struct {
- // Array of CompletedPart data types.
+ // Array of CompletedPart data types. If you do not supply a valid Part with your
+ // request, the service sends back an HTTP 400 response.
Parts []CompletedPart
noSmithyDocumentSerde
@@ -240,6 +279,38 @@ type CompletedMultipartUpload struct {
// Details of the parts that were uploaded.
type CompletedPart struct {
+ // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// Entity tag returned when the part was uploaded.
ETag *string
@@ -286,6 +357,38 @@ type ContinuationEvent struct {
// Container for all response elements.
type CopyObjectResult struct {
+ // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// Returns the ETag of the new object. The ETag reflects only changes to the
// contents of an object, not its metadata.
ETag *string
@@ -299,6 +402,38 @@ type CopyObjectResult struct {
// Container for all response elements.
type CopyPartResult struct {
+ // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// Entity tag of the object.
ETag *string
@@ -1620,6 +1755,11 @@ type ErrorDocument struct {
noSmithyDocumentSerde
}
+// A container for specifying the configuration for Amazon EventBridge.
+type EventBridgeConfiguration struct {
+ noSmithyDocumentSerde
+}
+
// Optional configuration to replicate existing source bucket objects. For more
// information, see Replicating Existing Objects
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication)
@@ -1652,6 +1792,35 @@ type FilterRule struct {
noSmithyDocumentSerde
}
+// A collection of parts associated with a multipart upload.
+type GetObjectAttributesParts struct {
+
+ // Indicates whether the returned list of parts is truncated. A value of true
+ // indicates that the list was truncated. A list can be truncated if the number of
+ // parts exceeds the limit returned in the MaxParts element.
+ IsTruncated bool
+
+ // The maximum number of parts allowed in the response.
+ MaxParts int32
+
+ // When a list is truncated, this element specifies the last part in the list, as
+ // well as the value to use for the PartNumberMarker request parameter in a
+ // subsequent request.
+ NextPartNumberMarker *string
+
+ // The marker for the current part.
+ PartNumberMarker *string
+
+ // A container for elements related to a particular part. A response can contain
+ // zero or more Parts elements.
+ Parts []ObjectPart
+
+ // The total number of parts.
+ TotalPartsCount int32
+
+ noSmithyDocumentSerde
+}
+
// Container for S3 Glacier job parameters.
type GlacierJobParameters struct {
@@ -2054,7 +2223,7 @@ type LifecycleRule struct {
// The Filter is used to identify objects that a Lifecycle Rule applies to. A
// Filter must have exactly one of Prefix, Tag, or And specified. Filter is
- // required if the LifecycleRule does not containt a Prefix element.
+ // required if the LifecycleRule does not contain a Prefix element.
Filter LifecycleRuleFilter
// Unique identifier for the rule. The value cannot be longer than 255 characters.
@@ -2094,6 +2263,12 @@ type LifecycleRule struct {
// predicates configured inside the And operator.
type LifecycleRuleAndOperator struct {
+ // Minimum object size to which the rule applies.
+ ObjectSizeGreaterThan int64
+
+ // Maximum object size to which the rule applies.
+ ObjectSizeLessThan int64
+
// Prefix identifying one or more objects to which the rule applies.
Prefix *string
@@ -2109,6 +2284,8 @@ type LifecycleRuleAndOperator struct {
//
// The following types satisfy this interface:
// LifecycleRuleFilterMemberAnd
+// LifecycleRuleFilterMemberObjectSizeGreaterThan
+// LifecycleRuleFilterMemberObjectSizeLessThan
// LifecycleRuleFilterMemberPrefix
// LifecycleRuleFilterMemberTag
type LifecycleRuleFilter interface {
@@ -2126,6 +2303,24 @@ type LifecycleRuleFilterMemberAnd struct {
func (*LifecycleRuleFilterMemberAnd) isLifecycleRuleFilter() {}
+// Minimum object size to which the rule applies.
+type LifecycleRuleFilterMemberObjectSizeGreaterThan struct {
+ Value int64
+
+ noSmithyDocumentSerde
+}
+
+func (*LifecycleRuleFilterMemberObjectSizeGreaterThan) isLifecycleRuleFilter() {}
+
+// Maximum object size to which the rule applies.
+type LifecycleRuleFilterMemberObjectSizeLessThan struct {
+ Value int64
+
+ noSmithyDocumentSerde
+}
+
+func (*LifecycleRuleFilterMemberObjectSizeLessThan) isLifecycleRuleFilter() {}
+
// Prefix identifying one or more objects to which the rule applies. Replacement
// must be made for object keys containing special characters (such as carriage
// returns) when using XML requests. For more information, see XML related object
@@ -2171,7 +2366,11 @@ type LoggingEnabled struct {
// This member is required.
TargetPrefix *string
- // Container for granting information.
+ // Container for granting information. Buckets that use the bucket owner enforced
+ // setting for Object Ownership don't support target grants. For more information,
+ // see Permissions for server access log delivery
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general)
+ // in the Amazon S3 User Guide.
TargetGrants []TargetGrant
noSmithyDocumentSerde
@@ -2299,6 +2498,9 @@ func (*MetricsFilterMemberTag) isMetricsFilter() {}
// Container for the MultipartUpload for the Amazon S3 object.
type MultipartUpload struct {
+ // The algorithm that was used to create a checksum of the object.
+ ChecksumAlgorithm ChecksumAlgorithm
+
// Date and time at which the multipart upload was initiated.
Initiated *time.Time
@@ -2327,9 +2529,18 @@ type MultipartUpload struct {
// the object's lifetime.
type NoncurrentVersionExpiration struct {
+ // Specifies how many noncurrent versions Amazon S3 will retain. If there are this
+ // many more recent noncurrent versions, Amazon S3 will take the associated action.
+ // For more information about noncurrent versions, see Lifecycle configuration
+ // elements
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html)
+ // in the Amazon S3 User Guide.
+ NewerNoncurrentVersions int32
+
// Specifies the number of days an object is noncurrent before Amazon S3 can
- // perform the associated action. For information about the noncurrent days
- // calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
+ // perform the associated action. The value must be a non-zero positive integer.
+ // For information about the noncurrent days calculations, see How Amazon S3
+ // Calculates When an Object Became Noncurrent
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
// in the Amazon S3 User Guide.
NoncurrentDays int32
@@ -2338,14 +2549,22 @@ type NoncurrentVersionExpiration struct {
}
// Container for the transition rule that describes when noncurrent objects
-// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, or
-// DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning
-// is suspended), you can set this action to request that Amazon S3 transition
-// noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING,
-// GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's
-// lifetime.
+// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR,
+// GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or
+// versioning is suspended), you can set this action to request that Amazon S3
+// transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA,
+// INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a
+// specific period in the object's lifetime.
type NoncurrentVersionTransition struct {
+ // Specifies how many noncurrent versions Amazon S3 will retain. If there are this
+ // many more recent noncurrent versions, Amazon S3 will take the associated action.
+ // For more information about noncurrent versions, see Lifecycle configuration
+ // elements
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html)
+ // in the Amazon S3 User Guide.
+ NewerNoncurrentVersions int32
+
// Specifies the number of days an object is noncurrent before Amazon S3 can
// perform the associated action. For information about the noncurrent days
// calculations, see How Amazon S3 Calculates How Long an Object Has Been
@@ -2364,6 +2583,9 @@ type NoncurrentVersionTransition struct {
// element is empty, notifications are turned off for the bucket.
type NotificationConfiguration struct {
+ // Enables delivery of events to Amazon EventBridge.
+ EventBridgeConfiguration *EventBridgeConfiguration
+
// Describes the Lambda functions to invoke and the events for which to invoke
// them.
LambdaFunctionConfigurations []LambdaFunctionConfiguration
@@ -2394,6 +2616,9 @@ type NotificationConfigurationFilter struct {
// An object consists of data and its descriptive metadata.
type Object struct {
+ // The algorithm that was used to create a checksum of the object.
+ ChecksumAlgorithm []ChecksumAlgorithm
+
// The entity tag is a hash of the object. The ETag reflects changes only to the
// contents of an object, not its metadata. The ETag may or may not be an MD5
// digest of the object data. Whether or not it is depends on how the object was
@@ -2411,7 +2636,9 @@ type Object struct {
//
// * If an object is created by either the Multipart
// Upload or Part Copy operation, the ETag is not an MD5 digest, regardless of the
- // method of encryption.
+ // method of encryption. If an object is larger than 16 MB, the Amazon Web Services
+ // Management Console will upload or copy that object as a Multipart Upload, and
+ // therefore the ETag will not be an MD5 digest.
ETag *string
// The name that you assign to an object. You use the object key to retrieve the
@@ -2466,10 +2693,10 @@ type ObjectLockConfiguration struct {
noSmithyDocumentSerde
}
-// A Legal Hold configuration for an object.
+// A legal hold configuration for an object.
type ObjectLockLegalHold struct {
- // Indicates whether the specified object has a Legal Hold in place.
+ // Indicates whether the specified object has a legal hold in place.
Status ObjectLockLegalHoldStatus
noSmithyDocumentSerde
@@ -2499,9 +2726,57 @@ type ObjectLockRule struct {
noSmithyDocumentSerde
}
+// A container for elements related to an individual part.
+type ObjectPart struct {
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
+ // The part number identifying the part. This value is a positive integer between 1
+ // and 10,000.
+ PartNumber int32
+
+ // The size of the uploaded part in bytes.
+ Size int64
+
+ noSmithyDocumentSerde
+}
+
// The version of an object.
type ObjectVersion struct {
+ // The algorithm that was used to create a checksum of the object.
+ ChecksumAlgorithm []ChecksumAlgorithm
+
// The entity tag is an MD5 hash of that version of the object.
ETag *string
@@ -2582,6 +2857,12 @@ type OwnershipControlsRule struct {
// bucket owner if the objects are uploaded with the bucket-owner-full-control
// canned ACL. ObjectWriter - The uploading account will own the object if the
// object is uploaded with the bucket-owner-full-control canned ACL.
+ // BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer
+ // affect permissions. The bucket owner automatically owns and has full control
+ // over every object in the bucket. The bucket only accepts PUT requests that don't
+ // specify an ACL or bucket owner full control ACLs, such as the
+ // bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed
+ // in the XML format.
//
// This member is required.
ObjectOwnership ObjectOwnership
@@ -2597,6 +2878,38 @@ type ParquetInput struct {
// Container for elements related to a part.
type Part struct {
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32 *string
+
+ // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumCRC32C *string
+
+ // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
+ // present if it was uploaded with the object. With multipart uploads, this may not
+ // be a checksum value of the object. For more information about how checksums are
+ // calculated with multipart uploads, see Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA1 *string
+
+ // This header can be used as a data integrity check to verify that the data
+ // received is the same data that was originally sent. This header specifies the
+ // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see
+ // Checking object integrity
+ // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ // in the Amazon S3 User Guide.
+ ChecksumSHA256 *string
+
// Entity tag returned when the part was uploaded.
ETag *string
@@ -2659,7 +2972,7 @@ type PublicAccessBlockConfiguration struct {
// this bucket and objects in this bucket. Setting this element to TRUE causes the
// following behavior:
//
- // * PUT Bucket acl and PUT Object acl calls fail if the
+ // * PUT Bucket ACL and PUT Object ACL calls fail if the
// specified ACL is public.
//
// * PUT Object calls fail if the request includes a
@@ -3129,7 +3442,7 @@ type ScanRange struct {
// Specifies the start of the byte range. This parameter is optional. Valid values:
// non-negative integers. The default value is 0. If only start is supplied, it
- // means scan from that point to the end of the file.For example; 50 means scan
+ // means scan from that point to the end of the file. For example, 50 means scan
// from byte 50 until the end of the file.
Start int64
@@ -3221,8 +3534,11 @@ type SelectParameters struct {
// Describes the default server-side encryption to apply to new objects in the
// bucket. If a PUT Object request doesn't specify any server-side encryption, this
-// default encryption will be applied. For more information, see PUT Bucket
-// encryption
+// default encryption will be applied. If you don't specify a customer managed key
+// at configuration, Amazon S3 automatically creates an Amazon Web Services KMS key
+// in your Amazon Web Services account the first time that you add an object
+// encrypted with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for
+// SSE-KMS. For more information, see PUT Bucket encryption
// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html)
// in the Amazon S3 API Reference.
type ServerSideEncryptionByDefault struct {
@@ -3236,8 +3552,9 @@ type ServerSideEncryptionByDefault struct {
// KMS key ID to use for the default encryption. This parameter is allowed if and
// only if SSEAlgorithm is set to aws:kms. You can specify the key ID or the Amazon
// Resource Name (ARN) of the KMS key. However, if you are using encryption with
- // cross-account operations, you must use a fully qualified KMS key ARN. For more
- // information, see Using encryption for cross-account operations
+ // cross-account or Amazon Web Services service operations you must use a fully
+ // qualified KMS key ARN. For more information, see Using encryption for
+ // cross-account operations
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy).
// For example:
//
@@ -3423,7 +3740,11 @@ type Tagging struct {
noSmithyDocumentSerde
}
-// Container for granting information.
+// Container for granting information. Buckets that use the bucket owner enforced
+// setting for Object Ownership don't support target grants. For more information,
+// see Permissions server access log delivery
+// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general)
+// in the Amazon S3 User Guide.
type TargetGrant struct {
// Container for the person being granted permissions.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/validators.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/validators.go
index a711ea6..ccd845a 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/validators.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/validators.go
@@ -870,6 +870,26 @@ func (m *validateOpGetObjectAcl) HandleInitialize(ctx context.Context, in middle
return next.HandleInitialize(ctx, in)
}
+type validateOpGetObjectAttributes struct {
+}
+
+func (*validateOpGetObjectAttributes) ID() string {
+ return "OperationInputValidation"
+}
+
+func (m *validateOpGetObjectAttributes) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
+ out middleware.InitializeOutput, metadata middleware.Metadata, err error,
+) {
+ input, ok := in.Parameters.(*GetObjectAttributesInput)
+ if !ok {
+ return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters)
+ }
+ if err := validateOpGetObjectAttributesInput(input); err != nil {
+ return out, metadata, err
+ }
+ return next.HandleInitialize(ctx, in)
+}
+
type validateOpGetObject struct {
}
@@ -2002,6 +2022,10 @@ func addOpGetObjectAclValidationMiddleware(stack *middleware.Stack) error {
return stack.Initialize.Add(&validateOpGetObjectAcl{}, middleware.After)
}
+func addOpGetObjectAttributesValidationMiddleware(stack *middleware.Stack) error {
+ return stack.Initialize.Add(&validateOpGetObjectAttributes{}, middleware.After)
+}
+
func addOpGetObjectValidationMiddleware(stack *middleware.Stack) error {
return stack.Initialize.Add(&validateOpGetObject{}, middleware.After)
}
@@ -4511,6 +4535,27 @@ func validateOpGetObjectAclInput(v *GetObjectAclInput) error {
}
}
+func validateOpGetObjectAttributesInput(v *GetObjectAttributesInput) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "GetObjectAttributesInput"}
+ if v.Bucket == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("Bucket"))
+ }
+ if v.Key == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("Key"))
+ }
+ if v.ObjectAttributes == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("ObjectAttributes"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateOpGetObjectInput(v *GetObjectInput) error {
if v == nil {
return nil
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/CHANGELOG.md
index bd16d1c..cf4565b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/CHANGELOG.md
@@ -1,3 +1,93 @@
+# v1.32.1 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.32.0 (2022-05-27)
+
+* **Feature**: Amazon SageMaker Notebook Instances now allows configuration of Instance Metadata Service version and Amazon SageMaker Studio now supports G5 instance types.
+
+# v1.31.0 (2022-05-25)
+
+* **Feature**: Amazon SageMaker Autopilot adds support for manually selecting features from the input dataset using the CreateAutoMLJob API.
+
+# v1.30.1 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.30.0 (2022-05-03)
+
+* **Feature**: SageMaker Autopilot adds new metrics for all candidate models generated by Autopilot experiments; RStudio on SageMaker now allows users to bring your own development environment in a custom image.
+
+# v1.29.0 (2022-04-27)
+
+* **Feature**: Amazon SageMaker Autopilot adds support for custom validation dataset and validation ratio through the CreateAutoMLJob and DescribeAutoMLJob APIs.
+
+# v1.28.0 (2022-04-26)
+
+* **Feature**: SageMaker Inference Recommender now accepts customer KMS key ID for encryption of endpoints and compilation outputs created during inference recommendation.
+
+# v1.27.1 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.27.0 (2022-04-07)
+
+* **Feature**: Amazon Sagemaker Notebook Instances now supports G5 instance types
+
+# v1.26.3 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.26.2 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.26.1 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.26.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.25.0 (2022-02-24)
+
+* **Feature**: API client updated
+* **Feature**: Adds RetryMaxAttempts and RetryMod to API client Options. This allows the API clients' default Retryer to be configured from the shared configuration files or environment variables. Adding a new Retry mode of `Adaptive`. `Adaptive` retry mode is an experimental mode, adding client rate limiting when throttles reponses are received from an API. See [retry.AdaptiveMode](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws/retry#AdaptiveMode) for more details, and configuration options.
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.24.0 (2022-01-28)
+
+* **Feature**: Updated to latest API model.
+
+# v1.23.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.22.0 (2022-01-07)
+
+* **Feature**: API client updated
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.21.0 (2021-12-21)
+
+* **Feature**: API Paginators now support specifying the initial starting token, and support stopping on empty string tokens.
+* **Feature**: API client updated
+
+# v1.20.0 (2021-12-02)
+
+* **Feature**: API client updated
+* **Bug Fix**: Fixes a bug that prevented aws.EndpointResolverWithOptions from being used by the service client. ([#1514](https://github.com/aws/aws-sdk-go-v2/pull/1514))
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.19.1 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v1.19.0 (2021-11-12)
* **Feature**: Service clients now support custom endpoints that have an initial URI path defined.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_client.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_client.go
index 5323985..40bbb80 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_client.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_client.go
@@ -6,6 +6,7 @@ import (
"context"
cryptorand "crypto/rand"
"github.com/aws/aws-sdk-go-v2/aws"
+ "github.com/aws/aws-sdk-go-v2/aws/defaults"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/retry"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
@@ -17,6 +18,7 @@ import (
"github.com/aws/smithy-go/middleware"
smithyrand "github.com/aws/smithy-go/rand"
smithyhttp "github.com/aws/smithy-go/transport/http"
+ "net"
"net/http"
"time"
)
@@ -38,6 +40,8 @@ func New(options Options, optFns ...func(*Options)) *Client {
resolveDefaultLogger(&options)
+ setResolvedDefaultsMode(&options)
+
resolveRetryer(&options)
resolveHTTPClient(&options)
@@ -71,6 +75,10 @@ type Options struct {
// The credentials object to use when signing requests.
Credentials aws.CredentialsProvider
+ // The configuration DefaultsMode that the SDK should use when constructing the
+ // clients initial default settings.
+ DefaultsMode aws.DefaultsMode
+
// The endpoint options to be used when attempting to resolve an endpoint.
EndpointOptions EndpointResolverOptions
@@ -90,10 +98,42 @@ type Options struct {
// The region to send requests to. (Required)
Region string
+ // RetryMaxAttempts specifies the maximum number attempts an API client will call
+ // an operation that fails with a retryable error. A value of 0 is ignored, and
+ // will not be used to configure the API client created default retryer, or modify
+ // per operation call's retry max attempts. When creating a new API Clients this
+ // member will only be used if the Retryer Options member is nil. This value will
+ // be ignored if Retryer is not nil. If specified in an operation call's functional
+ // options with a value that is different than the constructed client's Options,
+ // the Client's Retryer will be wrapped to use the operation's specific
+ // RetryMaxAttempts value.
+ RetryMaxAttempts int
+
+ // RetryMode specifies the retry mode the API client will be created with, if
+ // Retryer option is not also specified. When creating a new API Clients this
+ // member will only be used if the Retryer Options member is nil. This value will
+ // be ignored if Retryer is not nil. Currently does not support per operation call
+ // overrides, may in the future.
+ RetryMode aws.RetryMode
+
// Retryer guides how HTTP requests should be retried in case of recoverable
- // failures. When nil the API client will use a default retryer.
+ // failures. When nil the API client will use a default retryer. The kind of
+ // default retry created by the API client can be changed with the RetryMode
+ // option.
Retryer aws.Retryer
+ // The RuntimeEnvironment configuration, only populated if the DefaultsMode is set
+ // to DefaultsModeAuto and is initialized using config.LoadDefaultConfig. You
+ // should not populate this structure programmatically, or rely on the values here
+ // within your applications.
+ RuntimeEnvironment aws.RuntimeEnvironment
+
+ // The initial DefaultsMode used when the client options were constructed. If the
+ // DefaultsMode was set to aws.DefaultsModeAuto this will store what the resolved
+ // value was at that point in time. Currently does not support per operation call
+ // overrides, may in the future.
+ resolvedDefaultsMode aws.DefaultsMode
+
// The HTTP client to invoke API calls with. Defaults to client's default HTTP
// implementation if nil.
HTTPClient HTTPClient
@@ -124,6 +164,7 @@ func (o Options) Copy() Options {
to := o
to.APIOptions = make([]func(*middleware.Stack) error, len(o.APIOptions))
copy(to.APIOptions, o.APIOptions)
+
return to
}
func (c *Client) invokeOperation(ctx context.Context, opID string, params interface{}, optFns []func(*Options), stackFns ...func(*middleware.Stack, Options) error) (result interface{}, metadata middleware.Metadata, err error) {
@@ -134,6 +175,8 @@ func (c *Client) invokeOperation(ctx context.Context, opID string, params interf
fn(&options)
}
+ finalizeRetryMaxAttemptOptions(&options, *c)
+
finalizeClientEndpointResolverOptions(&options)
for _, fn := range stackFns {
@@ -173,17 +216,36 @@ func addSetLoggerMiddleware(stack *middleware.Stack, o Options) error {
return middleware.AddSetLoggerMiddleware(stack, o.Logger)
}
+func setResolvedDefaultsMode(o *Options) {
+ if len(o.resolvedDefaultsMode) > 0 {
+ return
+ }
+
+ var mode aws.DefaultsMode
+ mode.SetFromString(string(o.DefaultsMode))
+
+ if mode == aws.DefaultsModeAuto {
+ mode = defaults.ResolveDefaultsModeAuto(o.Region, o.RuntimeEnvironment)
+ }
+
+ o.resolvedDefaultsMode = mode
+}
+
// NewFromConfig returns a new client from the provided config.
func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
opts := Options{
- Region: cfg.Region,
- HTTPClient: cfg.HTTPClient,
- Credentials: cfg.Credentials,
- APIOptions: cfg.APIOptions,
- Logger: cfg.Logger,
- ClientLogMode: cfg.ClientLogMode,
+ Region: cfg.Region,
+ DefaultsMode: cfg.DefaultsMode,
+ RuntimeEnvironment: cfg.RuntimeEnvironment,
+ HTTPClient: cfg.HTTPClient,
+ Credentials: cfg.Credentials,
+ APIOptions: cfg.APIOptions,
+ Logger: cfg.Logger,
+ ClientLogMode: cfg.ClientLogMode,
}
resolveAWSRetryerProvider(cfg, &opts)
+ resolveAWSRetryMaxAttempts(cfg, &opts)
+ resolveAWSRetryMode(cfg, &opts)
resolveAWSEndpointResolver(cfg, &opts)
resolveUseDualStackEndpoint(cfg, &opts)
resolveUseFIPSEndpoint(cfg, &opts)
@@ -191,17 +253,71 @@ func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
}
func resolveHTTPClient(o *Options) {
+ var buildable *awshttp.BuildableClient
+
if o.HTTPClient != nil {
- return
+ var ok bool
+ buildable, ok = o.HTTPClient.(*awshttp.BuildableClient)
+ if !ok {
+ return
+ }
+ } else {
+ buildable = awshttp.NewBuildableClient()
}
- o.HTTPClient = awshttp.NewBuildableClient()
+
+ modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode)
+ if err == nil {
+ buildable = buildable.WithDialerOptions(func(dialer *net.Dialer) {
+ if dialerTimeout, ok := modeConfig.GetConnectTimeout(); ok {
+ dialer.Timeout = dialerTimeout
+ }
+ })
+
+ buildable = buildable.WithTransportOptions(func(transport *http.Transport) {
+ if tlsHandshakeTimeout, ok := modeConfig.GetTLSNegotiationTimeout(); ok {
+ transport.TLSHandshakeTimeout = tlsHandshakeTimeout
+ }
+ })
+ }
+
+ o.HTTPClient = buildable
}
func resolveRetryer(o *Options) {
if o.Retryer != nil {
return
}
- o.Retryer = retry.NewStandard()
+
+ if len(o.RetryMode) == 0 {
+ modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode)
+ if err == nil {
+ o.RetryMode = modeConfig.RetryMode
+ }
+ }
+ if len(o.RetryMode) == 0 {
+ o.RetryMode = aws.RetryModeStandard
+ }
+
+ var standardOptions []func(*retry.StandardOptions)
+ if v := o.RetryMaxAttempts; v != 0 {
+ standardOptions = append(standardOptions, func(so *retry.StandardOptions) {
+ so.MaxAttempts = v
+ })
+ }
+
+ switch o.RetryMode {
+ case aws.RetryModeAdaptive:
+ var adaptiveOptions []func(*retry.AdaptiveModeOptions)
+ if len(standardOptions) != 0 {
+ adaptiveOptions = append(adaptiveOptions, func(ao *retry.AdaptiveModeOptions) {
+ ao.StandardOptions = append(ao.StandardOptions, standardOptions...)
+ })
+ }
+ o.Retryer = retry.NewAdaptiveMode(adaptiveOptions...)
+
+ default:
+ o.Retryer = retry.NewStandard(standardOptions...)
+ }
}
func resolveAWSRetryerProvider(cfg aws.Config, o *Options) {
@@ -211,8 +327,29 @@ func resolveAWSRetryerProvider(cfg aws.Config, o *Options) {
o.Retryer = cfg.Retryer()
}
+func resolveAWSRetryMode(cfg aws.Config, o *Options) {
+ if len(cfg.RetryMode) == 0 {
+ return
+ }
+ o.RetryMode = cfg.RetryMode
+}
+func resolveAWSRetryMaxAttempts(cfg aws.Config, o *Options) {
+ if cfg.RetryMaxAttempts == 0 {
+ return
+ }
+ o.RetryMaxAttempts = cfg.RetryMaxAttempts
+}
+
+func finalizeRetryMaxAttemptOptions(o *Options, client Client) {
+ if v := o.RetryMaxAttempts; v == 0 || v == client.options.RetryMaxAttempts {
+ return
+ }
+
+ o.Retryer = retry.AddWithMaxAttempts(o.Retryer, o.RetryMaxAttempts)
+}
+
func resolveAWSEndpointResolver(cfg aws.Config, o *Options) {
- if cfg.EndpointResolver == nil {
+ if cfg.EndpointResolver == nil && cfg.EndpointResolverWithOptions == nil {
return
}
o.EndpointResolver = withEndpointResolver(cfg.EndpointResolver, cfg.EndpointResolverWithOptions, NewDefaultEndpointResolver())
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_AddTags.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_AddTags.go
index 511444f..d8d049e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_AddTags.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_AddTags.go
@@ -11,9 +11,9 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Adds or overwrites one or more tags for the specified Amazon SageMaker resource.
-// You can add tags to notebook instances, training jobs, hyperparameter tuning
-// jobs, batch transform jobs, models, labeling jobs, work teams, endpoint
+// Adds or overwrites one or more tags for the specified SageMaker resource. You
+// can add tags to notebook instances, training jobs, hyperparameter tuning jobs,
+// batch transform jobs, models, labeling jobs, work teams, endpoint
// configurations, and endpoints. Each tag consists of a key and an optional value.
// Tag keys must be unique per resource. For more information about tags, see For
// more information, see Amazon Web Services Tagging Strategies
@@ -68,7 +68,7 @@ type AddTagsInput struct {
type AddTagsOutput struct {
- // A list of tags associated with the Amazon SageMaker resource.
+ // A list of tags associated with the SageMaker resource.
Tags []types.Tag
// Metadata pertaining to the operation's result.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateAlgorithm.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateAlgorithm.go
index 4c9de7b..a4d7d5e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateAlgorithm.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateAlgorithm.go
@@ -11,8 +11,8 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Create a machine learning algorithm that you can use in Amazon SageMaker and
-// list in the Amazon Web Services Marketplace.
+// Create a machine learning algorithm that you can use in SageMaker and list in
+// the Amazon Web Services Marketplace.
func (c *Client) CreateAlgorithm(ctx context.Context, params *CreateAlgorithmInput, optFns ...func(*Options)) (*CreateAlgorithmOutput, error) {
if params == nil {
params = &CreateAlgorithmInput{}
@@ -88,10 +88,9 @@ type CreateAlgorithmInput struct {
// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
Tags []types.Tag
- // Specifies configurations for one or more training jobs and that Amazon SageMaker
- // runs to test the algorithm's training code and, optionally, one or more batch
- // transform jobs that Amazon SageMaker runs to test the algorithm's inference
- // code.
+ // Specifies configurations for one or more training jobs and that SageMaker runs
+ // to test the algorithm's training code and, optionally, one or more batch
+ // transform jobs that SageMaker runs to test the algorithm's inference code.
ValidationSpecification *types.AlgorithmValidationSpecification
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateAutoMLJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateAutoMLJob.go
index bdbd146..4eea37d 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateAutoMLJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateAutoMLJob.go
@@ -40,7 +40,9 @@ type CreateAutoMLJobInput struct {
// An array of channel objects that describes the input data and its location. Each
// channel is a named input source. Similar to InputDataConfig supported by .
- // Format(s) supported: CSV. Minimum of 500 rows.
+ // Format(s) supported: CSV, Parquet. A minimum of 500 rows is required for the
+ // training dataset. There is not a minimum number of rows required for the
+ // validation dataset.
//
// This member is required.
InputDataConfig []types.AutoMLChannel
@@ -56,7 +58,7 @@ type CreateAutoMLJobInput struct {
// This member is required.
RoleArn *string
- // Contains CompletionCriteria and SecurityConfig settings for the AutoML job.
+ // A collection of settings used to configure an AutoML job.
AutoMLJobConfig *types.AutoMLJobConfig
// Defines the objective metric used to measure the predictive quality of an AutoML
@@ -72,10 +74,8 @@ type CreateAutoMLJobInput struct {
// model deployment.
ModelDeployConfig *types.ModelDeployConfig
- // Defines the type of supervised learning available for the candidates. Options
- // include: BinaryClassification, MulticlassClassification, and Regression. For
- // more information, see Amazon SageMaker Autopilot problem types and algorithm
- // support
+ // Defines the type of supervised learning available for the candidates. For more
+ // information, see Amazon SageMaker Autopilot problem types and algorithm support
// (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-problem-types.html).
ProblemType types.ProblemType
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateCodeRepository.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateCodeRepository.go
index a3ba0a0..a7e70f6 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateCodeRepository.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateCodeRepository.go
@@ -11,13 +11,13 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Creates a Git repository as a resource in your Amazon SageMaker account. You can
+// Creates a Git repository as a resource in your SageMaker account. You can
// associate the repository with notebook instances so that you can use Git source
// control for the notebooks you create. The Git repository is a resource in your
-// Amazon SageMaker account, so it can be associated with more than one notebook
-// instance, and it persists independently from the lifecycle of any notebook
-// instances it is associated with. The repository can be hosted either in Amazon
-// Web Services CodeCommit
+// SageMaker account, so it can be associated with more than one notebook instance,
+// and it persists independently from the lifecycle of any notebook instances it is
+// associated with. The repository can be hosted either in Amazon Web Services
+// CodeCommit
// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any
// other Git repository.
func (c *Client) CreateCodeRepository(ctx context.Context, params *CreateCodeRepositoryInput, optFns ...func(*Options)) (*CreateCodeRepositoryOutput, error) {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateCompilationJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateCompilationJob.go
index 795dba0..9762fd7 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateCompilationJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateCompilationJob.go
@@ -60,13 +60,6 @@ type CreateCompilationJobInput struct {
// This member is required.
CompilationJobName *string
- // Provides information about the location of input model artifacts, the name and
- // shape of the expected data inputs, and the framework in which the model was
- // trained.
- //
- // This member is required.
- InputConfig *types.InputConfig
-
// Provides information about the output location for the compiled model and the
// target device the model runs on.
//
@@ -102,6 +95,17 @@ type CreateCompilationJobInput struct {
// This member is required.
StoppingCondition *types.StoppingCondition
+ // Provides information about the location of input model artifacts, the name and
+ // shape of the expected data inputs, and the framework in which the model was
+ // trained.
+ InputConfig *types.InputConfig
+
+ // The Amazon Resource Name (ARN) of a versioned model package. Provide either a
+ // ModelPackageVersionArn or an InputConfig object in the request syntax. The
+ // presence of both objects in the CreateCompilationJob request will return an
+ // exception.
+ ModelPackageVersionArn *string
+
// An array of key-value pairs. You can use tags to categorize your Amazon Web
// Services resources in different ways, for example, by purpose, owner, or
// environment. For more information, see Tagging Amazon Web Services Resources
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateDomain.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateDomain.go
index 7f5ba72..2366d7c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateDomain.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateDomain.go
@@ -114,7 +114,7 @@ type CreateDomainInput struct {
// A collection of Domain settings.
DomainSettings *types.DomainSettings
- // This member is deprecated and replaced with KmsKeyId.
+ // Use KmsKeyId.
//
// Deprecated: This property is deprecated, use KmsKeyId instead.
HomeEfsFileSystemKmsKeyId *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateEndpoint.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateEndpoint.go
index 3ebb393..9eb2ce3 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateEndpoint.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateEndpoint.go
@@ -12,17 +12,17 @@ import (
)
// Creates an endpoint using the endpoint configuration specified in the request.
-// Amazon SageMaker uses the endpoint to provision resources and deploy models. You
-// create the endpoint configuration with the CreateEndpointConfig API. Use this
-// API to deploy models using Amazon SageMaker hosting services. For an example
-// that calls this method when deploying a model to Amazon SageMaker hosting
-// services, see the Create Endpoint example notebook.
+// SageMaker uses the endpoint to provision resources and deploy models. You create
+// the endpoint configuration with the CreateEndpointConfig API. Use this API to
+// deploy models using SageMaker hosting services. For an example that calls this
+// method when deploying a model to SageMaker hosting services, see the Create
+// Endpoint example notebook.
// (https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-fundamentals/create-endpoint/create_endpoint.ipynb)
// You must not delete an EndpointConfig that is in use by an endpoint that is live
// or while the UpdateEndpoint or CreateEndpoint operations are being performed on
// the endpoint. To update an endpoint, you must create a new EndpointConfig. The
// endpoint name must be unique within an Amazon Web Services Region in your Amazon
-// Web Services account. When it receives the request, Amazon SageMaker creates the
+// Web Services account. When it receives the request, SageMaker creates the
// endpoint, launches the resources (ML compute instances), and deploys the
// model(s) on them. When you call CreateEndpoint, a load call is made to DynamoDB
// to verify that your endpoint configuration exists. When you read data from a
@@ -34,18 +34,18 @@ import (
// request after a short time, the response should return the latest data. So retry
// logic is recommended to handle these possible issues. We also recommend that
// customers call DescribeEndpointConfig before calling CreateEndpoint to minimize
-// the potential impact of a DynamoDB eventually consistent read. When Amazon
-// SageMaker receives the request, it sets the endpoint status to Creating. After
-// it creates the endpoint, it sets the status to InService. Amazon SageMaker can
-// then process incoming requests for inferences. To check the status of an
-// endpoint, use the DescribeEndpoint API. If any of the models hosted at this
-// endpoint get model data from an Amazon S3 location, Amazon SageMaker uses Amazon
-// Web Services Security Token Service to download model artifacts from the S3 path
-// you provided. Amazon Web Services STS is activated in your IAM user account by
-// default. If you previously deactivated Amazon Web Services STS for a region, you
-// need to reactivate Amazon Web Services STS for that region. For more
-// information, see Activating and Deactivating Amazon Web Services STS in an
-// Amazon Web Services Region
+// the potential impact of a DynamoDB eventually consistent read. When SageMaker
+// receives the request, it sets the endpoint status to Creating. After it creates
+// the endpoint, it sets the status to InService. SageMaker can then process
+// incoming requests for inferences. To check the status of an endpoint, use the
+// DescribeEndpoint API. If any of the models hosted at this endpoint get model
+// data from an Amazon S3 location, SageMaker uses Amazon Web Services Security
+// Token Service to download model artifacts from the S3 path you provided. Amazon
+// Web Services STS is activated in your IAM user account by default. If you
+// previously deactivated Amazon Web Services STS for a region, you need to
+// reactivate Amazon Web Services STS for that region. For more information, see
+// Activating and Deactivating Amazon Web Services STS in an Amazon Web Services
+// Region
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the Amazon Web Services Identity and Access Management User Guide. To add the
// IAM role policies for using this API operation, go to the IAM console
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateEndpointConfig.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateEndpointConfig.go
index 5457f1f..c29229b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateEndpointConfig.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateEndpointConfig.go
@@ -11,22 +11,21 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Creates an endpoint configuration that Amazon SageMaker hosting services uses to
-// deploy models. In the configuration, you identify one or more models, created
-// using the CreateModel API, to deploy and the resources that you want Amazon
-// SageMaker to provision. Then you call the CreateEndpoint API. Use this API if
-// you want to use Amazon SageMaker hosting services to deploy models into
-// production. In the request, you define a ProductionVariant, for each model that
-// you want to deploy. Each ProductionVariant parameter also describes the
-// resources that you want Amazon SageMaker to provision. This includes the number
-// and type of ML compute instances to deploy. If you are hosting multiple models,
-// you also assign a VariantWeight to specify how much traffic you want to allocate
-// to each model. For example, suppose that you want to host two models, A and B,
-// and you assign traffic weight 2 for model A and 1 for model B. Amazon SageMaker
-// distributes two-thirds of the traffic to Model A, and one-third to model B. When
-// you call CreateEndpoint, a load call is made to DynamoDB to verify that your
-// endpoint configuration exists. When you read data from a DynamoDB table
-// supporting Eventually Consistent Reads
+// Creates an endpoint configuration that SageMaker hosting services uses to deploy
+// models. In the configuration, you identify one or more models, created using the
+// CreateModel API, to deploy and the resources that you want SageMaker to
+// provision. Then you call the CreateEndpoint API. Use this API if you want to use
+// SageMaker hosting services to deploy models into production. In the request, you
+// define a ProductionVariant, for each model that you want to deploy. Each
+// ProductionVariant parameter also describes the resources that you want SageMaker
+// to provision. This includes the number and type of ML compute instances to
+// deploy. If you are hosting multiple models, you also assign a VariantWeight to
+// specify how much traffic you want to allocate to each model. For example,
+// suppose that you want to host two models, A and B, and you assign traffic weight
+// 2 for model A and 1 for model B. SageMaker distributes two-thirds of the traffic
+// to Model A, and one-third to model B. When you call CreateEndpoint, a load call
+// is made to DynamoDB to verify that your endpoint configuration exists. When you
+// read data from a DynamoDB table supporting Eventually Consistent Reads
// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html),
// the response might not reflect the results of a recently completed write
// operation. The response might include some stale data. If the dependent entities
@@ -67,15 +66,15 @@ type CreateEndpointConfigInput struct {
// Specifies configuration for how an endpoint performs asynchronous inference.
// This is a required field in order for your Endpoint to be invoked using
// InvokeEndpointAsync
- // (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html).
+ // (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpointAsync.html).
AsyncInferenceConfig *types.AsyncInferenceConfig
- //
+ // Configuration to control how SageMaker captures inference data.
DataCaptureConfig *types.DataCaptureConfig
// The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service
- // key that Amazon SageMaker uses to encrypt data on the storage volume attached to
- // the ML compute instance that hosts the endpoint. The KmsKeyId can be any of the
+ // key that SageMaker uses to encrypt data on the storage volume attached to the ML
+ // compute instance that hosts the endpoint. The KmsKeyId can be any of the
// following formats:
//
// * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateHyperParameterTuningJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateHyperParameterTuningJob.go
index d3e4904..40750bc 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateHyperParameterTuningJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateHyperParameterTuningJob.go
@@ -88,8 +88,8 @@ type CreateHyperParameterTuningJobInput struct {
type CreateHyperParameterTuningJobOutput struct {
- // The Amazon Resource Name (ARN) of the tuning job. Amazon SageMaker assigns an
- // ARN to a hyperparameter tuning job when you create it.
+ // The Amazon Resource Name (ARN) of the tuning job. SageMaker assigns an ARN to a
+ // hyperparameter tuning job when you create it.
//
// This member is required.
HyperParameterTuningJobArn *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateImage.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateImage.go
index 9439292..6cfce92 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateImage.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateImage.go
@@ -12,9 +12,9 @@ import (
)
// Creates a custom SageMaker image. A SageMaker image is a set of image versions.
-// Each image version represents a container image stored in Amazon Container
-// Registry (ECR). For more information, see Bring your own SageMaker image
-// (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html).
+// Each image version represents a container image stored in Amazon Elastic
+// Container Registry (ECR). For more information, see Bring your own SageMaker
+// image (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html).
func (c *Client) CreateImage(ctx context.Context, params *CreateImageInput, optFns ...func(*Options)) (*CreateImageOutput, error) {
if params == nil {
params = &CreateImageInput{}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateImageVersion.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateImageVersion.go
index d498c5b..33a24f9 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateImageVersion.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateImageVersion.go
@@ -12,8 +12,8 @@ import (
)
// Creates a version of the SageMaker image specified by ImageName. The version
-// represents the Amazon Container Registry (ECR) container image specified by
-// BaseImage.
+// represents the Amazon Elastic Container Registry (ECR) container image specified
+// by BaseImage.
func (c *Client) CreateImageVersion(ctx context.Context, params *CreateImageVersionInput, optFns ...func(*Options)) (*CreateImageVersionOutput, error) {
if params == nil {
params = &CreateImageVersionInput{}
@@ -32,8 +32,8 @@ func (c *Client) CreateImageVersion(ctx context.Context, params *CreateImageVers
type CreateImageVersionInput struct {
// The registry path of the container image to use as the starting point for this
- // version. The path is an Amazon Container Registry (ECR) URI in the following
- // format: .dkr.ecr..amazonaws.com/
+ // version. The path is an Amazon Elastic Container Registry (ECR) URI in the
+ // following format: .dkr.ecr..amazonaws.com/
//
// This member is required.
BaseImage *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateInferenceRecommendationsJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateInferenceRecommendationsJob.go
new file mode 100644
index 0000000..588e15c
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateInferenceRecommendationsJob.go
@@ -0,0 +1,163 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package sagemaker
+
+import (
+ "context"
+ awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
+ "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/aws-sdk-go-v2/service/sagemaker/types"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+)
+
+// Starts a recommendation job. You can create either an instance recommendation or
+// load test job.
+func (c *Client) CreateInferenceRecommendationsJob(ctx context.Context, params *CreateInferenceRecommendationsJobInput, optFns ...func(*Options)) (*CreateInferenceRecommendationsJobOutput, error) {
+ if params == nil {
+ params = &CreateInferenceRecommendationsJobInput{}
+ }
+
+ result, metadata, err := c.invokeOperation(ctx, "CreateInferenceRecommendationsJob", params, optFns, c.addOperationCreateInferenceRecommendationsJobMiddlewares)
+ if err != nil {
+ return nil, err
+ }
+
+ out := result.(*CreateInferenceRecommendationsJobOutput)
+ out.ResultMetadata = metadata
+ return out, nil
+}
+
+type CreateInferenceRecommendationsJobInput struct {
+
+ // Provides information about the versioned model package Amazon Resource Name
+ // (ARN), the traffic pattern, and endpoint configurations.
+ //
+ // This member is required.
+ InputConfig *types.RecommendationJobInputConfig
+
+ // A name for the recommendation job. The name must be unique within the Amazon Web
+ // Services Region and within your Amazon Web Services account.
+ //
+ // This member is required.
+ JobName *string
+
+ // Defines the type of recommendation job. Specify Default to initiate an instance
+ // recommendation and Advanced to initiate a load test. If left unspecified, Amazon
+ // SageMaker Inference Recommender will run an instance recommendation (DEFAULT)
+ // job.
+ //
+ // This member is required.
+ JobType types.RecommendationJobType
+
+ // The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to
+ // perform tasks on your behalf.
+ //
+ // This member is required.
+ RoleArn *string
+
+ // Description of the recommendation job.
+ JobDescription *string
+
+ // Provides information about the output artifacts and the KMS key to use for
+ // Amazon S3 server-side encryption.
+ OutputConfig *types.RecommendationJobOutputConfig
+
+ // A set of conditions for stopping a recommendation job. If any of the conditions
+ // are met, the job is automatically stopped.
+ StoppingConditions *types.RecommendationJobStoppingConditions
+
+ // The metadata that you apply to Amazon Web Services resources to help you
+ // categorize and organize them. Each tag consists of a key and a value, both of
+ // which you define. For more information, see Tagging Amazon Web Services
+ // Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in
+ // the Amazon Web Services General Reference.
+ Tags []types.Tag
+
+ noSmithyDocumentSerde
+}
+
+type CreateInferenceRecommendationsJobOutput struct {
+
+ // The Amazon Resource Name (ARN) of the recommendation job.
+ //
+ // This member is required.
+ JobArn *string
+
+ // Metadata pertaining to the operation's result.
+ ResultMetadata middleware.Metadata
+
+ noSmithyDocumentSerde
+}
+
+func (c *Client) addOperationCreateInferenceRecommendationsJobMiddlewares(stack *middleware.Stack, options Options) (err error) {
+ err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateInferenceRecommendationsJob{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateInferenceRecommendationsJob{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ if err = addSetLoggerMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResolveEndpointMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
+ return err
+ }
+ if err = addRetryMiddlewares(stack, options); err != nil {
+ return err
+ }
+ if err = addHTTPSignerV4Middleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
+ return err
+ }
+ if err = addClientUserAgent(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addOpCreateInferenceRecommendationsJobValidationMiddleware(stack); err != nil {
+ return err
+ }
+ if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateInferenceRecommendationsJob(options.Region), middleware.Before); err != nil {
+ return err
+ }
+ if err = addRequestIDRetrieverMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResponseErrorMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addRequestResponseLogging(stack, options); err != nil {
+ return err
+ }
+ return nil
+}
+
+func newServiceMetadataMiddleware_opCreateInferenceRecommendationsJob(region string) *awsmiddleware.RegisterServiceMetadata {
+ return &awsmiddleware.RegisterServiceMetadata{
+ Region: region,
+ ServiceID: ServiceID,
+ SigningName: "sagemaker",
+ OperationName: "CreateInferenceRecommendationsJob",
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateModel.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateModel.go
index 513b794..72b7e6c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateModel.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateModel.go
@@ -11,29 +11,27 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Creates a model in Amazon SageMaker. In the request, you name the model and
-// describe a primary container. For the primary container, you specify the Docker
-// image that contains inference code, artifacts (from prior training), and a
-// custom environment map that the inference code uses when you deploy the model
-// for predictions. Use this API to create a model if you want to use Amazon
-// SageMaker hosting services or run a batch transform job. To host your model, you
-// create an endpoint configuration with the CreateEndpointConfig API, and then
-// create an endpoint with the CreateEndpoint API. Amazon SageMaker then deploys
-// all of the containers that you defined for the model in the hosting environment.
-// For an example that calls this method when deploying a model to Amazon SageMaker
-// hosting services, see Deploy the Model to Amazon SageMaker Hosting Services
-// (Amazon Web Services SDK for Python (Boto 3)).
+// Creates a model in SageMaker. In the request, you name the model and describe a
+// primary container. For the primary container, you specify the Docker image that
+// contains inference code, artifacts (from prior training), and a custom
+// environment map that the inference code uses when you deploy the model for
+// predictions. Use this API to create a model if you want to use SageMaker hosting
+// services or run a batch transform job. To host your model, you create an
+// endpoint configuration with the CreateEndpointConfig API, and then create an
+// endpoint with the CreateEndpoint API. SageMaker then deploys all of the
+// containers that you defined for the model in the hosting environment. For an
+// example that calls this method when deploying a model to SageMaker hosting
+// services, see Deploy the Model to Amazon SageMaker Hosting Services (Amazon Web
+// Services SDK for Python (Boto 3)).
// (https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-deploy-model.html#ex1-deploy-model-boto)
// To run a batch transform using your model, you start a job with the
-// CreateTransformJob API. Amazon SageMaker uses your model and your dataset to get
-// inferences which are then saved to a specified S3 location. In the CreateModel
-// request, you must define a container with the PrimaryContainer parameter. In the
-// request, you also provide an IAM role that Amazon SageMaker can assume to access
-// model artifacts and docker image for deployment on ML compute hosting instances
-// or for batch transform jobs. In addition, you also use the IAM role to manage
-// permissions the inference code needs. For example, if the inference code access
-// any other Amazon Web Services resources, you grant necessary permissions via
-// this role.
+// CreateTransformJob API. SageMaker uses your model and your dataset to get
+// inferences which are then saved to a specified S3 location. In the request, you
+// also provide an IAM role that SageMaker can assume to access model artifacts and
+// docker image for deployment on ML compute hosting instances or for batch
+// transform jobs. In addition, you also use the IAM role to manage permissions the
+// inference code needs. For example, if the inference code access any other Amazon
+// Web Services resources, you grant necessary permissions via this role.
func (c *Client) CreateModel(ctx context.Context, params *CreateModelInput, optFns ...func(*Options)) (*CreateModelOutput, error) {
if params == nil {
params = &CreateModelInput{}
@@ -51,12 +49,12 @@ func (c *Client) CreateModel(ctx context.Context, params *CreateModelInput, optF
type CreateModelInput struct {
- // The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker can assume
- // to access model artifacts and docker image for deployment on ML compute
- // instances or for batch transform jobs. Deploying on ML compute instances is part
- // of model hosting. For more information, see Amazon SageMaker Roles
+ // The Amazon Resource Name (ARN) of the IAM role that SageMaker can assume to
+ // access model artifacts and docker image for deployment on ML compute instances
+ // or for batch transform jobs. Deploying on ML compute instances is part of model
+ // hosting. For more information, see SageMaker Roles
// (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). To be
- // able to pass this role to Amazon SageMaker, the caller of this API must have the
+ // able to pass this role to SageMaker, the caller of this API must have the
// iam:PassRole permission.
//
// This member is required.
@@ -102,7 +100,7 @@ type CreateModelInput struct {
type CreateModelOutput struct {
- // The ARN of the model created in Amazon SageMaker.
+ // The ARN of the model created in SageMaker.
//
// This member is required.
ModelArn *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateModelPackage.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateModelPackage.go
index 02354c9..3b088c3 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateModelPackage.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateModelPackage.go
@@ -12,14 +12,14 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Creates a model package that you can use to create Amazon SageMaker models or
-// list on Amazon Web Services Marketplace, or a versioned model that is part of a
-// model group. Buyers can subscribe to model packages listed on Amazon Web
-// Services Marketplace to create models in Amazon SageMaker. To create a model
-// package by specifying a Docker container that contains your inference code and
-// the Amazon S3 location of your model artifacts, provide values for
-// InferenceSpecification. To create a model from an algorithm resource that you
-// created or subscribed to in Amazon Web Services Marketplace, provide a value for
+// Creates a model package that you can use to create SageMaker models or list on
+// Amazon Web Services Marketplace, or a versioned model that is part of a model
+// group. Buyers can subscribe to model packages listed on Amazon Web Services
+// Marketplace to create models in SageMaker. To create a model package by
+// specifying a Docker container that contains your inference code and the Amazon
+// S3 location of your model artifacts, provide values for InferenceSpecification.
+// To create a model from an algorithm resource that you created or subscribed to
+// in Amazon Web Services Marketplace, provide a value for
// SourceAlgorithmSpecification. There are two types of model packages:
//
// *
@@ -44,6 +44,12 @@ func (c *Client) CreateModelPackage(ctx context.Context, params *CreateModelPack
type CreateModelPackageInput struct {
+ // An array of additional Inference Specification objects. Each additional
+ // Inference Specification specifies artifacts based on this model package that can
+ // be used on inference endpoints. Generally used with SageMaker Neo to store the
+ // compiled artifacts.
+ AdditionalInferenceSpecifications []types.AdditionalInferenceSpecificationDefinition
+
// Whether to certify the model package for listing on Amazon Web Services
// Marketplace. This parameter is optional for unversioned models, and does not
// apply to versioned models.
@@ -55,6 +61,18 @@ type CreateModelPackageInput struct {
// The metadata properties associated with the model package versions.
CustomerMetadataProperties map[string]string
+ // The machine learning domain of your model package and its components. Common
+ // machine learning domains include computer vision and natural language
+ // processing.
+ Domain *string
+
+ // Represents the drift check baselines that can be used when the model monitor is
+ // set using the model package. For more information, see the topic on Drift
+ // Detection against Previous Baselines in SageMaker Pipelines
+ // (https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection)
+ // in the Amazon SageMaker Developer Guide.
+ DriftCheckBaselines *types.DriftCheckBaselines
+
// Specifies details about inference jobs that can be run with models based on this
// model package, including the following:
//
@@ -93,6 +111,11 @@ type CreateModelPackageInput struct {
// unversioned models. It is not applicable to versioned models.
ModelPackageName *string
+ // The Amazon Simple Storage Service (Amazon S3) path where the sample payload are
+ // stored. This path must point to a single gzip compressed tar archive (.tar.gz
+ // suffix).
+ SamplePayloadUrl *string
+
// Details about the algorithm that was used to create the model package.
SourceAlgorithmSpecification *types.SourceAlgorithmSpecification
@@ -102,8 +125,16 @@ type CreateModelPackageInput struct {
// Web Services General Reference Guide.
Tags []types.Tag
- // Specifies configurations for one or more transform jobs that Amazon SageMaker
- // runs to test the model package.
+ // The machine learning task your model package accomplishes. Common machine
+ // learning tasks include object detection and image classification. The following
+ // tasks are supported by Inference Recommender: "IMAGE_CLASSIFICATION" |
+ // "OBJECT_DETECTION" | "TEXT_GENERATION" |"IMAGE_SEGMENTATION" | "FILL_MASK" |
+ // "CLASSIFICATION" | "REGRESSION" | "OTHER". Specify "OTHER" if none of the tasks
+ // listed fit your use case.
+ Task *string
+
+ // Specifies configurations for one or more transform jobs that SageMaker runs to
+ // test the model package.
ValidationSpecification *types.ModelPackageValidationSpecification
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateNotebookInstance.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateNotebookInstance.go
index 6e9f620..b844b2b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateNotebookInstance.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateNotebookInstance.go
@@ -11,39 +11,38 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Creates an Amazon SageMaker notebook instance. A notebook instance is a machine
+// Creates an SageMaker notebook instance. A notebook instance is a machine
// learning (ML) compute instance running on a Jupyter notebook. In a
// CreateNotebookInstance request, specify the type of ML compute instance that you
-// want to run. Amazon SageMaker launches the instance, installs common libraries
-// that you can use to explore datasets for model training, and attaches an ML
-// storage volume to the notebook instance. Amazon SageMaker also provides a set of
-// example notebooks. Each notebook demonstrates how to use Amazon SageMaker with a
-// specific algorithm or with a machine learning framework. After receiving the
-// request, Amazon SageMaker does the following:
+// want to run. SageMaker launches the instance, installs common libraries that you
+// can use to explore datasets for model training, and attaches an ML storage
+// volume to the notebook instance. SageMaker also provides a set of example
+// notebooks. Each notebook demonstrates how to use SageMaker with a specific
+// algorithm or with a machine learning framework. After receiving the request,
+// SageMaker does the following:
//
-// * Creates a network interface in
-// the Amazon SageMaker VPC.
+// * Creates a network interface in the SageMaker
+// VPC.
//
-// * (Option) If you specified SubnetId, Amazon
-// SageMaker creates a network interface in your own VPC, which is inferred from
-// the subnet ID that you provide in the input. When creating this network
-// interface, Amazon SageMaker attaches the security group that you specified in
-// the request to the network interface that it creates in your VPC.
+// * (Option) If you specified SubnetId, SageMaker creates a network
+// interface in your own VPC, which is inferred from the subnet ID that you provide
+// in the input. When creating this network interface, SageMaker attaches the
+// security group that you specified in the request to the network interface that
+// it creates in your VPC.
//
-// * Launches an
-// EC2 instance of the type specified in the request in the Amazon SageMaker VPC.
-// If you specified SubnetId of your VPC, Amazon SageMaker specifies both network
-// interfaces when launching this instance. This enables inbound traffic from your
-// own VPC to the notebook instance, assuming that the security groups allow
-// it.
+// * Launches an EC2 instance of the type specified in the
+// request in the SageMaker VPC. If you specified SubnetId of your VPC, SageMaker
+// specifies both network interfaces when launching this instance. This enables
+// inbound traffic from your own VPC to the notebook instance, assuming that the
+// security groups allow it.
//
-// After creating the notebook instance, Amazon SageMaker returns its Amazon
-// Resource Name (ARN). You can't change the name of a notebook instance after you
-// create it. After Amazon SageMaker creates the notebook instance, you can connect
-// to the Jupyter server and work in Jupyter notebooks. For example, you can write
-// code to explore a dataset that you can use for model training, train a model,
-// host models by creating Amazon SageMaker endpoints, and validate hosted models.
-// For more information, see How It Works
+// After creating the notebook instance, SageMaker
+// returns its Amazon Resource Name (ARN). You can't change the name of a notebook
+// instance after you create it. After SageMaker creates the notebook instance, you
+// can connect to the Jupyter server and work in Jupyter notebooks. For example,
+// you can write code to explore a dataset that you can use for model training,
+// train a model, host models by creating SageMaker endpoints, and validate hosted
+// models. For more information, see How It Works
// (https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html).
func (c *Client) CreateNotebookInstance(ctx context.Context, params *CreateNotebookInstanceInput, optFns ...func(*Options)) (*CreateNotebookInstanceOutput, error) {
if params == nil {
@@ -73,13 +72,12 @@ type CreateNotebookInstanceInput struct {
NotebookInstanceName *string
// When you send any requests to Amazon Web Services resources from the notebook
- // instance, Amazon SageMaker assumes this role to perform tasks on your behalf.
- // You must grant this role necessary permissions so Amazon SageMaker can perform
- // these tasks. The policy must allow the Amazon SageMaker service principal
- // (sagemaker.amazonaws.com) permissions to assume this role. For more information,
- // see Amazon SageMaker Roles
+ // instance, SageMaker assumes this role to perform tasks on your behalf. You must
+ // grant this role necessary permissions so SageMaker can perform these tasks. The
+ // policy must allow the SageMaker service principal (sagemaker.amazonaws.com)
+ // permissions to assume this role. For more information, see SageMaker Roles
// (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). To be
- // able to pass this role to Amazon SageMaker, the caller of this API must have the
+ // able to pass this role to SageMaker, the caller of this API must have the
// iam:PassRole permission.
//
// This member is required.
@@ -98,7 +96,7 @@ type CreateNotebookInstanceInput struct {
// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any
// other Git repository. These repositories are cloned at the same level as the
// default repository of your notebook instance. For more information, see
- // Associating Git Repositories with Amazon SageMaker Notebook Instances
+ // Associating Git Repositories with SageMaker Notebook Instances
// (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
AdditionalCodeRepositories []string
@@ -109,24 +107,27 @@ type CreateNotebookInstanceInput struct {
// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any
// other Git repository. When you open a notebook instance, it opens in the
// directory that contains this repository. For more information, see Associating
- // Git Repositories with Amazon SageMaker Notebook Instances
+ // Git Repositories with SageMaker Notebook Instances
// (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
DefaultCodeRepository *string
- // Sets whether Amazon SageMaker provides internet access to the notebook instance.
- // If you set this to Disabled this notebook instance is able to access resources
- // only in your VPC, and is not be able to connect to Amazon SageMaker training and
- // endpoint services unless you configure a NAT Gateway in your VPC. For more
- // information, see Notebook Instances Are Internet-Enabled by Default
+ // Sets whether SageMaker provides internet access to the notebook instance. If you
+ // set this to Disabled this notebook instance is able to access resources only in
+ // your VPC, and is not be able to connect to SageMaker training and endpoint
+ // services unless you configure a NAT Gateway in your VPC. For more information,
+ // see Notebook Instances Are Internet-Enabled by Default
// (https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access).
// You can set the value of this parameter to Disabled only if you set a value for
// the SubnetId parameter.
DirectInternetAccess types.DirectInternetAccess
+ // Information on the IMDS configuration of the notebook instance
+ InstanceMetadataServiceConfiguration *types.InstanceMetadataServiceConfiguration
+
// The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service
- // key that Amazon SageMaker uses to encrypt data on the storage volume attached to
- // your notebook instance. The KMS key you provide must be enabled. For
- // information, see Enabling and Disabling Keys
+ // key that SageMaker uses to encrypt data on the storage volume attached to your
+ // notebook instance. The KMS key you provide must be enabled. For information, see
+ // Enabling and Disabling Keys
// (https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html) in
// the Amazon Web Services Key Management Service Developer Guide.
KmsKeyId *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreatePipeline.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreatePipeline.go
index d1526ea..00644c5 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreatePipeline.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreatePipeline.go
@@ -36,11 +36,6 @@ type CreatePipelineInput struct {
// This member is required.
ClientRequestToken *string
- // The JSON pipeline definition of the pipeline.
- //
- // This member is required.
- PipelineDefinition *string
-
// The name of the pipeline.
//
// This member is required.
@@ -52,6 +47,17 @@ type CreatePipelineInput struct {
// This member is required.
RoleArn *string
+ // This is the configuration that controls the parallelism of the pipeline. If
+ // specified, it applies to all runs of this pipeline by default.
+ ParallelismConfiguration *types.ParallelismConfiguration
+
+ // The JSON pipeline definition of the pipeline.
+ PipelineDefinition *string
+
+ // The location of the pipeline definition stored in Amazon S3. If specified,
+ // SageMaker will retrieve the pipeline definition from this location.
+ PipelineDefinitionS3Location *types.PipelineDefinitionS3Location
+
// A description of the pipeline.
PipelineDescription *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreatePresignedNotebookInstanceUrl.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreatePresignedNotebookInstanceUrl.go
index 9138f35..8320247 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreatePresignedNotebookInstanceUrl.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreatePresignedNotebookInstanceUrl.go
@@ -11,19 +11,19 @@ import (
)
// Returns a URL that you can use to connect to the Jupyter server from a notebook
-// instance. In the Amazon SageMaker console, when you choose Open next to a
-// notebook instance, Amazon SageMaker opens a new tab showing the Jupyter server
-// home page from the notebook instance. The console uses this API to get the URL
-// and show the page. The IAM role or user used to call this API defines the
-// permissions to access the notebook instance. Once the presigned URL is created,
-// no additional permission is required to access this URL. IAM authorization
-// policies for this API are also enforced for every HTTP request and WebSocket
-// frame that attempts to connect to the notebook instance. You can restrict access
-// to this API and to the URL that it returns to a list of IP addresses that you
-// specify. Use the NotIpAddress condition operator and the aws:SourceIP condition
-// context key to specify the list of IP addresses that you want to have access to
-// the notebook instance. For more information, see Limit Access to a Notebook
-// Instance by IP Address
+// instance. In the SageMaker console, when you choose Open next to a notebook
+// instance, SageMaker opens a new tab showing the Jupyter server home page from
+// the notebook instance. The console uses this API to get the URL and show the
+// page. The IAM role or user used to call this API defines the permissions to
+// access the notebook instance. Once the presigned URL is created, no additional
+// permission is required to access this URL. IAM authorization policies for this
+// API are also enforced for every HTTP request and WebSocket frame that attempts
+// to connect to the notebook instance. You can restrict access to this API and to
+// the URL that it returns to a list of IP addresses that you specify. Use the
+// NotIpAddress condition operator and the aws:SourceIP condition context key to
+// specify the list of IP addresses that you want to have access to the notebook
+// instance. For more information, see Limit Access to a Notebook Instance by IP
+// Address
// (https://docs.aws.amazon.com/sagemaker/latest/dg/security_iam_id-based-policy-examples.html#nbi-ip-filter).
// The URL that you get from a call to CreatePresignedNotebookInstanceUrl is valid
// only for 5 minutes. If you try to use the URL after the 5-minute limit expires,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateTrainingJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateTrainingJob.go
index 5f81375..093b1f6 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateTrainingJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateTrainingJob.go
@@ -11,21 +11,21 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Starts a model training job. After training completes, Amazon SageMaker saves
-// the resulting model artifacts to an Amazon S3 location that you specify. If you
-// choose to host your model using Amazon SageMaker hosting services, you can use
-// the resulting model artifacts as part of the model. You can also use the
-// artifacts in a machine learning service other than Amazon SageMaker, provided
-// that you know how to use them for inference. In the request body, you provide
-// the following:
+// Starts a model training job. After training completes, SageMaker saves the
+// resulting model artifacts to an Amazon S3 location that you specify. If you
+// choose to host your model using SageMaker hosting services, you can use the
+// resulting model artifacts as part of the model. You can also use the artifacts
+// in a machine learning service other than SageMaker, provided that you know how
+// to use them for inference. In the request body, you provide the following:
//
-// * AlgorithmSpecification - Identifies the training algorithm to
-// use.
+// *
+// AlgorithmSpecification - Identifies the training algorithm to use.
//
-// * HyperParameters - Specify these algorithm-specific parameters to enable
-// the estimation of model parameters during training. Hyperparameters can be tuned
-// to optimize this learning process. For a list of hyperparameters for each
-// training algorithm provided by Amazon SageMaker, see Algorithms
+// *
+// HyperParameters - Specify these algorithm-specific parameters to enable the
+// estimation of model parameters during training. Hyperparameters can be tuned to
+// optimize this learning process. For a list of hyperparameters for each training
+// algorithm provided by SageMaker, see Algorithms
// (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html).
//
// * InputDataConfig
@@ -33,7 +33,7 @@ import (
// it is stored.
//
// * OutputDataConfig - Identifies the Amazon S3 bucket where you
-// want Amazon SageMaker to save the results of model training.
+// want SageMaker to save the results of model training.
//
// * ResourceConfig -
// Identifies the resources, ML compute instances, and ML storage volumes to deploy
@@ -46,24 +46,24 @@ import (
// (https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html).
//
// *
-// RoleArn - The Amazon Resource Name (ARN) that Amazon SageMaker assumes to
-// perform tasks on your behalf during model training. You must grant this role the
-// necessary permissions so that Amazon SageMaker can successfully complete model
-// training.
+// RoleArn - The Amazon Resource Name (ARN) that SageMaker assumes to perform tasks
+// on your behalf during model training. You must grant this role the necessary
+// permissions so that SageMaker can successfully complete model training.
//
-// * StoppingCondition - To help cap training costs, use
-// MaxRuntimeInSeconds to set a time limit for training. Use MaxWaitTimeInSeconds
-// to specify how long a managed spot training job has to complete.
+// *
+// StoppingCondition - To help cap training costs, use MaxRuntimeInSeconds to set a
+// time limit for training. Use MaxWaitTimeInSeconds to specify how long a managed
+// spot training job has to complete.
//
-// * Environment
-// - The environment variables to set in the Docker container.
+// * Environment - The environment variables to
+// set in the Docker container.
//
-// * RetryStrategy -
-// The number of times to retry the job when the job fails due to an
-// InternalServerError.
+// * RetryStrategy - The number of times to retry the
+// job when the job fails due to an InternalServerError.
//
-// For more information about Amazon SageMaker, see How It
-// Works (https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html).
+// For more information
+// about SageMaker, see How It Works
+// (https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html).
func (c *Client) CreateTrainingJob(ctx context.Context, params *CreateTrainingJobInput, optFns ...func(*Options)) (*CreateTrainingJobOutput, error) {
if params == nil {
params = &CreateTrainingJobInput{}
@@ -83,7 +83,7 @@ type CreateTrainingJobInput struct {
// The registry path of the Docker image that contains the training algorithm and
// algorithm-specific metadata, including the input mode. For more information
- // about algorithms provided by Amazon SageMaker, see Algorithms
+ // about algorithms provided by SageMaker, see Algorithms
// (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). For information
// about providing your own algorithms, see Using Your Own Algorithms with Amazon
// SageMaker
@@ -93,7 +93,7 @@ type CreateTrainingJobInput struct {
AlgorithmSpecification *types.AlgorithmSpecification
// Specifies the path to the S3 location where you want to store model artifacts.
- // Amazon SageMaker creates subfolders for the artifacts.
+ // SageMaker creates subfolders for the artifacts.
//
// This member is required.
OutputDataConfig *types.OutputDataConfig
@@ -101,22 +101,22 @@ type CreateTrainingJobInput struct {
// The resources, including the ML compute instances and ML storage volumes, to use
// for model training. ML storage volumes store model artifacts and incremental
// states. Training algorithms might also use ML storage volumes for scratch space.
- // If you want Amazon SageMaker to use the ML storage volume to store the training
- // data, choose File as the TrainingInputMode in the algorithm specification. For
+ // If you want SageMaker to use the ML storage volume to store the training data,
+ // choose File as the TrainingInputMode in the algorithm specification. For
// distributed training algorithms, specify an instance count greater than 1.
//
// This member is required.
ResourceConfig *types.ResourceConfig
- // The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume
- // to perform tasks on your behalf. During model training, Amazon SageMaker needs
- // your permission to read input data from an S3 bucket, download a Docker image
- // that contains training code, write model artifacts to an S3 bucket, write logs
- // to Amazon CloudWatch Logs, and publish metrics to Amazon CloudWatch. You grant
+ // The Amazon Resource Name (ARN) of an IAM role that SageMaker can assume to
+ // perform tasks on your behalf. During model training, SageMaker needs your
+ // permission to read input data from an S3 bucket, download a Docker image that
+ // contains training code, write model artifacts to an S3 bucket, write logs to
+ // Amazon CloudWatch Logs, and publish metrics to Amazon CloudWatch. You grant
// permissions for all of these tasks to an IAM role. For more information, see
- // Amazon SageMaker Roles
+ // SageMaker Roles
// (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). To be
- // able to pass this role to Amazon SageMaker, the caller of this API must have the
+ // able to pass this role to SageMaker, the caller of this API must have the
// iam:PassRole permission.
//
// This member is required.
@@ -124,11 +124,10 @@ type CreateTrainingJobInput struct {
// Specifies a limit to how long a model training job can run. It also specifies
// how long a managed Spot training job has to complete. When the job reaches the
- // time limit, Amazon SageMaker ends the training job. Use this API to cap model
- // training costs. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM
- // signal, which delays job termination for 120 seconds. Algorithms can use this
- // 120-second window to save the model artifacts, so the results of training are
- // not lost.
+ // time limit, SageMaker ends the training job. Use this API to cap model training
+ // costs. To stop a job, SageMaker sends the algorithm the SIGTERM signal, which
+ // delays job termination for 120 seconds. Algorithms can use this 120-second
+ // window to save the model artifacts, so the results of training are not lost.
//
// This member is required.
StoppingCondition *types.StoppingCondition
@@ -175,9 +174,9 @@ type CreateTrainingJobInput struct {
// Isolates the training container. No inbound or outbound network calls can be
// made, except for calls between peers within a training cluster for distributed
// training. If you enable network isolation for training jobs that are configured
- // to use a VPC, Amazon SageMaker downloads and uploads customer data and model
- // artifacts through the specified VPC, but the training container does not have
- // network access.
+ // to use a VPC, SageMaker downloads and uploads customer data and model artifacts
+ // through the specified VPC, but the training container does not have network
+ // access.
EnableNetworkIsolation bool
// The environment variables to set in the Docker container.
@@ -196,7 +195,7 @@ type CreateTrainingJobInput struct {
// Algorithm-specific parameters that influence the quality of the model. You set
// hyperparameters before you start the learning process. For a list of
- // hyperparameters for each training algorithm provided by Amazon SageMaker, see
+ // hyperparameters for each training algorithm provided by SageMaker, see
// Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). You can
// specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value
// pair. Each key and value is limited to 256 characters, as specified by the
@@ -210,11 +209,11 @@ type CreateTrainingJobInput struct {
// each channel provides the S3, EFS, or FSx location where the input data is
// stored. It also provides information about the stored data: the MIME type,
// compression method, and whether the data is wrapped in RecordIO format.
- // Depending on the input mode that the algorithm supports, Amazon SageMaker either
- // copies input data files from an S3 bucket to a local directory in the Docker
- // container, or makes it available as input streams. For example, if you specify
- // an EFS location, input data files will be made available as input streams. They
- // do not need to be downloaded.
+ // Depending on the input mode that the algorithm supports, SageMaker either copies
+ // input data files from an S3 bucket to a local directory in the Docker container,
+ // or makes it available as input streams. For example, if you specify an EFS
+ // location, input data files are available as input streams. They do not need to
+ // be downloaded.
InputDataConfig []types.Channel
// Configuration information for Debugger system monitoring, framework profiling,
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateTransformJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateTransformJob.go
index cfa1cda..fd925c6 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateTransformJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_CreateTransformJob.go
@@ -24,20 +24,22 @@ import (
// * ModelName - Identifies the model to use. ModelName must be the name
// of an existing Amazon SageMaker model in the same Amazon Web Services Region and
// Amazon Web Services account. For information on creating a model, see
-// CreateModel.
+// CreateModel
+// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html).
//
-// * TransformInput - Describes the dataset to be transformed and the
-// Amazon S3 location where it is stored.
+// *
+// TransformInput - Describes the dataset to be transformed and the Amazon S3
+// location where it is stored.
//
-// * TransformOutput - Identifies the
-// Amazon S3 location where you want Amazon SageMaker to save the results from the
+// * TransformOutput - Identifies the Amazon S3
+// location where you want Amazon SageMaker to save the results from the transform
+// job.
+//
+// * TransformResources - Identifies the ML compute instances for the
// transform job.
//
-// * TransformResources - Identifies the ML compute instances for
-// the transform job.
-//
-// For more information about how batch transformation works,
-// see Batch Transform
+// For more information about how batch transformation works, see
+// Batch Transform
// (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html).
func (c *Client) CreateTransformJob(ctx context.Context, params *CreateTransformJobInput, optFns ...func(*Options)) (*CreateTransformJobOutput, error) {
if params == nil {
@@ -136,10 +138,13 @@ type CreateTransformJobInput struct {
// or equal to, the size of a single record. To estimate the size of a record in
// MB, divide the size of your dataset by the number of records. To ensure that the
// records fit within the maximum payload size, we recommend using a slightly
- // larger value. The default value is 6 MB. For cases where the payload might be
- // arbitrarily large and is transmitted using HTTP chunked encoding, set the value
- // to 0. This feature works only in supported algorithms. Currently, Amazon
- // SageMaker built-in algorithms do not support HTTP chunked encoding.
+ // larger value. The default value is 6 MB. The value of MaxPayloadInMB cannot be
+ // greater than 100 MB. If you specify the MaxConcurrentTransforms parameter, the
+ // value of (MaxConcurrentTransforms * MaxPayloadInMB) also cannot exceed 100 MB.
+ // For cases where the payload might be arbitrarily large and is transmitted using
+ // HTTP chunked encoding, set the value to 0. This feature works only in supported
+ // algorithms. Currently, Amazon SageMaker built-in algorithms do not support HTTP
+ // chunked encoding.
MaxPayloadInMB *int32
// Configures the timeout and maximum number of retries for processing a transform
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteEndpoint.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteEndpoint.go
index 6fe079d..2dd8d90 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteEndpoint.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteEndpoint.go
@@ -10,12 +10,16 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Deletes an endpoint. Amazon SageMaker frees up all of the resources that were
-// deployed when the endpoint was created. Amazon SageMaker retires any custom KMS
-// key grants associated with the endpoint, meaning you don't need to use the
-// RevokeGrant
+// Deletes an endpoint. SageMaker frees up all of the resources that were deployed
+// when the endpoint was created. SageMaker retires any custom KMS key grants
+// associated with the endpoint, meaning you don't need to use the RevokeGrant
// (http://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html) API
-// call.
+// call. When you delete your endpoint, SageMaker asynchronously deletes associated
+// endpoint resources such as KMS key grants. You might still see these resources
+// in your account for a few minutes after deleting your endpoint. Do not delete or
+// revoke the permissions for your ExecutionRoleArn
+// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html#sagemaker-CreateModel-request-ExecutionRoleArn),
+// otherwise SageMaker cannot delete these resources.
func (c *Client) DeleteEndpoint(ctx context.Context, params *DeleteEndpointInput, optFns ...func(*Options)) (*DeleteEndpointOutput, error) {
if params == nil {
params = &DeleteEndpointInput{}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteModel.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteModel.go
index d8edaca..16fb536 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteModel.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteModel.go
@@ -11,8 +11,8 @@ import (
)
// Deletes a model. The DeleteModel API deletes only the model entry that was
-// created in Amazon SageMaker when you called the CreateModel API. It does not
-// delete model artifacts, inference code, or the IAM role that you specified when
+// created in SageMaker when you called the CreateModel API. It does not delete
+// model artifacts, inference code, or the IAM role that you specified when
// creating the model.
func (c *Client) DeleteModel(ctx context.Context, params *DeleteModelInput, optFns ...func(*Options)) (*DeleteModelOutput, error) {
if params == nil {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteModelPackage.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteModelPackage.go
index a1d1ed6..a95d8d2 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteModelPackage.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteModelPackage.go
@@ -10,10 +10,9 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Deletes a model package. A model package is used to create Amazon SageMaker
-// models or list on Amazon Web Services Marketplace. Buyers can subscribe to model
-// packages listed on Amazon Web Services Marketplace to create models in Amazon
-// SageMaker.
+// Deletes a model package. A model package is used to create SageMaker models or
+// list on Amazon Web Services Marketplace. Buyers can subscribe to model packages
+// listed on Amazon Web Services Marketplace to create models in SageMaker.
func (c *Client) DeleteModelPackage(ctx context.Context, params *DeleteModelPackageInput, optFns ...func(*Options)) (*DeleteModelPackageOutput, error) {
if params == nil {
params = &DeleteModelPackageInput{}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteNotebookInstance.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteNotebookInstance.go
index 46429f3..44aee40 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteNotebookInstance.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteNotebookInstance.go
@@ -10,11 +10,11 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Deletes an Amazon SageMaker notebook instance. Before you can delete a notebook
+// Deletes an SageMaker notebook instance. Before you can delete a notebook
// instance, you must call the StopNotebookInstance API. When you delete a notebook
-// instance, you lose all of your data. Amazon SageMaker removes the ML compute
-// instance, and deletes the ML storage volume and the network interface associated
-// with the notebook instance.
+// instance, you lose all of your data. SageMaker removes the ML compute instance,
+// and deletes the ML storage volume and the network interface associated with the
+// notebook instance.
func (c *Client) DeleteNotebookInstance(ctx context.Context, params *DeleteNotebookInstanceInput, optFns ...func(*Options)) (*DeleteNotebookInstanceOutput, error) {
if params == nil {
params = &DeleteNotebookInstanceInput{}
@@ -32,7 +32,7 @@ func (c *Client) DeleteNotebookInstance(ctx context.Context, params *DeleteNoteb
type DeleteNotebookInstanceInput struct {
- // The name of the Amazon SageMaker notebook instance to delete.
+ // The name of the SageMaker notebook instance to delete.
//
// This member is required.
NotebookInstanceName *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteTags.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteTags.go
index 2a7feb7..8f6fb76 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteTags.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DeleteTags.go
@@ -10,13 +10,13 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Deletes the specified tags from an Amazon SageMaker resource. To list a
-// resource's tags, use the ListTags API. When you call this API to delete tags
-// from a hyperparameter tuning job, the deleted tags are not removed from training
-// jobs that the hyperparameter tuning job launched before you called this API.
-// When you call this API to delete tags from a SageMaker Studio Domain or User
-// Profile, the deleted tags are not removed from Apps that the SageMaker Studio
-// Domain or User Profile launched before you called this API.
+// Deletes the specified tags from an SageMaker resource. To list a resource's
+// tags, use the ListTags API. When you call this API to delete tags from a
+// hyperparameter tuning job, the deleted tags are not removed from training jobs
+// that the hyperparameter tuning job launched before you called this API. When you
+// call this API to delete tags from a SageMaker Studio Domain or User Profile, the
+// deleted tags are not removed from Apps that the SageMaker Studio Domain or User
+// Profile launched before you called this API.
func (c *Client) DeleteTags(ctx context.Context, params *DeleteTagsInput, optFns ...func(*Options)) (*DeleteTagsOutput, error) {
if params == nil {
params = &DeleteTagsInput{}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeAction.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeAction.go
index 7c4beb6..6676b51 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeAction.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeAction.go
@@ -50,7 +50,7 @@ type DescribeActionOutput struct {
ActionType *string
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *types.UserContext
// When the action was created.
@@ -60,12 +60,15 @@ type DescribeActionOutput struct {
Description *string
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *types.UserContext
// When the action was last modified.
LastModifiedTime *time.Time
+ // The Amazon Resource Name (ARN) of the lineage group.
+ LineageGroupArn *string
+
// Metadata properties of the tracking entity, trial, or trial component.
MetadataProperties *types.MetadataProperties
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeAlgorithm.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeAlgorithm.go
index d364c7d..153fc9c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeAlgorithm.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeAlgorithm.go
@@ -83,8 +83,8 @@ type DescribeAlgorithmOutput struct {
// The product identifier of the algorithm.
ProductId *string
- // Details about configurations for one or more training jobs that Amazon SageMaker
- // runs to test the algorithm.
+ // Details about configurations for one or more training jobs that SageMaker runs
+ // to test the algorithm.
ValidationSpecification *types.AlgorithmValidationSpecification
// Metadata pertaining to the operation's result.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeArtifact.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeArtifact.go
index 63c0cbd..6897af5 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeArtifact.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeArtifact.go
@@ -50,19 +50,22 @@ type DescribeArtifactOutput struct {
ArtifactType *string
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *types.UserContext
// When the artifact was created.
CreationTime *time.Time
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *types.UserContext
// When the artifact was last modified.
LastModifiedTime *time.Time
+ // The Amazon Resource Name (ARN) of the lineage group.
+ LineageGroupArn *string
+
// Metadata properties of the tracking entity, trial, or trial component.
MetadataProperties *types.MetadataProperties
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeCompilationJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeCompilationJob.go
index 81b5d87..f0735f5 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeCompilationJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeCompilationJob.go
@@ -126,6 +126,10 @@ type DescribeCompilationJobOutput struct {
// Amazon S3.
ModelDigests *types.ModelDigests
+ // The Amazon Resource Name (ARN) of the versioned model package that was provided
+ // to SageMaker Neo when you initiated a compilation job.
+ ModelPackageVersionArn *string
+
// A VpcConfig object that specifies the VPC that you want your compilation job to
// connect to. Control access to your models by configuring the VPC. For more
// information, see Protect Compilation Jobs by Using an Amazon Virtual Private
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeContext.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeContext.go
index 15cf14f..74a93e6 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeContext.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeContext.go
@@ -50,7 +50,7 @@ type DescribeContextOutput struct {
ContextType *string
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *types.UserContext
// When the context was created.
@@ -60,12 +60,15 @@ type DescribeContextOutput struct {
Description *string
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *types.UserContext
// When the context was last modified.
LastModifiedTime *time.Time
+ // The Amazon Resource Name (ARN) of the lineage group.
+ LineageGroupArn *string
+
// A list of the context's properties.
Properties map[string]string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeDomain.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeDomain.go
index 9dca79d..63cdd16 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeDomain.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeDomain.go
@@ -85,7 +85,7 @@ type DescribeDomainOutput struct {
// The ID of the Amazon Elastic File System (EFS) managed by this Domain.
HomeEfsFileSystemId *string
- // This member is deprecated and replaced with KmsKeyId.
+ // Use KmsKeyId.
//
// Deprecated: This property is deprecated, use KmsKeyId instead.
HomeEfsFileSystemKmsKeyId *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeEndpoint.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeEndpoint.go
index c7cf413..69527f8 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeEndpoint.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeEndpoint.go
@@ -114,7 +114,7 @@ type DescribeEndpointOutput struct {
// API.
AsyncInferenceConfig *types.AsyncInferenceConfig
- //
+ // The currently active data capture configuration used by your Endpoint.
DataCaptureConfig *types.DataCaptureConfigSummary
// If the status of the endpoint is Failed, the reason why it failed.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeEndpointConfig.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeEndpointConfig.go
index 8d00032..79cdb7b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeEndpointConfig.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeEndpointConfig.go
@@ -51,7 +51,7 @@ type DescribeEndpointConfigOutput struct {
// This member is required.
EndpointConfigArn *string
- // Name of the Amazon SageMaker endpoint configuration.
+ // Name of the SageMaker endpoint configuration.
//
// This member is required.
EndpointConfigName *string
@@ -68,7 +68,7 @@ type DescribeEndpointConfigOutput struct {
// API.
AsyncInferenceConfig *types.AsyncInferenceConfig
- //
+ // Configuration to control how SageMaker captures inference data.
DataCaptureConfig *types.DataCaptureConfig
// Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data when
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeInferenceRecommendationsJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeInferenceRecommendationsJob.go
new file mode 100644
index 0000000..8ae33a1
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeInferenceRecommendationsJob.go
@@ -0,0 +1,180 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package sagemaker
+
+import (
+ "context"
+ awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
+ "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/aws-sdk-go-v2/service/sagemaker/types"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+ "time"
+)
+
+// Provides the results of the Inference Recommender job. One or more
+// recommendation jobs are returned.
+func (c *Client) DescribeInferenceRecommendationsJob(ctx context.Context, params *DescribeInferenceRecommendationsJobInput, optFns ...func(*Options)) (*DescribeInferenceRecommendationsJobOutput, error) {
+ if params == nil {
+ params = &DescribeInferenceRecommendationsJobInput{}
+ }
+
+ result, metadata, err := c.invokeOperation(ctx, "DescribeInferenceRecommendationsJob", params, optFns, c.addOperationDescribeInferenceRecommendationsJobMiddlewares)
+ if err != nil {
+ return nil, err
+ }
+
+ out := result.(*DescribeInferenceRecommendationsJobOutput)
+ out.ResultMetadata = metadata
+ return out, nil
+}
+
+type DescribeInferenceRecommendationsJobInput struct {
+
+ // The name of the job. The name must be unique within an Amazon Web Services
+ // Region in the Amazon Web Services account.
+ //
+ // This member is required.
+ JobName *string
+
+ noSmithyDocumentSerde
+}
+
+type DescribeInferenceRecommendationsJobOutput struct {
+
+ // A timestamp that shows when the job was created.
+ //
+ // This member is required.
+ CreationTime *time.Time
+
+ // Returns information about the versioned model package Amazon Resource Name
+ // (ARN), the traffic pattern, and endpoint configurations you provided when you
+ // initiated the job.
+ //
+ // This member is required.
+ InputConfig *types.RecommendationJobInputConfig
+
+ // The Amazon Resource Name (ARN) of the job.
+ //
+ // This member is required.
+ JobArn *string
+
+ // The name of the job. The name must be unique within an Amazon Web Services
+ // Region in the Amazon Web Services account.
+ //
+ // This member is required.
+ JobName *string
+
+ // The job type that you provided when you initiated the job.
+ //
+ // This member is required.
+ JobType types.RecommendationJobType
+
+ // A timestamp that shows when the job was last modified.
+ //
+ // This member is required.
+ LastModifiedTime *time.Time
+
+ // The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access
+ // Management (IAM) role you provided when you initiated the job.
+ //
+ // This member is required.
+ RoleArn *string
+
+ // The status of the job.
+ //
+ // This member is required.
+ Status types.RecommendationJobStatus
+
+ // A timestamp that shows when the job completed.
+ CompletionTime *time.Time
+
+ // If the job fails, provides information why the job failed.
+ FailureReason *string
+
+ // The recommendations made by Inference Recommender.
+ InferenceRecommendations []types.InferenceRecommendation
+
+ // The job description that you provided when you initiated the job.
+ JobDescription *string
+
+ // The stopping conditions that you provided when you initiated the job.
+ StoppingConditions *types.RecommendationJobStoppingConditions
+
+ // Metadata pertaining to the operation's result.
+ ResultMetadata middleware.Metadata
+
+ noSmithyDocumentSerde
+}
+
+func (c *Client) addOperationDescribeInferenceRecommendationsJobMiddlewares(stack *middleware.Stack, options Options) (err error) {
+ err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeInferenceRecommendationsJob{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ if err = addSetLoggerMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResolveEndpointMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
+ return err
+ }
+ if err = addRetryMiddlewares(stack, options); err != nil {
+ return err
+ }
+ if err = addHTTPSignerV4Middleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
+ return err
+ }
+ if err = addClientUserAgent(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addOpDescribeInferenceRecommendationsJobValidationMiddleware(stack); err != nil {
+ return err
+ }
+ if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeInferenceRecommendationsJob(options.Region), middleware.Before); err != nil {
+ return err
+ }
+ if err = addRequestIDRetrieverMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResponseErrorMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addRequestResponseLogging(stack, options); err != nil {
+ return err
+ }
+ return nil
+}
+
+func newServiceMetadataMiddleware_opDescribeInferenceRecommendationsJob(region string) *awsmiddleware.RegisterServiceMetadata {
+ return &awsmiddleware.RegisterServiceMetadata{
+ Region: region,
+ ServiceID: ServiceID,
+ SigningName: "sagemaker",
+ OperationName: "DescribeInferenceRecommendationsJob",
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeLabelingJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeLabelingJob.go
index 5d442e0..d531fb6 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeLabelingJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeLabelingJob.go
@@ -96,8 +96,8 @@ type DescribeLabelingJobOutput struct {
// This member is required.
OutputConfig *types.LabelingJobOutputConfig
- // The Amazon Resource Name (ARN) that Amazon SageMaker assumes to perform tasks on
- // your behalf during data labeling.
+ // The Amazon Resource Name (ARN) that SageMaker assumes to perform tasks on your
+ // behalf during data labeling.
//
// This member is required.
RoleArn *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeLineageGroup.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeLineageGroup.go
new file mode 100644
index 0000000..cb2418d
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeLineageGroup.go
@@ -0,0 +1,148 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package sagemaker
+
+import (
+ "context"
+ awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
+ "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/aws-sdk-go-v2/service/sagemaker/types"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+ "time"
+)
+
+// Provides a list of properties for the requested lineage group. For more
+// information, see Cross-Account Lineage Tracking
+// (https://docs.aws.amazon.com/sagemaker/latest/dg/xaccount-lineage-tracking.html)
+// in the Amazon SageMaker Developer Guide.
+func (c *Client) DescribeLineageGroup(ctx context.Context, params *DescribeLineageGroupInput, optFns ...func(*Options)) (*DescribeLineageGroupOutput, error) {
+ if params == nil {
+ params = &DescribeLineageGroupInput{}
+ }
+
+ result, metadata, err := c.invokeOperation(ctx, "DescribeLineageGroup", params, optFns, c.addOperationDescribeLineageGroupMiddlewares)
+ if err != nil {
+ return nil, err
+ }
+
+ out := result.(*DescribeLineageGroupOutput)
+ out.ResultMetadata = metadata
+ return out, nil
+}
+
+type DescribeLineageGroupInput struct {
+
+ // The name of the lineage group.
+ //
+ // This member is required.
+ LineageGroupName *string
+
+ noSmithyDocumentSerde
+}
+
+type DescribeLineageGroupOutput struct {
+
+ // Information about the user who created or modified an experiment, trial, trial
+ // component, lineage group, or project.
+ CreatedBy *types.UserContext
+
+ // The creation time of lineage group.
+ CreationTime *time.Time
+
+ // The description of the lineage group.
+ Description *string
+
+ // The display name of the lineage group.
+ DisplayName *string
+
+ // Information about the user who created or modified an experiment, trial, trial
+ // component, lineage group, or project.
+ LastModifiedBy *types.UserContext
+
+ // The last modified time of the lineage group.
+ LastModifiedTime *time.Time
+
+ // The Amazon Resource Name (ARN) of the lineage group.
+ LineageGroupArn *string
+
+ // The name of the lineage group.
+ LineageGroupName *string
+
+ // Metadata pertaining to the operation's result.
+ ResultMetadata middleware.Metadata
+
+ noSmithyDocumentSerde
+}
+
+func (c *Client) addOperationDescribeLineageGroupMiddlewares(stack *middleware.Stack, options Options) (err error) {
+ err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeLineageGroup{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeLineageGroup{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ if err = addSetLoggerMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResolveEndpointMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
+ return err
+ }
+ if err = addRetryMiddlewares(stack, options); err != nil {
+ return err
+ }
+ if err = addHTTPSignerV4Middleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
+ return err
+ }
+ if err = addClientUserAgent(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addOpDescribeLineageGroupValidationMiddleware(stack); err != nil {
+ return err
+ }
+ if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeLineageGroup(options.Region), middleware.Before); err != nil {
+ return err
+ }
+ if err = addRequestIDRetrieverMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResponseErrorMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addRequestResponseLogging(stack, options); err != nil {
+ return err
+ }
+ return nil
+}
+
+func newServiceMetadataMiddleware_opDescribeLineageGroup(region string) *awsmiddleware.RegisterServiceMetadata {
+ return &awsmiddleware.RegisterServiceMetadata{
+ Region: region,
+ ServiceID: ServiceID,
+ SigningName: "sagemaker",
+ OperationName: "DescribeLineageGroup",
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModel.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModel.go
index 6628343..c1b1eb9 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModel.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModel.go
@@ -55,7 +55,7 @@ type DescribeModelOutput struct {
// This member is required.
ModelArn *string
- // Name of the Amazon SageMaker model.
+ // Name of the SageMaker model.
//
// This member is required.
ModelName *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModelPackage.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModelPackage.go
index 0d5b7ce..4ce0d7e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModelPackage.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModelPackage.go
@@ -70,6 +70,12 @@ type DescribeModelPackageOutput struct {
// This member is required.
ModelPackageStatusDetails *types.ModelPackageStatusDetails
+ // An array of additional Inference Specification objects. Each additional
+ // Inference Specification specifies artifacts based on this model package that can
+ // be used on inference endpoints. Generally used with SageMaker Neo to store the
+ // compiled artifacts.
+ AdditionalInferenceSpecifications []types.AdditionalInferenceSpecificationDefinition
+
// A description provided for the model approval.
ApprovalDescription *string
@@ -78,21 +84,32 @@ type DescribeModelPackageOutput struct {
CertifyForMarketplace bool
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *types.UserContext
// The metadata properties associated with the model package versions.
CustomerMetadataProperties map[string]string
+ // The machine learning domain of the model package you specified. Common machine
+ // learning domains include computer vision and natural language processing.
+ Domain *string
+
+ // Represents the drift check baselines that can be used when the model monitor is
+ // set using the model package. For more information, see the topic on Drift
+ // Detection against Previous Baselines in SageMaker Pipelines
+ // (https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection)
+ // in the Amazon SageMaker Developer Guide.
+ DriftCheckBaselines *types.DriftCheckBaselines
+
// Details about inference jobs that can be run with models based on this model
// package.
InferenceSpecification *types.InferenceSpecification
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *types.UserContext
- // The last time the model package was modified.
+ // The last time that the model package was modified.
LastModifiedTime *time.Time
// Metadata properties of the tracking entity, trial, or trial component.
@@ -114,9 +131,18 @@ type DescribeModelPackageOutput struct {
// The version of the model package.
ModelPackageVersion *int32
+ // The Amazon Simple Storage Service (Amazon S3) path where the sample payload are
+ // stored. This path points to a single gzip compressed tar archive (.tar.gz
+ // suffix).
+ SamplePayloadUrl *string
+
// Details about the algorithm that was used to create the model package.
SourceAlgorithmSpecification *types.SourceAlgorithmSpecification
+ // The machine learning task you specified that your model package accomplishes.
+ // Common machine learning tasks include object detection and image classification.
+ Task *string
+
// Configurations for one or more transform jobs that SageMaker runs to test the
// model package.
ValidationSpecification *types.ModelPackageValidationSpecification
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModelPackageGroup.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModelPackageGroup.go
index 1c57204..ac13993 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModelPackageGroup.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeModelPackageGroup.go
@@ -30,7 +30,7 @@ func (c *Client) DescribeModelPackageGroup(ctx context.Context, params *Describe
type DescribeModelPackageGroupInput struct {
- // The name of the model group to describe.
+ // The name of gthe model group to describe.
//
// This member is required.
ModelPackageGroupName *string
@@ -41,7 +41,7 @@ type DescribeModelPackageGroupInput struct {
type DescribeModelPackageGroupOutput struct {
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
//
// This member is required.
CreatedBy *types.UserContext
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeNotebookInstance.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeNotebookInstance.go
index 30b7281..5e5718c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeNotebookInstance.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeNotebookInstance.go
@@ -58,7 +58,7 @@ type DescribeNotebookInstanceOutput struct {
// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any
// other Git repository. These repositories are cloned at the same level as the
// default repository of your notebook instance. For more information, see
- // Associating Git Repositories with Amazon SageMaker Notebook Instances
+ // Associating Git Repositories with SageMaker Notebook Instances
// (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
AdditionalCodeRepositories []string
@@ -73,34 +73,36 @@ type DescribeNotebookInstanceOutput struct {
// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any
// other Git repository. When you open a notebook instance, it opens in the
// directory that contains this repository. For more information, see Associating
- // Git Repositories with Amazon SageMaker Notebook Instances
+ // Git Repositories with SageMaker Notebook Instances
// (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
DefaultCodeRepository *string
- // Describes whether Amazon SageMaker provides internet access to the notebook
- // instance. If this value is set to Disabled, the notebook instance does not have
- // internet access, and cannot connect to Amazon SageMaker training and endpoint
- // services. For more information, see Notebook Instances Are Internet-Enabled by
- // Default
+ // Describes whether SageMaker provides internet access to the notebook instance.
+ // If this value is set to Disabled, the notebook instance does not have internet
+ // access, and cannot connect to SageMaker training and endpoint services. For more
+ // information, see Notebook Instances Are Internet-Enabled by Default
// (https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access).
DirectInternetAccess types.DirectInternetAccess
// If status is Failed, the reason it failed.
FailureReason *string
+ // Information on the IMDS configuration of the notebook instance
+ InstanceMetadataServiceConfiguration *types.InstanceMetadataServiceConfiguration
+
// The type of ML compute instance running on the notebook instance.
InstanceType types.InstanceType
- // The Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data when
- // storing it on the ML storage volume attached to the instance.
+ // The Amazon Web Services KMS key ID SageMaker uses to encrypt data when storing
+ // it on the ML storage volume attached to the instance.
KmsKeyId *string
// A timestamp. Use this parameter to retrieve the time when the notebook instance
// was last modified.
LastModifiedTime *time.Time
- // The network interface IDs that Amazon SageMaker created at the time of creating
- // the instance.
+ // The network interface IDs that SageMaker created at the time of creating the
+ // instance.
NetworkInterfaceId *string
// The Amazon Resource Name (ARN) of the notebook instance.
@@ -112,7 +114,7 @@ type DescribeNotebookInstanceOutput struct {
// (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html)
NotebookInstanceLifecycleConfigName *string
- // The name of the Amazon SageMaker notebook instance.
+ // The name of the SageMaker notebook instance.
NotebookInstanceName *string
// The status of the notebook instance.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribePipeline.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribePipeline.go
index fe26980..6a7ddc0 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribePipeline.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribePipeline.go
@@ -41,14 +41,14 @@ type DescribePipelineInput struct {
type DescribePipelineOutput struct {
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *types.UserContext
// The time when the pipeline was created.
CreationTime *time.Time
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *types.UserContext
// The time when the pipeline was last modified.
@@ -57,6 +57,9 @@ type DescribePipelineOutput struct {
// The time when the pipeline was last run.
LastRunTime *time.Time
+ // Lists the parallelism configuration applied to the pipeline.
+ ParallelismConfiguration *types.ParallelismConfiguration
+
// The Amazon Resource Name (ARN) of the pipeline.
PipelineArn *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribePipelineExecution.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribePipelineExecution.go
index d413a98..c5fec61 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribePipelineExecution.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribePipelineExecution.go
@@ -41,7 +41,7 @@ type DescribePipelineExecutionInput struct {
type DescribePipelineExecutionOutput struct {
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *types.UserContext
// The time when the pipeline execution was created.
@@ -51,12 +51,15 @@ type DescribePipelineExecutionOutput struct {
FailureReason *string
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *types.UserContext
// The time when the pipeline execution was modified last.
LastModifiedTime *time.Time
+ // The parallelism configuration applied to the pipeline.
+ ParallelismConfiguration *types.ParallelismConfiguration
+
// The Amazon Resource Name (ARN) of the pipeline.
PipelineArn *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeProject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeProject.go
index 6cf3ba7..f1f335f 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeProject.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeProject.go
@@ -73,11 +73,11 @@ type DescribeProjectOutput struct {
ServiceCatalogProvisioningDetails *types.ServiceCatalogProvisioningDetails
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *types.UserContext
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *types.UserContext
// The timestamp when project was last modified.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeTrainingJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeTrainingJob.go
index ce552a1..8818946 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeTrainingJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeTrainingJob.go
@@ -74,11 +74,11 @@ type DescribeTrainingJobOutput struct {
// Provides detailed information about the state of the training job. For detailed
// information on the secondary status of the training job, see StatusMessage under
- // SecondaryStatusTransition. Amazon SageMaker provides primary statuses and
- // secondary statuses that apply to each of them: InProgress
+ // SecondaryStatusTransition. SageMaker provides primary statuses and secondary
+ // statuses that apply to each of them: InProgress
//
- // * Starting - Starting
- // the training job.
+ // * Starting - Starting the
+ // training job.
//
// * Downloading - An optional stage for algorithms that support
// File training input mode. It indicates that data is being downloaded to the ML
@@ -135,11 +135,10 @@ type DescribeTrainingJobOutput struct {
// Specifies a limit to how long a model training job can run. It also specifies
// how long a managed Spot training job has to complete. When the job reaches the
- // time limit, Amazon SageMaker ends the training job. Use this API to cap model
- // training costs. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM
- // signal, which delays job termination for 120 seconds. Algorithms can use this
- // 120-second window to save the model artifacts, so the results of training are
- // not lost.
+ // time limit, SageMaker ends the training job. Use this API to cap model training
+ // costs. To stop a job, SageMaker sends the algorithm the SIGTERM signal, which
+ // delays job termination for 120 seconds. Algorithms can use this 120-second
+ // window to save the model artifacts, so the results of training are not lost.
//
// This member is required.
StoppingCondition *types.StoppingCondition
@@ -154,8 +153,8 @@ type DescribeTrainingJobOutput struct {
// This member is required.
TrainingJobName *string
- // The status of the training job. Amazon SageMaker provides the following training
- // job statuses:
+ // The status of the training job. SageMaker provides the following training job
+ // statuses:
//
// * InProgress - The training is in progress.
//
@@ -182,12 +181,12 @@ type DescribeTrainingJobOutput struct {
// The billable time in seconds. Billable time refers to the absolute wall-clock
// time. Multiply BillableTimeInSeconds by the number of instances (InstanceCount)
- // in your training cluster to get the total compute time SageMaker will bill you
- // if you run distributed training. The formula is as follows:
- // BillableTimeInSeconds * InstanceCount . You can calculate the savings from using
- // managed spot training using the formula (1 - BillableTimeInSeconds /
- // TrainingTimeInSeconds) * 100. For example, if BillableTimeInSeconds is 100 and
- // TrainingTimeInSeconds is 500, the savings is 80%.
+ // in your training cluster to get the total compute time SageMaker bills you if
+ // you run distributed training. The formula is as follows: BillableTimeInSeconds *
+ // InstanceCount . You can calculate the savings from using managed spot training
+ // using the formula (1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100. For
+ // example, if BillableTimeInSeconds is 100 and TrainingTimeInSeconds is 500, the
+ // savings is 80%.
BillableTimeInSeconds *int32
// Contains information about the output location for managed spot training
@@ -221,8 +220,8 @@ type DescribeTrainingJobOutput struct {
// If you want to allow inbound or outbound network calls, except for calls between
// peers within a training cluster for distributed training, choose True. If you
// enable network isolation for training jobs that are configured to use a VPC,
- // Amazon SageMaker downloads and uploads customer data and model artifacts through
- // the specified VPC, but the training container does not have network access.
+ // SageMaker downloads and uploads customer data and model artifacts through the
+ // specified VPC, but the training container does not have network access.
EnableNetworkIsolation bool
// The environment variables to set in the Docker container.
@@ -252,8 +251,8 @@ type DescribeTrainingJobOutput struct {
// An array of Channel objects that describes each data input channel.
InputDataConfig []types.Channel
- // The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling job
- // that created the transform or training job.
+ // The Amazon Resource Name (ARN) of the SageMaker Ground Truth labeling job that
+ // created the transform or training job.
LabelingJobArn *string
// A timestamp that indicates when the status of the training job was last
@@ -261,7 +260,7 @@ type DescribeTrainingJobOutput struct {
LastModifiedTime *time.Time
// The S3 path where model artifacts that you configured when creating the job are
- // stored. Amazon SageMaker creates subfolders for model artifacts.
+ // stored. SageMaker creates subfolders for model artifacts.
OutputDataConfig *types.OutputDataConfig
// Configuration information for Debugger system monitoring, framework profiling,
@@ -296,8 +295,8 @@ type DescribeTrainingJobOutput struct {
// Indicates the time when the training job ends on training instances. You are
// billed for the time interval between the value of TrainingStartTime and this
// time. For successful jobs and stopped jobs, this is the time after model
- // artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker
- // detects a job failure.
+ // artifacts are uploaded. For failed jobs, this is the time when SageMaker detects
+ // a job failure.
TrainingEndTime *time.Time
// Indicates the time when the training job starts on training instances. You are
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeTrialComponent.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeTrialComponent.go
index a3132c5..14f1243 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeTrialComponent.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_DescribeTrialComponent.go
@@ -62,6 +62,9 @@ type DescribeTrialComponentOutput struct {
// When the component was last modified.
LastModifiedTime *time.Time
+ // The Amazon Resource Name (ARN) of the lineage group.
+ LineageGroupArn *string
+
// Metadata properties of the tracking entity, trial, or trial component.
MetadataProperties *types.MetadataProperties
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_GetLineageGroupPolicy.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_GetLineageGroupPolicy.go
new file mode 100644
index 0000000..9b512f1
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_GetLineageGroupPolicy.go
@@ -0,0 +1,123 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package sagemaker
+
+import (
+ "context"
+ awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
+ "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+)
+
+// The resource policy for the lineage group.
+func (c *Client) GetLineageGroupPolicy(ctx context.Context, params *GetLineageGroupPolicyInput, optFns ...func(*Options)) (*GetLineageGroupPolicyOutput, error) {
+ if params == nil {
+ params = &GetLineageGroupPolicyInput{}
+ }
+
+ result, metadata, err := c.invokeOperation(ctx, "GetLineageGroupPolicy", params, optFns, c.addOperationGetLineageGroupPolicyMiddlewares)
+ if err != nil {
+ return nil, err
+ }
+
+ out := result.(*GetLineageGroupPolicyOutput)
+ out.ResultMetadata = metadata
+ return out, nil
+}
+
+type GetLineageGroupPolicyInput struct {
+
+ // The name or Amazon Resource Name (ARN) of the lineage group.
+ //
+ // This member is required.
+ LineageGroupName *string
+
+ noSmithyDocumentSerde
+}
+
+type GetLineageGroupPolicyOutput struct {
+
+ // The Amazon Resource Name (ARN) of the lineage group.
+ LineageGroupArn *string
+
+ // The resource policy that gives access to the lineage group in another account.
+ ResourcePolicy *string
+
+ // Metadata pertaining to the operation's result.
+ ResultMetadata middleware.Metadata
+
+ noSmithyDocumentSerde
+}
+
+func (c *Client) addOperationGetLineageGroupPolicyMiddlewares(stack *middleware.Stack, options Options) (err error) {
+ err = stack.Serialize.Add(&awsAwsjson11_serializeOpGetLineageGroupPolicy{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpGetLineageGroupPolicy{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ if err = addSetLoggerMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResolveEndpointMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
+ return err
+ }
+ if err = addRetryMiddlewares(stack, options); err != nil {
+ return err
+ }
+ if err = addHTTPSignerV4Middleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
+ return err
+ }
+ if err = addClientUserAgent(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addOpGetLineageGroupPolicyValidationMiddleware(stack); err != nil {
+ return err
+ }
+ if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetLineageGroupPolicy(options.Region), middleware.Before); err != nil {
+ return err
+ }
+ if err = addRequestIDRetrieverMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResponseErrorMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addRequestResponseLogging(stack, options); err != nil {
+ return err
+ }
+ return nil
+}
+
+func newServiceMetadataMiddleware_opGetLineageGroupPolicy(region string) *awsmiddleware.RegisterServiceMetadata {
+ return &awsmiddleware.RegisterServiceMetadata{
+ Region: region,
+ ServiceID: ServiceID,
+ SigningName: "sagemaker",
+ OperationName: "GetLineageGroupPolicy",
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListActions.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListActions.go
index b1598d1..96cb3cb 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListActions.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListActions.go
@@ -181,12 +181,13 @@ func NewListActionsPaginator(client ListActionsAPIClient, params *ListActionsInp
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListActionsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListActions page.
@@ -213,7 +214,10 @@ func (p *ListActionsPaginator) NextPage(ctx context.Context, optFns ...func(*Opt
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAlgorithms.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAlgorithms.go
index 2e62f0f..7596dbc 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAlgorithms.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAlgorithms.go
@@ -67,8 +67,8 @@ type ListAlgorithmsOutput struct {
// This member is required.
AlgorithmSummaryList []types.AlgorithmSummary
- // If the response is truncated, Amazon SageMaker returns this token. To retrieve
- // the next set of algorithms, use it in the subsequent request.
+ // If the response is truncated, SageMaker returns this token. To retrieve the next
+ // set of algorithms, use it in the subsequent request.
NextToken *string
// Metadata pertaining to the operation's result.
@@ -184,12 +184,13 @@ func NewListAlgorithmsPaginator(client ListAlgorithmsAPIClient, params *ListAlgo
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListAlgorithmsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListAlgorithms page.
@@ -216,7 +217,10 @@ func (p *ListAlgorithmsPaginator) NextPage(ctx context.Context, optFns ...func(*
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAppImageConfigs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAppImageConfigs.go
index 6fb0601..4eb9322 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAppImageConfigs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAppImageConfigs.go
@@ -194,12 +194,13 @@ func NewListAppImageConfigsPaginator(client ListAppImageConfigsAPIClient, params
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListAppImageConfigsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListAppImageConfigs page.
@@ -226,7 +227,10 @@ func (p *ListAppImageConfigsPaginator) NextPage(ctx context.Context, optFns ...f
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListApps.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListApps.go
index 7750ffa..3c3abae 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListApps.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListApps.go
@@ -173,12 +173,13 @@ func NewListAppsPaginator(client ListAppsAPIClient, params *ListAppsInput, optFn
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListAppsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListApps page.
@@ -205,7 +206,10 @@ func (p *ListAppsPaginator) NextPage(ctx context.Context, optFns ...func(*Option
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListArtifacts.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListArtifacts.go
index 6796775..b6f27c1 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListArtifacts.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListArtifacts.go
@@ -181,12 +181,13 @@ func NewListArtifactsPaginator(client ListArtifactsAPIClient, params *ListArtifa
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListArtifactsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListArtifacts page.
@@ -213,7 +214,10 @@ func (p *ListArtifactsPaginator) NextPage(ctx context.Context, optFns ...func(*O
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAssociations.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAssociations.go
index 6d47fda..cf2171b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAssociations.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAssociations.go
@@ -192,12 +192,13 @@ func NewListAssociationsPaginator(client ListAssociationsAPIClient, params *List
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListAssociationsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListAssociations page.
@@ -224,7 +225,10 @@ func (p *ListAssociationsPaginator) NextPage(ctx context.Context, optFns ...func
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAutoMLJobs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAutoMLJobs.go
index 2f601a8..97a7c54 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAutoMLJobs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListAutoMLJobs.go
@@ -189,12 +189,13 @@ func NewListAutoMLJobsPaginator(client ListAutoMLJobsAPIClient, params *ListAuto
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListAutoMLJobsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListAutoMLJobs page.
@@ -217,7 +218,10 @@ func (p *ListAutoMLJobsPaginator) NextPage(ctx context.Context, optFns ...func(*
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCandidatesForAutoMLJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCandidatesForAutoMLJob.go
index 0fd9481..a54d08e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCandidatesForAutoMLJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCandidatesForAutoMLJob.go
@@ -187,12 +187,13 @@ func NewListCandidatesForAutoMLJobPaginator(client ListCandidatesForAutoMLJobAPI
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListCandidatesForAutoMLJobPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListCandidatesForAutoMLJob page.
@@ -215,7 +216,10 @@ func (p *ListCandidatesForAutoMLJobPaginator) NextPage(ctx context.Context, optF
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCodeRepositories.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCodeRepositories.go
index a70871d..481aa83 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCodeRepositories.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCodeRepositories.go
@@ -208,12 +208,13 @@ func NewListCodeRepositoriesPaginator(client ListCodeRepositoriesAPIClient, para
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListCodeRepositoriesPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListCodeRepositories page.
@@ -240,7 +241,10 @@ func (p *ListCodeRepositoriesPaginator) NextPage(ctx context.Context, optFns ...
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCompilationJobs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCompilationJobs.go
index 0a8e375..29eb63a 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCompilationJobs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListCompilationJobs.go
@@ -201,12 +201,13 @@ func NewListCompilationJobsPaginator(client ListCompilationJobsAPIClient, params
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListCompilationJobsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListCompilationJobs page.
@@ -233,7 +234,10 @@ func (p *ListCompilationJobsPaginator) NextPage(ctx context.Context, optFns ...f
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListContexts.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListContexts.go
index e7ed47e..ab07baf 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListContexts.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListContexts.go
@@ -181,12 +181,13 @@ func NewListContextsPaginator(client ListContextsAPIClient, params *ListContexts
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListContextsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListContexts page.
@@ -213,7 +214,10 @@ func (p *ListContextsPaginator) NextPage(ctx context.Context, optFns ...func(*Op
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDataQualityJobDefinitions.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDataQualityJobDefinitions.go
index 92cba09..d4e6e6d 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDataQualityJobDefinitions.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDataQualityJobDefinitions.go
@@ -195,12 +195,13 @@ func NewListDataQualityJobDefinitionsPaginator(client ListDataQualityJobDefiniti
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListDataQualityJobDefinitionsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListDataQualityJobDefinitions page.
@@ -227,7 +228,10 @@ func (p *ListDataQualityJobDefinitionsPaginator) NextPage(ctx context.Context, o
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDeviceFleets.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDeviceFleets.go
index 6564e49..cda1af0 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDeviceFleets.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDeviceFleets.go
@@ -186,12 +186,13 @@ func NewListDeviceFleetsPaginator(client ListDeviceFleetsAPIClient, params *List
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListDeviceFleetsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListDeviceFleets page.
@@ -214,7 +215,10 @@ func (p *ListDeviceFleetsPaginator) NextPage(ctx context.Context, optFns ...func
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDevices.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDevices.go
index b1586a5..2b8d659 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDevices.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDevices.go
@@ -173,12 +173,13 @@ func NewListDevicesPaginator(client ListDevicesAPIClient, params *ListDevicesInp
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListDevicesPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListDevices page.
@@ -201,7 +202,10 @@ func (p *ListDevicesPaginator) NextPage(ctx context.Context, optFns ...func(*Opt
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDomains.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDomains.go
index b85fdbd..a26b344 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDomains.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListDomains.go
@@ -161,12 +161,13 @@ func NewListDomainsPaginator(client ListDomainsAPIClient, params *ListDomainsInp
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListDomainsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListDomains page.
@@ -193,7 +194,10 @@ func (p *ListDomainsPaginator) NextPage(ctx context.Context, optFns ...func(*Opt
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEdgePackagingJobs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEdgePackagingJobs.go
index 6bf8840..23b4b4e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEdgePackagingJobs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEdgePackagingJobs.go
@@ -192,12 +192,13 @@ func NewListEdgePackagingJobsPaginator(client ListEdgePackagingJobsAPIClient, pa
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListEdgePackagingJobsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListEdgePackagingJobs page.
@@ -220,7 +221,10 @@ func (p *ListEdgePackagingJobsPaginator) NextPage(ctx context.Context, optFns ..
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEndpointConfigs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEndpointConfigs.go
index 8222a07..dbd0a73 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEndpointConfigs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEndpointConfigs.go
@@ -67,8 +67,8 @@ type ListEndpointConfigsOutput struct {
// This member is required.
EndpointConfigs []types.EndpointConfigSummary
- // If the response is truncated, Amazon SageMaker returns this token. To retrieve
- // the next set of endpoint configurations, use it in the subsequent request
+ // If the response is truncated, SageMaker returns this token. To retrieve the next
+ // set of endpoint configurations, use it in the subsequent request
NextToken *string
// Metadata pertaining to the operation's result.
@@ -185,12 +185,13 @@ func NewListEndpointConfigsPaginator(client ListEndpointConfigsAPIClient, params
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListEndpointConfigsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListEndpointConfigs page.
@@ -217,7 +218,10 @@ func (p *ListEndpointConfigsPaginator) NextPage(ctx context.Context, optFns ...f
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEndpoints.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEndpoints.go
index b3b6552..9d3c51a 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEndpoints.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListEndpoints.go
@@ -79,8 +79,8 @@ type ListEndpointsOutput struct {
// This member is required.
Endpoints []types.EndpointSummary
- // If the response is truncated, Amazon SageMaker returns this token. To retrieve
- // the next set of training jobs, use it in the subsequent request.
+ // If the response is truncated, SageMaker returns this token. To retrieve the next
+ // set of training jobs, use it in the subsequent request.
NextToken *string
// Metadata pertaining to the operation's result.
@@ -196,12 +196,13 @@ func NewListEndpointsPaginator(client ListEndpointsAPIClient, params *ListEndpoi
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListEndpointsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListEndpoints page.
@@ -228,7 +229,10 @@ func (p *ListEndpointsPaginator) NextPage(ctx context.Context, optFns ...func(*O
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListExperiments.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListExperiments.go
index 05a8429..ef43ee9 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListExperiments.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListExperiments.go
@@ -178,12 +178,13 @@ func NewListExperimentsPaginator(client ListExperimentsAPIClient, params *ListEx
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListExperimentsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListExperiments page.
@@ -210,7 +211,10 @@ func (p *ListExperimentsPaginator) NextPage(ctx context.Context, optFns ...func(
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListFlowDefinitions.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListFlowDefinitions.go
index 9a6a3b2..63b2f70 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListFlowDefinitions.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListFlowDefinitions.go
@@ -180,12 +180,13 @@ func NewListFlowDefinitionsPaginator(client ListFlowDefinitionsAPIClient, params
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListFlowDefinitionsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListFlowDefinitions page.
@@ -212,7 +213,10 @@ func (p *ListFlowDefinitionsPaginator) NextPage(ctx context.Context, optFns ...f
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListHumanTaskUis.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListHumanTaskUis.go
index c735d8c..378d389 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListHumanTaskUis.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListHumanTaskUis.go
@@ -179,12 +179,13 @@ func NewListHumanTaskUisPaginator(client ListHumanTaskUisAPIClient, params *List
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListHumanTaskUisPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListHumanTaskUis page.
@@ -211,7 +212,10 @@ func (p *ListHumanTaskUisPaginator) NextPage(ctx context.Context, optFns ...func
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListHyperParameterTuningJobs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListHyperParameterTuningJobs.go
index b019bad..513bbbc 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListHyperParameterTuningJobs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListHyperParameterTuningJobs.go
@@ -201,12 +201,13 @@ func NewListHyperParameterTuningJobsPaginator(client ListHyperParameterTuningJob
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListHyperParameterTuningJobsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListHyperParameterTuningJobs page.
@@ -233,7 +234,10 @@ func (p *ListHyperParameterTuningJobsPaginator) NextPage(ctx context.Context, op
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListImageVersions.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListImageVersions.go
index f2fd076..8f55a65 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListImageVersions.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListImageVersions.go
@@ -191,12 +191,13 @@ func NewListImageVersionsPaginator(client ListImageVersionsAPIClient, params *Li
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListImageVersionsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListImageVersions page.
@@ -223,7 +224,10 @@ func (p *ListImageVersionsPaginator) NextPage(ctx context.Context, optFns ...fun
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListImages.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListImages.go
index 9237f61..d2830ff 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListImages.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListImages.go
@@ -184,12 +184,13 @@ func NewListImagesPaginator(client ListImagesAPIClient, params *ListImagesInput,
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListImagesPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListImages page.
@@ -216,7 +217,10 @@ func (p *ListImagesPaginator) NextPage(ctx context.Context, optFns ...func(*Opti
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListInferenceRecommendationsJobs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListInferenceRecommendationsJobs.go
new file mode 100644
index 0000000..b00f8d0
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListInferenceRecommendationsJobs.go
@@ -0,0 +1,249 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package sagemaker
+
+import (
+ "context"
+ "fmt"
+ awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
+ "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/aws-sdk-go-v2/service/sagemaker/types"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+ "time"
+)
+
+// Lists recommendation jobs that satisfy various filters.
+func (c *Client) ListInferenceRecommendationsJobs(ctx context.Context, params *ListInferenceRecommendationsJobsInput, optFns ...func(*Options)) (*ListInferenceRecommendationsJobsOutput, error) {
+ if params == nil {
+ params = &ListInferenceRecommendationsJobsInput{}
+ }
+
+ result, metadata, err := c.invokeOperation(ctx, "ListInferenceRecommendationsJobs", params, optFns, c.addOperationListInferenceRecommendationsJobsMiddlewares)
+ if err != nil {
+ return nil, err
+ }
+
+ out := result.(*ListInferenceRecommendationsJobsOutput)
+ out.ResultMetadata = metadata
+ return out, nil
+}
+
+type ListInferenceRecommendationsJobsInput struct {
+
+ // A filter that returns only jobs created after the specified time (timestamp).
+ CreationTimeAfter *time.Time
+
+ // A filter that returns only jobs created before the specified time (timestamp).
+ CreationTimeBefore *time.Time
+
+ // A filter that returns only jobs that were last modified after the specified time
+ // (timestamp).
+ LastModifiedTimeAfter *time.Time
+
+ // A filter that returns only jobs that were last modified before the specified
+ // time (timestamp).
+ LastModifiedTimeBefore *time.Time
+
+ // The maximum number of recommendations to return in the response.
+ MaxResults *int32
+
+ // A string in the job name. This filter returns only recommendations whose name
+ // contains the specified string.
+ NameContains *string
+
+ // If the response to a previous ListInferenceRecommendationsJobsRequest request
+ // was truncated, the response includes a NextToken. To retrieve the next set of
+ // recommendations, use the token in the next request.
+ NextToken *string
+
+ // The parameter by which to sort the results.
+ SortBy types.ListInferenceRecommendationsJobsSortBy
+
+ // The sort order for the results.
+ SortOrder types.SortOrder
+
+ // A filter that retrieves only inference recommendations jobs with a specific
+ // status.
+ StatusEquals types.RecommendationJobStatus
+
+ noSmithyDocumentSerde
+}
+
+type ListInferenceRecommendationsJobsOutput struct {
+
+ // The recommendations created from the Amazon SageMaker Inference Recommender job.
+ //
+ // This member is required.
+ InferenceRecommendationsJobs []types.InferenceRecommendationsJob
+
+ // A token for getting the next set of recommendations, if there are any.
+ NextToken *string
+
+ // Metadata pertaining to the operation's result.
+ ResultMetadata middleware.Metadata
+
+ noSmithyDocumentSerde
+}
+
+func (c *Client) addOperationListInferenceRecommendationsJobsMiddlewares(stack *middleware.Stack, options Options) (err error) {
+ err = stack.Serialize.Add(&awsAwsjson11_serializeOpListInferenceRecommendationsJobs{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListInferenceRecommendationsJobs{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ if err = addSetLoggerMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResolveEndpointMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
+ return err
+ }
+ if err = addRetryMiddlewares(stack, options); err != nil {
+ return err
+ }
+ if err = addHTTPSignerV4Middleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
+ return err
+ }
+ if err = addClientUserAgent(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListInferenceRecommendationsJobs(options.Region), middleware.Before); err != nil {
+ return err
+ }
+ if err = addRequestIDRetrieverMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResponseErrorMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addRequestResponseLogging(stack, options); err != nil {
+ return err
+ }
+ return nil
+}
+
+// ListInferenceRecommendationsJobsAPIClient is a client that implements the
+// ListInferenceRecommendationsJobs operation.
+type ListInferenceRecommendationsJobsAPIClient interface {
+ ListInferenceRecommendationsJobs(context.Context, *ListInferenceRecommendationsJobsInput, ...func(*Options)) (*ListInferenceRecommendationsJobsOutput, error)
+}
+
+var _ ListInferenceRecommendationsJobsAPIClient = (*Client)(nil)
+
+// ListInferenceRecommendationsJobsPaginatorOptions is the paginator options for
+// ListInferenceRecommendationsJobs
+type ListInferenceRecommendationsJobsPaginatorOptions struct {
+ // The maximum number of recommendations to return in the response.
+ Limit int32
+
+ // Set to true if pagination should stop if the service returns a pagination token
+ // that matches the most recent token provided to the service.
+ StopOnDuplicateToken bool
+}
+
+// ListInferenceRecommendationsJobsPaginator is a paginator for
+// ListInferenceRecommendationsJobs
+type ListInferenceRecommendationsJobsPaginator struct {
+ options ListInferenceRecommendationsJobsPaginatorOptions
+ client ListInferenceRecommendationsJobsAPIClient
+ params *ListInferenceRecommendationsJobsInput
+ nextToken *string
+ firstPage bool
+}
+
+// NewListInferenceRecommendationsJobsPaginator returns a new
+// ListInferenceRecommendationsJobsPaginator
+func NewListInferenceRecommendationsJobsPaginator(client ListInferenceRecommendationsJobsAPIClient, params *ListInferenceRecommendationsJobsInput, optFns ...func(*ListInferenceRecommendationsJobsPaginatorOptions)) *ListInferenceRecommendationsJobsPaginator {
+ if params == nil {
+ params = &ListInferenceRecommendationsJobsInput{}
+ }
+
+ options := ListInferenceRecommendationsJobsPaginatorOptions{}
+ if params.MaxResults != nil {
+ options.Limit = *params.MaxResults
+ }
+
+ for _, fn := range optFns {
+ fn(&options)
+ }
+
+ return &ListInferenceRecommendationsJobsPaginator{
+ options: options,
+ client: client,
+ params: params,
+ firstPage: true,
+ nextToken: params.NextToken,
+ }
+}
+
+// HasMorePages returns a boolean indicating whether more pages are available
+func (p *ListInferenceRecommendationsJobsPaginator) HasMorePages() bool {
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
+}
+
+// NextPage retrieves the next ListInferenceRecommendationsJobs page.
+func (p *ListInferenceRecommendationsJobsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListInferenceRecommendationsJobsOutput, error) {
+ if !p.HasMorePages() {
+ return nil, fmt.Errorf("no more pages available")
+ }
+
+ params := *p.params
+ params.NextToken = p.nextToken
+
+ var limit *int32
+ if p.options.Limit > 0 {
+ limit = &p.options.Limit
+ }
+ params.MaxResults = limit
+
+ result, err := p.client.ListInferenceRecommendationsJobs(ctx, ¶ms, optFns...)
+ if err != nil {
+ return nil, err
+ }
+ p.firstPage = false
+
+ prevToken := p.nextToken
+ p.nextToken = result.NextToken
+
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
+ p.nextToken = nil
+ }
+
+ return result, nil
+}
+
+func newServiceMetadataMiddleware_opListInferenceRecommendationsJobs(region string) *awsmiddleware.RegisterServiceMetadata {
+ return &awsmiddleware.RegisterServiceMetadata{
+ Region: region,
+ ServiceID: ServiceID,
+ SigningName: "sagemaker",
+ OperationName: "ListInferenceRecommendationsJobs",
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListLabelingJobs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListLabelingJobs.go
index 4dff8b6..318ec20 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListLabelingJobs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListLabelingJobs.go
@@ -76,8 +76,8 @@ type ListLabelingJobsOutput struct {
// An array of LabelingJobSummary objects, each describing a labeling job.
LabelingJobSummaryList []types.LabelingJobSummary
- // If the response is truncated, Amazon SageMaker returns this token. To retrieve
- // the next set of labeling jobs, use it in the subsequent request.
+ // If the response is truncated, SageMaker returns this token. To retrieve the next
+ // set of labeling jobs, use it in the subsequent request.
NextToken *string
// Metadata pertaining to the operation's result.
@@ -193,12 +193,13 @@ func NewListLabelingJobsPaginator(client ListLabelingJobsAPIClient, params *List
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListLabelingJobsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListLabelingJobs page.
@@ -225,7 +226,10 @@ func (p *ListLabelingJobsPaginator) NextPage(ctx context.Context, optFns ...func
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListLabelingJobsForWorkteam.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListLabelingJobsForWorkteam.go
index 4b2edc9..c8e2b2a 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListLabelingJobsForWorkteam.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListLabelingJobsForWorkteam.go
@@ -73,8 +73,8 @@ type ListLabelingJobsForWorkteamOutput struct {
// This member is required.
LabelingJobSummaryList []types.LabelingJobForWorkteamSummary
- // If the response is truncated, Amazon SageMaker returns this token. To retrieve
- // the next set of labeling jobs, use it in the subsequent request.
+ // If the response is truncated, SageMaker returns this token. To retrieve the next
+ // set of labeling jobs, use it in the subsequent request.
NextToken *string
// Metadata pertaining to the operation's result.
@@ -196,12 +196,13 @@ func NewListLabelingJobsForWorkteamPaginator(client ListLabelingJobsForWorkteamA
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListLabelingJobsForWorkteamPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListLabelingJobsForWorkteam page.
@@ -228,7 +229,10 @@ func (p *ListLabelingJobsForWorkteamPaginator) NextPage(ctx context.Context, opt
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListLineageGroups.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListLineageGroups.go
new file mode 100644
index 0000000..4cd1667
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListLineageGroups.go
@@ -0,0 +1,235 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package sagemaker
+
+import (
+ "context"
+ "fmt"
+ awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
+ "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/aws-sdk-go-v2/service/sagemaker/types"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+ "time"
+)
+
+// A list of lineage groups shared with your Amazon Web Services account. For more
+// information, see Cross-Account Lineage Tracking
+// (https://docs.aws.amazon.com/sagemaker/latest/dg/xaccount-lineage-tracking.html)
+// in the Amazon SageMaker Developer Guide.
+func (c *Client) ListLineageGroups(ctx context.Context, params *ListLineageGroupsInput, optFns ...func(*Options)) (*ListLineageGroupsOutput, error) {
+ if params == nil {
+ params = &ListLineageGroupsInput{}
+ }
+
+ result, metadata, err := c.invokeOperation(ctx, "ListLineageGroups", params, optFns, c.addOperationListLineageGroupsMiddlewares)
+ if err != nil {
+ return nil, err
+ }
+
+ out := result.(*ListLineageGroupsOutput)
+ out.ResultMetadata = metadata
+ return out, nil
+}
+
+type ListLineageGroupsInput struct {
+
+ // A timestamp to filter against lineage groups created after a certain point in
+ // time.
+ CreatedAfter *time.Time
+
+ // A timestamp to filter against lineage groups created before a certain point in
+ // time.
+ CreatedBefore *time.Time
+
+ // The maximum number of endpoints to return in the response. This value defaults
+ // to 10.
+ MaxResults *int32
+
+ // If the response is truncated, SageMaker returns this token. To retrieve the next
+ // set of algorithms, use it in the subsequent request.
+ NextToken *string
+
+ // The parameter by which to sort the results. The default is CreationTime.
+ SortBy types.SortLineageGroupsBy
+
+ // The sort order for the results. The default is Ascending.
+ SortOrder types.SortOrder
+
+ noSmithyDocumentSerde
+}
+
+type ListLineageGroupsOutput struct {
+
+ // A list of lineage groups and their properties.
+ LineageGroupSummaries []types.LineageGroupSummary
+
+ // If the response is truncated, SageMaker returns this token. To retrieve the next
+ // set of algorithms, use it in the subsequent request.
+ NextToken *string
+
+ // Metadata pertaining to the operation's result.
+ ResultMetadata middleware.Metadata
+
+ noSmithyDocumentSerde
+}
+
+func (c *Client) addOperationListLineageGroupsMiddlewares(stack *middleware.Stack, options Options) (err error) {
+ err = stack.Serialize.Add(&awsAwsjson11_serializeOpListLineageGroups{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListLineageGroups{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ if err = addSetLoggerMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResolveEndpointMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
+ return err
+ }
+ if err = addRetryMiddlewares(stack, options); err != nil {
+ return err
+ }
+ if err = addHTTPSignerV4Middleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
+ return err
+ }
+ if err = addClientUserAgent(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListLineageGroups(options.Region), middleware.Before); err != nil {
+ return err
+ }
+ if err = addRequestIDRetrieverMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResponseErrorMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addRequestResponseLogging(stack, options); err != nil {
+ return err
+ }
+ return nil
+}
+
+// ListLineageGroupsAPIClient is a client that implements the ListLineageGroups
+// operation.
+type ListLineageGroupsAPIClient interface {
+ ListLineageGroups(context.Context, *ListLineageGroupsInput, ...func(*Options)) (*ListLineageGroupsOutput, error)
+}
+
+var _ ListLineageGroupsAPIClient = (*Client)(nil)
+
+// ListLineageGroupsPaginatorOptions is the paginator options for ListLineageGroups
+type ListLineageGroupsPaginatorOptions struct {
+ // The maximum number of endpoints to return in the response. This value defaults
+ // to 10.
+ Limit int32
+
+ // Set to true if pagination should stop if the service returns a pagination token
+ // that matches the most recent token provided to the service.
+ StopOnDuplicateToken bool
+}
+
+// ListLineageGroupsPaginator is a paginator for ListLineageGroups
+type ListLineageGroupsPaginator struct {
+ options ListLineageGroupsPaginatorOptions
+ client ListLineageGroupsAPIClient
+ params *ListLineageGroupsInput
+ nextToken *string
+ firstPage bool
+}
+
+// NewListLineageGroupsPaginator returns a new ListLineageGroupsPaginator
+func NewListLineageGroupsPaginator(client ListLineageGroupsAPIClient, params *ListLineageGroupsInput, optFns ...func(*ListLineageGroupsPaginatorOptions)) *ListLineageGroupsPaginator {
+ if params == nil {
+ params = &ListLineageGroupsInput{}
+ }
+
+ options := ListLineageGroupsPaginatorOptions{}
+ if params.MaxResults != nil {
+ options.Limit = *params.MaxResults
+ }
+
+ for _, fn := range optFns {
+ fn(&options)
+ }
+
+ return &ListLineageGroupsPaginator{
+ options: options,
+ client: client,
+ params: params,
+ firstPage: true,
+ nextToken: params.NextToken,
+ }
+}
+
+// HasMorePages returns a boolean indicating whether more pages are available
+func (p *ListLineageGroupsPaginator) HasMorePages() bool {
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
+}
+
+// NextPage retrieves the next ListLineageGroups page.
+func (p *ListLineageGroupsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListLineageGroupsOutput, error) {
+ if !p.HasMorePages() {
+ return nil, fmt.Errorf("no more pages available")
+ }
+
+ params := *p.params
+ params.NextToken = p.nextToken
+
+ var limit *int32
+ if p.options.Limit > 0 {
+ limit = &p.options.Limit
+ }
+ params.MaxResults = limit
+
+ result, err := p.client.ListLineageGroups(ctx, ¶ms, optFns...)
+ if err != nil {
+ return nil, err
+ }
+ p.firstPage = false
+
+ prevToken := p.nextToken
+ p.nextToken = result.NextToken
+
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
+ p.nextToken = nil
+ }
+
+ return result, nil
+}
+
+func newServiceMetadataMiddleware_opListLineageGroups(region string) *awsmiddleware.RegisterServiceMetadata {
+ return &awsmiddleware.RegisterServiceMetadata{
+ Region: region,
+ ServiceID: ServiceID,
+ SigningName: "sagemaker",
+ OperationName: "ListLineageGroups",
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelBiasJobDefinitions.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelBiasJobDefinitions.go
index 4ce3afd..8877a11 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelBiasJobDefinitions.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelBiasJobDefinitions.go
@@ -190,12 +190,13 @@ func NewListModelBiasJobDefinitionsPaginator(client ListModelBiasJobDefinitionsA
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListModelBiasJobDefinitionsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListModelBiasJobDefinitions page.
@@ -222,7 +223,10 @@ func (p *ListModelBiasJobDefinitionsPaginator) NextPage(ctx context.Context, opt
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelExplainabilityJobDefinitions.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelExplainabilityJobDefinitions.go
index 4033486..40221af 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelExplainabilityJobDefinitions.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelExplainabilityJobDefinitions.go
@@ -190,12 +190,13 @@ func NewListModelExplainabilityJobDefinitionsPaginator(client ListModelExplainab
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListModelExplainabilityJobDefinitionsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListModelExplainabilityJobDefinitions page.
@@ -222,7 +223,10 @@ func (p *ListModelExplainabilityJobDefinitionsPaginator) NextPage(ctx context.Co
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelMetadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelMetadata.go
new file mode 100644
index 0000000..ffcb158
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelMetadata.go
@@ -0,0 +1,227 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package sagemaker
+
+import (
+ "context"
+ "fmt"
+ awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
+ "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/aws-sdk-go-v2/service/sagemaker/types"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+)
+
+// Lists the domain, framework, task, and model name of standard machine learning
+// models found in common model zoos.
+func (c *Client) ListModelMetadata(ctx context.Context, params *ListModelMetadataInput, optFns ...func(*Options)) (*ListModelMetadataOutput, error) {
+ if params == nil {
+ params = &ListModelMetadataInput{}
+ }
+
+ result, metadata, err := c.invokeOperation(ctx, "ListModelMetadata", params, optFns, c.addOperationListModelMetadataMiddlewares)
+ if err != nil {
+ return nil, err
+ }
+
+ out := result.(*ListModelMetadataOutput)
+ out.ResultMetadata = metadata
+ return out, nil
+}
+
+type ListModelMetadataInput struct {
+
+ // The maximum number of models to return in the response.
+ MaxResults *int32
+
+ // If the response to a previous ListModelMetadataResponse request was truncated,
+ // the response includes a NextToken. To retrieve the next set of model metadata,
+ // use the token in the next request.
+ NextToken *string
+
+ // One or more filters that searches for the specified resource or resources in a
+ // search. All resource objects that satisfy the expression's condition are
+ // included in the search results. Specify the Framework, FrameworkVersion, Domain
+ // or Task to filter supported. Filter names and values are case-sensitive.
+ SearchExpression *types.ModelMetadataSearchExpression
+
+ noSmithyDocumentSerde
+}
+
+type ListModelMetadataOutput struct {
+
+ // A structure that holds model metadata.
+ //
+ // This member is required.
+ ModelMetadataSummaries []types.ModelMetadataSummary
+
+ // A token for getting the next set of recommendations, if there are any.
+ NextToken *string
+
+ // Metadata pertaining to the operation's result.
+ ResultMetadata middleware.Metadata
+
+ noSmithyDocumentSerde
+}
+
+func (c *Client) addOperationListModelMetadataMiddlewares(stack *middleware.Stack, options Options) (err error) {
+ err = stack.Serialize.Add(&awsAwsjson11_serializeOpListModelMetadata{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListModelMetadata{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ if err = addSetLoggerMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResolveEndpointMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
+ return err
+ }
+ if err = addRetryMiddlewares(stack, options); err != nil {
+ return err
+ }
+ if err = addHTTPSignerV4Middleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
+ return err
+ }
+ if err = addClientUserAgent(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addOpListModelMetadataValidationMiddleware(stack); err != nil {
+ return err
+ }
+ if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListModelMetadata(options.Region), middleware.Before); err != nil {
+ return err
+ }
+ if err = addRequestIDRetrieverMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResponseErrorMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addRequestResponseLogging(stack, options); err != nil {
+ return err
+ }
+ return nil
+}
+
+// ListModelMetadataAPIClient is a client that implements the ListModelMetadata
+// operation.
+type ListModelMetadataAPIClient interface {
+ ListModelMetadata(context.Context, *ListModelMetadataInput, ...func(*Options)) (*ListModelMetadataOutput, error)
+}
+
+var _ ListModelMetadataAPIClient = (*Client)(nil)
+
+// ListModelMetadataPaginatorOptions is the paginator options for ListModelMetadata
+type ListModelMetadataPaginatorOptions struct {
+ // The maximum number of models to return in the response.
+ Limit int32
+
+ // Set to true if pagination should stop if the service returns a pagination token
+ // that matches the most recent token provided to the service.
+ StopOnDuplicateToken bool
+}
+
+// ListModelMetadataPaginator is a paginator for ListModelMetadata
+type ListModelMetadataPaginator struct {
+ options ListModelMetadataPaginatorOptions
+ client ListModelMetadataAPIClient
+ params *ListModelMetadataInput
+ nextToken *string
+ firstPage bool
+}
+
+// NewListModelMetadataPaginator returns a new ListModelMetadataPaginator
+func NewListModelMetadataPaginator(client ListModelMetadataAPIClient, params *ListModelMetadataInput, optFns ...func(*ListModelMetadataPaginatorOptions)) *ListModelMetadataPaginator {
+ if params == nil {
+ params = &ListModelMetadataInput{}
+ }
+
+ options := ListModelMetadataPaginatorOptions{}
+ if params.MaxResults != nil {
+ options.Limit = *params.MaxResults
+ }
+
+ for _, fn := range optFns {
+ fn(&options)
+ }
+
+ return &ListModelMetadataPaginator{
+ options: options,
+ client: client,
+ params: params,
+ firstPage: true,
+ nextToken: params.NextToken,
+ }
+}
+
+// HasMorePages returns a boolean indicating whether more pages are available
+func (p *ListModelMetadataPaginator) HasMorePages() bool {
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
+}
+
+// NextPage retrieves the next ListModelMetadata page.
+func (p *ListModelMetadataPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListModelMetadataOutput, error) {
+ if !p.HasMorePages() {
+ return nil, fmt.Errorf("no more pages available")
+ }
+
+ params := *p.params
+ params.NextToken = p.nextToken
+
+ var limit *int32
+ if p.options.Limit > 0 {
+ limit = &p.options.Limit
+ }
+ params.MaxResults = limit
+
+ result, err := p.client.ListModelMetadata(ctx, ¶ms, optFns...)
+ if err != nil {
+ return nil, err
+ }
+ p.firstPage = false
+
+ prevToken := p.nextToken
+ p.nextToken = result.NextToken
+
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
+ p.nextToken = nil
+ }
+
+ return result, nil
+}
+
+func newServiceMetadataMiddleware_opListModelMetadata(region string) *awsmiddleware.RegisterServiceMetadata {
+ return &awsmiddleware.RegisterServiceMetadata{
+ Region: region,
+ ServiceID: ServiceID,
+ SigningName: "sagemaker",
+ OperationName: "ListModelMetadata",
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelPackageGroups.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelPackageGroups.go
index bfcc6bb..93f52ef 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelPackageGroups.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelPackageGroups.go
@@ -183,12 +183,13 @@ func NewListModelPackageGroupsPaginator(client ListModelPackageGroupsAPIClient,
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListModelPackageGroupsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListModelPackageGroups page.
@@ -215,7 +216,10 @@ func (p *ListModelPackageGroupsPaginator) NextPage(ctx context.Context, optFns .
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelPackages.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelPackages.go
index 397f1d9..90f7412 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelPackages.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelPackages.go
@@ -50,16 +50,17 @@ type ListModelPackagesInput struct {
// group.
ModelPackageGroupName *string
- // A filter that returns onlyl the model packages of the specified type. This can
- // be one of the following values.
+ // A filter that returns only the model packages of the specified type. This can be
+ // one of the following values.
//
- // * VERSIONED - List only versioned models.
+ // * UNVERSIONED - List only unversioined models.
+ // This is the default value if no ModelPackageType is specified.
//
- // *
- // UNVERSIONED - List only unversioined models.
+ // * VERSIONED -
+ // List only versioned models.
//
- // * BOTH - List both versioned and
- // unversioned models.
+ // * BOTH - List both versioned and unversioned
+ // models.
ModelPackageType types.ModelPackageType
// A string in the model package name. This filter returns only model packages
@@ -87,8 +88,8 @@ type ListModelPackagesOutput struct {
// This member is required.
ModelPackageSummaryList []types.ModelPackageSummary
- // If the response is truncated, Amazon SageMaker returns this token. To retrieve
- // the next set of model packages, use it in the subsequent request.
+ // If the response is truncated, SageMaker returns this token. To retrieve the next
+ // set of model packages, use it in the subsequent request.
NextToken *string
// Metadata pertaining to the operation's result.
@@ -204,12 +205,13 @@ func NewListModelPackagesPaginator(client ListModelPackagesAPIClient, params *Li
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListModelPackagesPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListModelPackages page.
@@ -236,7 +238,10 @@ func (p *ListModelPackagesPaginator) NextPage(ctx context.Context, optFns ...fun
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelQualityJobDefinitions.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelQualityJobDefinitions.go
index b508c56..15ef27e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelQualityJobDefinitions.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModelQualityJobDefinitions.go
@@ -194,12 +194,13 @@ func NewListModelQualityJobDefinitionsPaginator(client ListModelQualityJobDefini
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListModelQualityJobDefinitionsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListModelQualityJobDefinitions page.
@@ -226,7 +227,10 @@ func (p *ListModelQualityJobDefinitionsPaginator) NextPage(ctx context.Context,
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModels.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModels.go
index 84be037..b5224c0 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModels.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListModels.go
@@ -66,8 +66,8 @@ type ListModelsOutput struct {
// This member is required.
Models []types.ModelSummary
- // If the response is truncated, Amazon SageMaker returns this token. To retrieve
- // the next set of models, use it in the subsequent request.
+ // If the response is truncated, SageMaker returns this token. To retrieve the next
+ // set of models, use it in the subsequent request.
NextToken *string
// Metadata pertaining to the operation's result.
@@ -182,12 +182,13 @@ func NewListModelsPaginator(client ListModelsAPIClient, params *ListModelsInput,
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListModelsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListModels page.
@@ -214,7 +215,10 @@ func (p *ListModelsPaginator) NextPage(ctx context.Context, optFns ...func(*Opti
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListMonitoringExecutions.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListMonitoringExecutions.go
index 2ed0b50..a3ce989 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListMonitoringExecutions.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListMonitoringExecutions.go
@@ -210,12 +210,13 @@ func NewListMonitoringExecutionsPaginator(client ListMonitoringExecutionsAPIClie
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListMonitoringExecutionsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListMonitoringExecutions page.
@@ -242,7 +243,10 @@ func (p *ListMonitoringExecutionsPaginator) NextPage(ctx context.Context, optFns
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListMonitoringSchedules.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListMonitoringSchedules.go
index c7134c4..820e0b3 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListMonitoringSchedules.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListMonitoringSchedules.go
@@ -206,12 +206,13 @@ func NewListMonitoringSchedulesPaginator(client ListMonitoringSchedulesAPIClient
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListMonitoringSchedulesPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListMonitoringSchedules page.
@@ -238,7 +239,10 @@ func (p *ListMonitoringSchedulesPaginator) NextPage(ctx context.Context, optFns
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListNotebookInstanceLifecycleConfigs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListNotebookInstanceLifecycleConfigs.go
index 236fd42..7887590 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListNotebookInstanceLifecycleConfigs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListNotebookInstanceLifecycleConfigs.go
@@ -71,8 +71,8 @@ type ListNotebookInstanceLifecycleConfigsInput struct {
type ListNotebookInstanceLifecycleConfigsOutput struct {
- // If the response is truncated, Amazon SageMaker returns this token. To get the
- // next set of lifecycle configurations, use it in the next request.
+ // If the response is truncated, SageMaker returns this token. To get the next set
+ // of lifecycle configurations, use it in the next request.
NextToken *string
// An array of NotebookInstanceLifecycleConfiguration objects, each listing a
@@ -195,12 +195,13 @@ func NewListNotebookInstanceLifecycleConfigsPaginator(client ListNotebookInstanc
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListNotebookInstanceLifecycleConfigsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListNotebookInstanceLifecycleConfigs page.
@@ -227,7 +228,10 @@ func (p *ListNotebookInstanceLifecycleConfigsPaginator) NextPage(ctx context.Con
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListNotebookInstances.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListNotebookInstances.go
index 84a1cde..b231559 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListNotebookInstances.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListNotebookInstances.go
@@ -13,8 +13,8 @@ import (
"time"
)
-// Returns a list of the Amazon SageMaker notebook instances in the requester's
-// account in an Amazon Web Services Region.
+// Returns a list of the SageMaker notebook instances in the requester's account in
+// an Amazon Web Services Region.
func (c *Client) ListNotebookInstances(ctx context.Context, params *ListNotebookInstancesInput, optFns ...func(*Options)) (*ListNotebookInstancesOutput, error) {
if params == nil {
params = &ListNotebookInstancesInput{}
@@ -93,8 +93,8 @@ type ListNotebookInstancesInput struct {
type ListNotebookInstancesOutput struct {
// If the response to the previous ListNotebookInstances request was truncated,
- // Amazon SageMaker returns this token. To retrieve the next set of notebook
- // instances, use the token in the next request.
+ // SageMaker returns this token. To retrieve the next set of notebook instances,
+ // use the token in the next request.
NextToken *string
// An array of NotebookInstanceSummary objects, one for each notebook instance.
@@ -214,12 +214,13 @@ func NewListNotebookInstancesPaginator(client ListNotebookInstancesAPIClient, pa
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListNotebookInstancesPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListNotebookInstances page.
@@ -246,7 +247,10 @@ func (p *ListNotebookInstancesPaginator) NextPage(ctx context.Context, optFns ..
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineExecutionSteps.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineExecutionSteps.go
index 4fca17c..299abbf 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineExecutionSteps.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineExecutionSteps.go
@@ -176,12 +176,13 @@ func NewListPipelineExecutionStepsPaginator(client ListPipelineExecutionStepsAPI
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListPipelineExecutionStepsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListPipelineExecutionSteps page.
@@ -208,7 +209,10 @@ func (p *ListPipelineExecutionStepsPaginator) NextPage(ctx context.Context, optF
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineExecutions.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineExecutions.go
index 53706a2..0c6b630 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineExecutions.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineExecutions.go
@@ -190,12 +190,13 @@ func NewListPipelineExecutionsPaginator(client ListPipelineExecutionsAPIClient,
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListPipelineExecutionsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListPipelineExecutions page.
@@ -222,7 +223,10 @@ func (p *ListPipelineExecutionsPaginator) NextPage(ctx context.Context, optFns .
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineParametersForExecution.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineParametersForExecution.go
index b752a7b..65ac490 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineParametersForExecution.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelineParametersForExecution.go
@@ -175,12 +175,13 @@ func NewListPipelineParametersForExecutionPaginator(client ListPipelineParameter
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListPipelineParametersForExecutionPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListPipelineParametersForExecution page.
@@ -207,7 +208,10 @@ func (p *ListPipelineParametersForExecutionPaginator) NextPage(ctx context.Conte
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelines.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelines.go
index c72e1c8..9dee4f4 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelines.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListPipelines.go
@@ -182,12 +182,13 @@ func NewListPipelinesPaginator(client ListPipelinesAPIClient, params *ListPipeli
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListPipelinesPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListPipelines page.
@@ -214,7 +215,10 @@ func (p *ListPipelinesPaginator) NextPage(ctx context.Context, optFns ...func(*O
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListProcessingJobs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListProcessingJobs.go
index a2b97df..9a70f79 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListProcessingJobs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListProcessingJobs.go
@@ -192,12 +192,13 @@ func NewListProcessingJobsPaginator(client ListProcessingJobsAPIClient, params *
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListProcessingJobsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListProcessingJobs page.
@@ -224,7 +225,10 @@ func (p *ListProcessingJobsPaginator) NextPage(ctx context.Context, optFns ...fu
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListProjects.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListProjects.go
index 14ddb9c..15a961e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListProjects.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListProjects.go
@@ -181,12 +181,13 @@ func NewListProjectsPaginator(client ListProjectsAPIClient, params *ListProjects
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListProjectsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListProjects page.
@@ -213,7 +214,10 @@ func (p *ListProjectsPaginator) NextPage(ctx context.Context, optFns ...func(*Op
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListStudioLifecycleConfigs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListStudioLifecycleConfigs.go
index e80ef5d..5cbf604 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListStudioLifecycleConfigs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListStudioLifecycleConfigs.go
@@ -198,12 +198,13 @@ func NewListStudioLifecycleConfigsPaginator(client ListStudioLifecycleConfigsAPI
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListStudioLifecycleConfigsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListStudioLifecycleConfigs page.
@@ -230,7 +231,10 @@ func (p *ListStudioLifecycleConfigsPaginator) NextPage(ctx context.Context, optF
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListSubscribedWorkteams.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListSubscribedWorkteams.go
index 9d22ec0..81f2152 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListSubscribedWorkteams.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListSubscribedWorkteams.go
@@ -173,12 +173,13 @@ func NewListSubscribedWorkteamsPaginator(client ListSubscribedWorkteamsAPIClient
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListSubscribedWorkteamsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListSubscribedWorkteams page.
@@ -205,7 +206,10 @@ func (p *ListSubscribedWorkteamsPaginator) NextPage(ctx context.Context, optFns
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTags.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTags.go
index 1d186be..c78e3ff 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTags.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTags.go
@@ -12,7 +12,7 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Returns the tags for the specified Amazon SageMaker resource.
+// Returns the tags for the specified SageMaker resource.
func (c *Client) ListTags(ctx context.Context, params *ListTagsInput, optFns ...func(*Options)) (*ListTagsOutput, error) {
if params == nil {
params = &ListTagsInput{}
@@ -38,9 +38,8 @@ type ListTagsInput struct {
// Maximum number of tags to return.
MaxResults *int32
- // If the response to the previous ListTags request is truncated, Amazon SageMaker
- // returns this token. To retrieve the next set of tags, use it in the subsequent
- // request.
+ // If the response to the previous ListTags request is truncated, SageMaker returns
+ // this token. To retrieve the next set of tags, use it in the subsequent request.
NextToken *string
noSmithyDocumentSerde
@@ -48,8 +47,8 @@ type ListTagsInput struct {
type ListTagsOutput struct {
- // If response is truncated, Amazon SageMaker includes a token in the response. You
- // can use this token in your subsequent request to fetch next set of tokens.
+ // If response is truncated, SageMaker includes a token in the response. You can
+ // use this token in your subsequent request to fetch next set of tokens.
NextToken *string
// An array of Tag objects, each with a tag key and a value.
@@ -170,12 +169,13 @@ func NewListTagsPaginator(client ListTagsAPIClient, params *ListTagsInput, optFn
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListTagsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListTags page.
@@ -202,7 +202,10 @@ func (p *ListTagsPaginator) NextPage(ctx context.Context, optFns ...func(*Option
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrainingJobs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrainingJobs.go
index ff6d517..bab4844 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrainingJobs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrainingJobs.go
@@ -87,8 +87,8 @@ type ListTrainingJobsOutput struct {
// This member is required.
TrainingJobSummaries []types.TrainingJobSummary
- // If the response is truncated, Amazon SageMaker returns this token. To retrieve
- // the next set of training jobs, use it in the subsequent request.
+ // If the response is truncated, SageMaker returns this token. To retrieve the next
+ // set of training jobs, use it in the subsequent request.
NextToken *string
// Metadata pertaining to the operation's result.
@@ -204,12 +204,13 @@ func NewListTrainingJobsPaginator(client ListTrainingJobsAPIClient, params *List
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListTrainingJobsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListTrainingJobs page.
@@ -236,7 +237,10 @@ func (p *ListTrainingJobsPaginator) NextPage(ctx context.Context, optFns ...func
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrainingJobsForHyperParameterTuningJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrainingJobsForHyperParameterTuningJob.go
index ab900c0..e79715d 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrainingJobsForHyperParameterTuningJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrainingJobsForHyperParameterTuningJob.go
@@ -190,12 +190,13 @@ func NewListTrainingJobsForHyperParameterTuningJobPaginator(client ListTrainingJ
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListTrainingJobsForHyperParameterTuningJobPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListTrainingJobsForHyperParameterTuningJob page.
@@ -222,7 +223,10 @@ func (p *ListTrainingJobsForHyperParameterTuningJobPaginator) NextPage(ctx conte
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTransformJobs.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTransformJobs.go
index 793941d..aab82de 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTransformJobs.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTransformJobs.go
@@ -193,12 +193,13 @@ func NewListTransformJobsPaginator(client ListTransformJobsAPIClient, params *Li
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListTransformJobsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListTransformJobs page.
@@ -225,7 +226,10 @@ func (p *ListTransformJobsPaginator) NextPage(ctx context.Context, optFns ...fun
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrialComponents.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrialComponents.go
index a118753..e155f12 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrialComponents.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrialComponents.go
@@ -199,12 +199,13 @@ func NewListTrialComponentsPaginator(client ListTrialComponentsAPIClient, params
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListTrialComponentsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListTrialComponents page.
@@ -231,7 +232,10 @@ func (p *ListTrialComponentsPaginator) NextPage(ctx context.Context, optFns ...f
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrials.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrials.go
index 22b3ac0..5a8a7a3 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrials.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListTrials.go
@@ -184,12 +184,13 @@ func NewListTrialsPaginator(client ListTrialsAPIClient, params *ListTrialsInput,
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListTrialsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListTrials page.
@@ -216,7 +217,10 @@ func (p *ListTrialsPaginator) NextPage(ctx context.Context, optFns ...func(*Opti
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListUserProfiles.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListUserProfiles.go
index f53052b..1bbf42e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListUserProfiles.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListUserProfiles.go
@@ -174,12 +174,13 @@ func NewListUserProfilesPaginator(client ListUserProfilesAPIClient, params *List
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListUserProfilesPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListUserProfiles page.
@@ -206,7 +207,10 @@ func (p *ListUserProfilesPaginator) NextPage(ctx context.Context, optFns ...func
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListWorkforces.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListWorkforces.go
index 7222cfa..b4bf6bd 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListWorkforces.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListWorkforces.go
@@ -173,12 +173,13 @@ func NewListWorkforcesPaginator(client ListWorkforcesAPIClient, params *ListWork
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListWorkforcesPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListWorkforces page.
@@ -205,7 +206,10 @@ func (p *ListWorkforcesPaginator) NextPage(ctx context.Context, optFns ...func(*
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListWorkteams.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListWorkteams.go
index 2ab64ce..1974506 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListWorkteams.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_ListWorkteams.go
@@ -176,12 +176,13 @@ func NewListWorkteamsPaginator(client ListWorkteamsAPIClient, params *ListWorkte
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListWorkteamsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListWorkteams page.
@@ -208,7 +209,10 @@ func (p *ListWorkteamsPaginator) NextPage(ctx context.Context, optFns ...func(*O
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_QueryLineage.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_QueryLineage.go
new file mode 100644
index 0000000..a95e4ac
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_QueryLineage.go
@@ -0,0 +1,265 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package sagemaker
+
+import (
+ "context"
+ "fmt"
+ awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
+ "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/aws-sdk-go-v2/service/sagemaker/types"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+)
+
+// Use this action to inspect your lineage and discover relationships between
+// entities. For more information, see Querying Lineage Entities
+// (https://docs.aws.amazon.com/sagemaker/latest/dg/querying-lineage-entities.html)
+// in the Amazon SageMaker Developer Guide.
+func (c *Client) QueryLineage(ctx context.Context, params *QueryLineageInput, optFns ...func(*Options)) (*QueryLineageOutput, error) {
+ if params == nil {
+ params = &QueryLineageInput{}
+ }
+
+ result, metadata, err := c.invokeOperation(ctx, "QueryLineage", params, optFns, c.addOperationQueryLineageMiddlewares)
+ if err != nil {
+ return nil, err
+ }
+
+ out := result.(*QueryLineageOutput)
+ out.ResultMetadata = metadata
+ return out, nil
+}
+
+type QueryLineageInput struct {
+
+ // A list of resource Amazon Resource Name (ARN) that represent the starting point
+ // for your lineage query.
+ //
+ // This member is required.
+ StartArns []string
+
+ // Associations between lineage entities have a direction. This parameter
+ // determines the direction from the StartArn(s) that the query traverses.
+ Direction types.Direction
+
+ // A set of filtering parameters that allow you to specify which entities should be
+ // returned.
+ //
+ // * Properties - Key-value pairs to match on the lineage entities'
+ // properties.
+ //
+ // * LineageTypes - A set of lineage entity types to match on. For
+ // example: TrialComponent, Artifact, or Context.
+ //
+ // * CreatedBefore - Filter
+ // entities created before this date.
+ //
+ // * ModifiedBefore - Filter entities modified
+ // before this date.
+ //
+ // * ModifiedAfter - Filter entities modified after this date.
+ Filters *types.QueryFilters
+
+ // Setting this value to True retrieves not only the entities of interest but also
+ // the Associations
+ // (https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking-entities.html)
+ // and lineage entities on the path. Set to False to only return lineage entities
+ // that match your query.
+ IncludeEdges bool
+
+ // The maximum depth in lineage relationships from the StartArns that are
+ // traversed. Depth is a measure of the number of Associations from the StartArn
+ // entity to the matched results.
+ MaxDepth *int32
+
+ // Limits the number of vertices in the results. Use the NextToken in a response to
+ // to retrieve the next page of results.
+ MaxResults *int32
+
+ // Limits the number of vertices in the request. Use the NextToken in a response to
+ // to retrieve the next page of results.
+ NextToken *string
+
+ noSmithyDocumentSerde
+}
+
+type QueryLineageOutput struct {
+
+ // A list of edges that connect vertices in the response.
+ Edges []types.Edge
+
+ // Limits the number of vertices in the response. Use the NextToken in a response
+ // to to retrieve the next page of results.
+ NextToken *string
+
+ // A list of vertices connected to the start entity(ies) in the lineage graph.
+ Vertices []types.Vertex
+
+ // Metadata pertaining to the operation's result.
+ ResultMetadata middleware.Metadata
+
+ noSmithyDocumentSerde
+}
+
+func (c *Client) addOperationQueryLineageMiddlewares(stack *middleware.Stack, options Options) (err error) {
+ err = stack.Serialize.Add(&awsAwsjson11_serializeOpQueryLineage{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpQueryLineage{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ if err = addSetLoggerMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResolveEndpointMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
+ return err
+ }
+ if err = addRetryMiddlewares(stack, options); err != nil {
+ return err
+ }
+ if err = addHTTPSignerV4Middleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
+ return err
+ }
+ if err = addClientUserAgent(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addOpQueryLineageValidationMiddleware(stack); err != nil {
+ return err
+ }
+ if err = stack.Initialize.Add(newServiceMetadataMiddleware_opQueryLineage(options.Region), middleware.Before); err != nil {
+ return err
+ }
+ if err = addRequestIDRetrieverMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResponseErrorMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addRequestResponseLogging(stack, options); err != nil {
+ return err
+ }
+ return nil
+}
+
+// QueryLineageAPIClient is a client that implements the QueryLineage operation.
+type QueryLineageAPIClient interface {
+ QueryLineage(context.Context, *QueryLineageInput, ...func(*Options)) (*QueryLineageOutput, error)
+}
+
+var _ QueryLineageAPIClient = (*Client)(nil)
+
+// QueryLineagePaginatorOptions is the paginator options for QueryLineage
+type QueryLineagePaginatorOptions struct {
+ // Limits the number of vertices in the results. Use the NextToken in a response to
+ // to retrieve the next page of results.
+ Limit int32
+
+ // Set to true if pagination should stop if the service returns a pagination token
+ // that matches the most recent token provided to the service.
+ StopOnDuplicateToken bool
+}
+
+// QueryLineagePaginator is a paginator for QueryLineage
+type QueryLineagePaginator struct {
+ options QueryLineagePaginatorOptions
+ client QueryLineageAPIClient
+ params *QueryLineageInput
+ nextToken *string
+ firstPage bool
+}
+
+// NewQueryLineagePaginator returns a new QueryLineagePaginator
+func NewQueryLineagePaginator(client QueryLineageAPIClient, params *QueryLineageInput, optFns ...func(*QueryLineagePaginatorOptions)) *QueryLineagePaginator {
+ if params == nil {
+ params = &QueryLineageInput{}
+ }
+
+ options := QueryLineagePaginatorOptions{}
+ if params.MaxResults != nil {
+ options.Limit = *params.MaxResults
+ }
+
+ for _, fn := range optFns {
+ fn(&options)
+ }
+
+ return &QueryLineagePaginator{
+ options: options,
+ client: client,
+ params: params,
+ firstPage: true,
+ nextToken: params.NextToken,
+ }
+}
+
+// HasMorePages returns a boolean indicating whether more pages are available
+func (p *QueryLineagePaginator) HasMorePages() bool {
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
+}
+
+// NextPage retrieves the next QueryLineage page.
+func (p *QueryLineagePaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*QueryLineageOutput, error) {
+ if !p.HasMorePages() {
+ return nil, fmt.Errorf("no more pages available")
+ }
+
+ params := *p.params
+ params.NextToken = p.nextToken
+
+ var limit *int32
+ if p.options.Limit > 0 {
+ limit = &p.options.Limit
+ }
+ params.MaxResults = limit
+
+ result, err := p.client.QueryLineage(ctx, ¶ms, optFns...)
+ if err != nil {
+ return nil, err
+ }
+ p.firstPage = false
+
+ prevToken := p.nextToken
+ p.nextToken = result.NextToken
+
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
+ p.nextToken = nil
+ }
+
+ return result, nil
+}
+
+func newServiceMetadataMiddleware_opQueryLineage(region string) *awsmiddleware.RegisterServiceMetadata {
+ return &awsmiddleware.RegisterServiceMetadata{
+ Region: region,
+ ServiceID: ServiceID,
+ SigningName: "sagemaker",
+ OperationName: "QueryLineage",
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_RetryPipelineExecution.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_RetryPipelineExecution.go
index 9c53020..2697c8e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_RetryPipelineExecution.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_RetryPipelineExecution.go
@@ -7,6 +7,7 @@ import (
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/aws-sdk-go-v2/service/sagemaker/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
@@ -40,6 +41,10 @@ type RetryPipelineExecutionInput struct {
// This member is required.
PipelineExecutionArn *string
+ // This configuration, if specified, overrides the parallelism configuration of the
+ // parent pipeline.
+ ParallelismConfiguration *types.ParallelismConfiguration
+
noSmithyDocumentSerde
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_Search.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_Search.go
index 84afdbf..9344e69 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_Search.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_Search.go
@@ -189,12 +189,13 @@ func NewSearchPaginator(client SearchAPIClient, params *SearchInput, optFns ...f
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *SearchPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next Search page.
@@ -221,7 +222,10 @@ func (p *SearchPaginator) NextPage(ctx context.Context, optFns ...func(*Options)
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StartNotebookInstance.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StartNotebookInstance.go
index 2e39774..5261b21 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StartNotebookInstance.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StartNotebookInstance.go
@@ -11,7 +11,7 @@ import (
)
// Launches an ML compute instance with the latest version of the libraries and
-// attaches your ML storage volume. After configuring the notebook instance, Amazon
+// attaches your ML storage volume. After configuring the notebook instance,
// SageMaker sets the notebook instance status to InService. A notebook instance's
// status must be InService before you can connect to your Jupyter notebook.
func (c *Client) StartNotebookInstance(ctx context.Context, params *StartNotebookInstanceInput, optFns ...func(*Options)) (*StartNotebookInstanceOutput, error) {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StartPipelineExecution.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StartPipelineExecution.go
index f94ba00..24a5d18 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StartPipelineExecution.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StartPipelineExecution.go
@@ -41,6 +41,10 @@ type StartPipelineExecutionInput struct {
// This member is required.
PipelineName *string
+ // This configuration, if specified, overrides the parallelism configuration of the
+ // parent pipeline for this specific run.
+ ParallelismConfiguration *types.ParallelismConfiguration
+
// The description of the pipeline execution.
PipelineExecutionDescription *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopInferenceRecommendationsJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopInferenceRecommendationsJob.go
new file mode 100644
index 0000000..0981d39
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopInferenceRecommendationsJob.go
@@ -0,0 +1,116 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package sagemaker
+
+import (
+ "context"
+ awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
+ "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/smithy-go/middleware"
+ smithyhttp "github.com/aws/smithy-go/transport/http"
+)
+
+// Stops an Inference Recommender job.
+func (c *Client) StopInferenceRecommendationsJob(ctx context.Context, params *StopInferenceRecommendationsJobInput, optFns ...func(*Options)) (*StopInferenceRecommendationsJobOutput, error) {
+ if params == nil {
+ params = &StopInferenceRecommendationsJobInput{}
+ }
+
+ result, metadata, err := c.invokeOperation(ctx, "StopInferenceRecommendationsJob", params, optFns, c.addOperationStopInferenceRecommendationsJobMiddlewares)
+ if err != nil {
+ return nil, err
+ }
+
+ out := result.(*StopInferenceRecommendationsJobOutput)
+ out.ResultMetadata = metadata
+ return out, nil
+}
+
+type StopInferenceRecommendationsJobInput struct {
+
+ // The name of the job you want to stop.
+ //
+ // This member is required.
+ JobName *string
+
+ noSmithyDocumentSerde
+}
+
+type StopInferenceRecommendationsJobOutput struct {
+ // Metadata pertaining to the operation's result.
+ ResultMetadata middleware.Metadata
+
+ noSmithyDocumentSerde
+}
+
+func (c *Client) addOperationStopInferenceRecommendationsJobMiddlewares(stack *middleware.Stack, options Options) (err error) {
+ err = stack.Serialize.Add(&awsAwsjson11_serializeOpStopInferenceRecommendationsJob{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpStopInferenceRecommendationsJob{}, middleware.After)
+ if err != nil {
+ return err
+ }
+ if err = addSetLoggerMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResolveEndpointMiddleware(stack, options); err != nil {
+ return err
+ }
+ if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
+ return err
+ }
+ if err = addRetryMiddlewares(stack, options); err != nil {
+ return err
+ }
+ if err = addHTTPSignerV4Middleware(stack, options); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
+ return err
+ }
+ if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
+ return err
+ }
+ if err = addClientUserAgent(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addOpStopInferenceRecommendationsJobValidationMiddleware(stack); err != nil {
+ return err
+ }
+ if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStopInferenceRecommendationsJob(options.Region), middleware.Before); err != nil {
+ return err
+ }
+ if err = addRequestIDRetrieverMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addResponseErrorMiddleware(stack); err != nil {
+ return err
+ }
+ if err = addRequestResponseLogging(stack, options); err != nil {
+ return err
+ }
+ return nil
+}
+
+func newServiceMetadataMiddleware_opStopInferenceRecommendationsJob(region string) *awsmiddleware.RegisterServiceMetadata {
+ return &awsmiddleware.RegisterServiceMetadata{
+ Region: region,
+ ServiceID: ServiceID,
+ SigningName: "sagemaker",
+ OperationName: "StopInferenceRecommendationsJob",
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopNotebookInstance.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopNotebookInstance.go
index e7e0500..5ad40aa 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopNotebookInstance.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopNotebookInstance.go
@@ -10,14 +10,13 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Terminates the ML compute instance. Before terminating the instance, Amazon
-// SageMaker disconnects the ML storage volume from it. Amazon SageMaker preserves
-// the ML storage volume. Amazon SageMaker stops charging you for the ML compute
-// instance when you call StopNotebookInstance. To access data on the ML storage
-// volume for a notebook instance that has been terminated, call the
-// StartNotebookInstance API. StartNotebookInstance launches another ML compute
-// instance, configures it, and attaches the preserved ML storage volume so you can
-// continue your work.
+// Terminates the ML compute instance. Before terminating the instance, SageMaker
+// disconnects the ML storage volume from it. SageMaker preserves the ML storage
+// volume. SageMaker stops charging you for the ML compute instance when you call
+// StopNotebookInstance. To access data on the ML storage volume for a notebook
+// instance that has been terminated, call the StartNotebookInstance API.
+// StartNotebookInstance launches another ML compute instance, configures it, and
+// attaches the preserved ML storage volume so you can continue your work.
func (c *Client) StopNotebookInstance(ctx context.Context, params *StopNotebookInstanceInput, optFns ...func(*Options)) (*StopNotebookInstanceOutput, error) {
if params == nil {
params = &StopNotebookInstanceInput{}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopTrainingJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopTrainingJob.go
index f32ab28..cafe379 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopTrainingJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopTrainingJob.go
@@ -10,12 +10,12 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Stops a training job. To stop a job, Amazon SageMaker sends the algorithm the
-// SIGTERM signal, which delays job termination for 120 seconds. Algorithms might
-// use this 120-second window to save the model artifacts, so the results of the
-// training is not lost. When it receives a StopTrainingJob request, Amazon
-// SageMaker changes the status of the job to Stopping. After Amazon SageMaker
-// stops the job, it sets the status to Stopped.
+// Stops a training job. To stop a job, SageMaker sends the algorithm the SIGTERM
+// signal, which delays job termination for 120 seconds. Algorithms might use this
+// 120-second window to save the model artifacts, so the results of the training is
+// not lost. When it receives a StopTrainingJob request, SageMaker changes the
+// status of the job to Stopping. After SageMaker stops the job, it sets the status
+// to Stopped.
func (c *Client) StopTrainingJob(ctx context.Context, params *StopTrainingJobInput, optFns ...func(*Options)) (*StopTrainingJobOutput, error) {
if params == nil {
params = &StopTrainingJobInput{}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopTransformJob.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopTransformJob.go
index 5bf1a41..f07705e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopTransformJob.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_StopTransformJob.go
@@ -10,10 +10,11 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http"
)
-// Stops a transform job. When Amazon SageMaker receives a StopTransformJob
+// Stops a batch transform job. When Amazon SageMaker receives a StopTransformJob
// request, the status of the job changes to Stopping. After Amazon SageMaker stops
-// the job, the status is set to Stopped. When you stop a transform job before it
-// is completed, Amazon SageMaker doesn't store the job's output in Amazon S3.
+// the job, the status is set to Stopped. When you stop a batch transform job
+// before it is completed, Amazon SageMaker doesn't store the job's output in
+// Amazon S3.
func (c *Client) StopTransformJob(ctx context.Context, params *StopTransformJobInput, optFns ...func(*Options)) (*StopTransformJobOutput, error) {
if params == nil {
params = &StopTransformJobInput{}
@@ -31,7 +32,7 @@ func (c *Client) StopTransformJob(ctx context.Context, params *StopTransformJobI
type StopTransformJobInput struct {
- // The name of the transform job to stop.
+ // The name of the batch transform job to stop.
//
// This member is required.
TransformJobName *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateEndpoint.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateEndpoint.go
index f9d3bbb..85be019 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateEndpoint.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateEndpoint.go
@@ -13,11 +13,11 @@ import (
// Deploys the new EndpointConfig specified in the request, switches to using newly
// created endpoint, and then deletes resources provisioned for the endpoint using
-// the previous EndpointConfig (there is no availability loss). When Amazon
-// SageMaker receives the request, it sets the endpoint status to Updating. After
-// updating the endpoint, it sets the status to InService. To check the status of
-// an endpoint, use the DescribeEndpoint API. You must not delete an EndpointConfig
-// in use by an endpoint that is live or while the UpdateEndpoint or CreateEndpoint
+// the previous EndpointConfig (there is no availability loss). When SageMaker
+// receives the request, it sets the endpoint status to Updating. After updating
+// the endpoint, it sets the status to InService. To check the status of an
+// endpoint, use the DescribeEndpoint API. You must not delete an EndpointConfig in
+// use by an endpoint that is live or while the UpdateEndpoint or CreateEndpoint
// operations are being performed on the endpoint. To update an endpoint, you must
// create a new EndpointConfig. If you delete the EndpointConfig of an endpoint
// that is active or being created or updated you may lose visibility into the
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateEndpointWeightsAndCapacities.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateEndpointWeightsAndCapacities.go
index 1f38925..10e984c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateEndpointWeightsAndCapacities.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateEndpointWeightsAndCapacities.go
@@ -13,9 +13,9 @@ import (
// Updates variant weight of one or more variants associated with an existing
// endpoint, or capacity of one variant associated with an existing endpoint. When
-// it receives the request, Amazon SageMaker sets the endpoint status to Updating.
-// After updating the endpoint, it sets the status to InService. To check the
-// status of an endpoint, use the DescribeEndpoint API.
+// it receives the request, SageMaker sets the endpoint status to Updating. After
+// updating the endpoint, it sets the status to InService. To check the status of
+// an endpoint, use the DescribeEndpoint API.
func (c *Client) UpdateEndpointWeightsAndCapacities(ctx context.Context, params *UpdateEndpointWeightsAndCapacitiesInput, optFns ...func(*Options)) (*UpdateEndpointWeightsAndCapacitiesOutput, error) {
if params == nil {
params = &UpdateEndpointWeightsAndCapacitiesInput{}
@@ -38,7 +38,7 @@ type UpdateEndpointWeightsAndCapacitiesInput struct {
// This member is required.
DesiredWeightsAndCapacities []types.DesiredWeightAndCapacity
- // The name of an existing Amazon SageMaker endpoint.
+ // The name of an existing SageMaker endpoint.
//
// This member is required.
EndpointName *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateModelPackage.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateModelPackage.go
index fd8f240..b1e27a4 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateModelPackage.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateModelPackage.go
@@ -34,6 +34,14 @@ type UpdateModelPackageInput struct {
// This member is required.
ModelPackageArn *string
+ // An array of additional Inference Specification objects to be added to the
+ // existing array additional Inference Specification. Total number of additional
+ // Inference Specifications can not exceed 15. Each additional Inference
+ // Specification specifies artifacts based on this model package that can be used
+ // on inference endpoints. Generally used with SageMaker Neo to store the compiled
+ // artifacts.
+ AdditionalInferenceSpecificationsToAdd []types.AdditionalInferenceSpecificationDefinition
+
// A description for the approval status of the model.
ApprovalDescription *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateNotebookInstance.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateNotebookInstance.go
index db8cbad..e17f234 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateNotebookInstance.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdateNotebookInstance.go
@@ -49,7 +49,7 @@ type UpdateNotebookInstanceInput struct {
// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any
// other Git repository. These repositories are cloned at the same level as the
// default repository of your notebook instance. For more information, see
- // Associating Git Repositories with Amazon SageMaker Notebook Instances
+ // Associating Git Repositories with SageMaker Notebook Instances
// (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
AdditionalCodeRepositories []string
@@ -60,7 +60,7 @@ type UpdateNotebookInstanceInput struct {
// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any
// other Git repository. When you open a notebook instance, it opens in the
// directory that contains this repository. For more information, see Associating
- // Git Repositories with Amazon SageMaker Notebook Instances
+ // Git Repositories with SageMaker Notebook Instances
// (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
DefaultCodeRepository *string
@@ -88,6 +88,9 @@ type UpdateNotebookInstanceInput struct {
// instance when you call this method, it does not throw an error.
DisassociateLifecycleConfig bool
+ // Information on the IMDS configuration of the notebook instance
+ InstanceMetadataServiceConfiguration *types.InstanceMetadataServiceConfiguration
+
// The Amazon ML compute instance type.
InstanceType types.InstanceType
@@ -97,11 +100,11 @@ type UpdateNotebookInstanceInput struct {
// (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
LifecycleConfigName *string
- // The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker can assume
- // to access the notebook instance. For more information, see Amazon SageMaker
- // Roles (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). To
- // be able to pass this role to Amazon SageMaker, the caller of this API must have
- // the iam:PassRole permission.
+ // The Amazon Resource Name (ARN) of the IAM role that SageMaker can assume to
+ // access the notebook instance. For more information, see SageMaker Roles
+ // (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). To be
+ // able to pass this role to SageMaker, the caller of this API must have the
+ // iam:PassRole permission.
RoleArn *string
// Whether root access is enabled or disabled for users of the notebook instance.
@@ -111,11 +114,11 @@ type UpdateNotebookInstanceInput struct {
RootAccess types.RootAccess
// The size, in GB, of the ML storage volume to attach to the notebook instance.
- // The default value is 5 GB. ML storage volumes are encrypted, so Amazon SageMaker
- // can't determine the amount of available free space on the volume. Because of
- // this, you can increase the volume size when you update a notebook instance, but
- // you can't decrease the volume size. If you want to decrease the size of the ML
- // storage volume in use, create a new notebook instance with the desired size.
+ // The default value is 5 GB. ML storage volumes are encrypted, so SageMaker can't
+ // determine the amount of available free space on the volume. Because of this, you
+ // can increase the volume size when you update a notebook instance, but you can't
+ // decrease the volume size. If you want to decrease the size of the ML storage
+ // volume in use, create a new notebook instance with the desired size.
VolumeSizeInGB *int32
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdatePipeline.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdatePipeline.go
index a2d2d4d..8785066 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdatePipeline.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdatePipeline.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/aws-sdk-go-v2/service/sagemaker/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
@@ -33,9 +34,16 @@ type UpdatePipelineInput struct {
// This member is required.
PipelineName *string
+ // If specified, it applies to all executions of this pipeline by default.
+ ParallelismConfiguration *types.ParallelismConfiguration
+
// The JSON pipeline definition.
PipelineDefinition *string
+ // The location of the pipeline definition stored in Amazon S3. If specified,
+ // SageMaker will retrieve the pipeline definition from this location.
+ PipelineDefinitionS3Location *types.PipelineDefinitionS3Location
+
// The description of the pipeline.
PipelineDescription *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdatePipelineExecution.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdatePipelineExecution.go
index d9a1839..cfd8c56 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdatePipelineExecution.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/api_op_UpdatePipelineExecution.go
@@ -6,6 +6,7 @@ import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
+ "github.com/aws/aws-sdk-go-v2/service/sagemaker/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
@@ -33,6 +34,10 @@ type UpdatePipelineExecutionInput struct {
// This member is required.
PipelineExecutionArn *string
+ // This configuration, if specified, overrides the parallelism configuration of the
+ // parent pipeline for this specific run.
+ ParallelismConfiguration *types.ParallelismConfiguration
+
// The description of the pipeline execution.
PipelineExecutionDescription *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/deserializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/deserializers.go
index 2511d6a..9dfdf99 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/deserializers.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/deserializers.go
@@ -2896,6 +2896,120 @@ func awsAwsjson11_deserializeOpErrorCreateImageVersion(response *smithyhttp.Resp
}
}
+type awsAwsjson11_deserializeOpCreateInferenceRecommendationsJob struct {
+}
+
+func (*awsAwsjson11_deserializeOpCreateInferenceRecommendationsJob) ID() string {
+ return "OperationDeserializer"
+}
+
+func (m *awsAwsjson11_deserializeOpCreateInferenceRecommendationsJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
+ out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
+) {
+ out, metadata, err = next.HandleDeserialize(ctx, in)
+ if err != nil {
+ return out, metadata, err
+ }
+
+ response, ok := out.RawResponse.(*smithyhttp.Response)
+ if !ok {
+ return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
+ }
+
+ if response.StatusCode < 200 || response.StatusCode >= 300 {
+ return out, metadata, awsAwsjson11_deserializeOpErrorCreateInferenceRecommendationsJob(response, &metadata)
+ }
+ output := &CreateInferenceRecommendationsJobOutput{}
+ out.Result = output
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(response.Body, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ var shape interface{}
+ if err := decoder.Decode(&shape); err != nil && err != io.EOF {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ err = awsAwsjson11_deserializeOpDocumentCreateInferenceRecommendationsJobOutput(&output, shape)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ return out, metadata, err
+}
+
+func awsAwsjson11_deserializeOpErrorCreateInferenceRecommendationsJob(response *smithyhttp.Response, metadata *middleware.Metadata) error {
+ var errorBuffer bytes.Buffer
+ if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
+ return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
+ }
+ errorBody := bytes.NewReader(errorBuffer.Bytes())
+
+ errorCode := "UnknownError"
+ errorMessage := errorCode
+
+ code := response.Header.Get("X-Amzn-ErrorType")
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(errorBody, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ code, message, err := restjson.GetErrorInfo(decoder)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return err
+ }
+
+ errorBody.Seek(0, io.SeekStart)
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+ if len(message) != 0 {
+ errorMessage = message
+ }
+
+ switch {
+ case strings.EqualFold("ResourceInUse", errorCode):
+ return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody)
+
+ case strings.EqualFold("ResourceLimitExceeded", errorCode):
+ return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody)
+
+ default:
+ genericError := &smithy.GenericAPIError{
+ Code: errorCode,
+ Message: errorMessage,
+ }
+ return genericError
+
+ }
+}
+
type awsAwsjson11_deserializeOpCreateLabelingJob struct {
}
@@ -11821,6 +11935,117 @@ func awsAwsjson11_deserializeOpErrorDescribeImageVersion(response *smithyhttp.Re
}
}
+type awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob struct {
+}
+
+func (*awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob) ID() string {
+ return "OperationDeserializer"
+}
+
+func (m *awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
+ out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
+) {
+ out, metadata, err = next.HandleDeserialize(ctx, in)
+ if err != nil {
+ return out, metadata, err
+ }
+
+ response, ok := out.RawResponse.(*smithyhttp.Response)
+ if !ok {
+ return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
+ }
+
+ if response.StatusCode < 200 || response.StatusCode >= 300 {
+ return out, metadata, awsAwsjson11_deserializeOpErrorDescribeInferenceRecommendationsJob(response, &metadata)
+ }
+ output := &DescribeInferenceRecommendationsJobOutput{}
+ out.Result = output
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(response.Body, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ var shape interface{}
+ if err := decoder.Decode(&shape); err != nil && err != io.EOF {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ err = awsAwsjson11_deserializeOpDocumentDescribeInferenceRecommendationsJobOutput(&output, shape)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ return out, metadata, err
+}
+
+func awsAwsjson11_deserializeOpErrorDescribeInferenceRecommendationsJob(response *smithyhttp.Response, metadata *middleware.Metadata) error {
+ var errorBuffer bytes.Buffer
+ if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
+ return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
+ }
+ errorBody := bytes.NewReader(errorBuffer.Bytes())
+
+ errorCode := "UnknownError"
+ errorMessage := errorCode
+
+ code := response.Header.Get("X-Amzn-ErrorType")
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(errorBody, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ code, message, err := restjson.GetErrorInfo(decoder)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return err
+ }
+
+ errorBody.Seek(0, io.SeekStart)
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+ if len(message) != 0 {
+ errorMessage = message
+ }
+
+ switch {
+ case strings.EqualFold("ResourceNotFound", errorCode):
+ return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody)
+
+ default:
+ genericError := &smithy.GenericAPIError{
+ Code: errorCode,
+ Message: errorMessage,
+ }
+ return genericError
+
+ }
+}
+
type awsAwsjson11_deserializeOpDescribeLabelingJob struct {
}
@@ -11932,6 +12157,117 @@ func awsAwsjson11_deserializeOpErrorDescribeLabelingJob(response *smithyhttp.Res
}
}
+type awsAwsjson11_deserializeOpDescribeLineageGroup struct {
+}
+
+func (*awsAwsjson11_deserializeOpDescribeLineageGroup) ID() string {
+ return "OperationDeserializer"
+}
+
+func (m *awsAwsjson11_deserializeOpDescribeLineageGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
+ out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
+) {
+ out, metadata, err = next.HandleDeserialize(ctx, in)
+ if err != nil {
+ return out, metadata, err
+ }
+
+ response, ok := out.RawResponse.(*smithyhttp.Response)
+ if !ok {
+ return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
+ }
+
+ if response.StatusCode < 200 || response.StatusCode >= 300 {
+ return out, metadata, awsAwsjson11_deserializeOpErrorDescribeLineageGroup(response, &metadata)
+ }
+ output := &DescribeLineageGroupOutput{}
+ out.Result = output
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(response.Body, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ var shape interface{}
+ if err := decoder.Decode(&shape); err != nil && err != io.EOF {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ err = awsAwsjson11_deserializeOpDocumentDescribeLineageGroupOutput(&output, shape)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ return out, metadata, err
+}
+
+func awsAwsjson11_deserializeOpErrorDescribeLineageGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
+ var errorBuffer bytes.Buffer
+ if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
+ return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
+ }
+ errorBody := bytes.NewReader(errorBuffer.Bytes())
+
+ errorCode := "UnknownError"
+ errorMessage := errorCode
+
+ code := response.Header.Get("X-Amzn-ErrorType")
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(errorBody, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ code, message, err := restjson.GetErrorInfo(decoder)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return err
+ }
+
+ errorBody.Seek(0, io.SeekStart)
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+ if len(message) != 0 {
+ errorMessage = message
+ }
+
+ switch {
+ case strings.EqualFold("ResourceNotFound", errorCode):
+ return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody)
+
+ default:
+ genericError := &smithy.GenericAPIError{
+ Code: errorCode,
+ Message: errorMessage,
+ }
+ return genericError
+
+ }
+}
+
type awsAwsjson11_deserializeOpDescribeModel struct {
}
@@ -14893,6 +15229,117 @@ func awsAwsjson11_deserializeOpErrorGetDeviceFleetReport(response *smithyhttp.Re
}
}
+type awsAwsjson11_deserializeOpGetLineageGroupPolicy struct {
+}
+
+func (*awsAwsjson11_deserializeOpGetLineageGroupPolicy) ID() string {
+ return "OperationDeserializer"
+}
+
+func (m *awsAwsjson11_deserializeOpGetLineageGroupPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
+ out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
+) {
+ out, metadata, err = next.HandleDeserialize(ctx, in)
+ if err != nil {
+ return out, metadata, err
+ }
+
+ response, ok := out.RawResponse.(*smithyhttp.Response)
+ if !ok {
+ return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
+ }
+
+ if response.StatusCode < 200 || response.StatusCode >= 300 {
+ return out, metadata, awsAwsjson11_deserializeOpErrorGetLineageGroupPolicy(response, &metadata)
+ }
+ output := &GetLineageGroupPolicyOutput{}
+ out.Result = output
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(response.Body, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ var shape interface{}
+ if err := decoder.Decode(&shape); err != nil && err != io.EOF {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ err = awsAwsjson11_deserializeOpDocumentGetLineageGroupPolicyOutput(&output, shape)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ return out, metadata, err
+}
+
+func awsAwsjson11_deserializeOpErrorGetLineageGroupPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error {
+ var errorBuffer bytes.Buffer
+ if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
+ return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
+ }
+ errorBody := bytes.NewReader(errorBuffer.Bytes())
+
+ errorCode := "UnknownError"
+ errorMessage := errorCode
+
+ code := response.Header.Get("X-Amzn-ErrorType")
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(errorBody, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ code, message, err := restjson.GetErrorInfo(decoder)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return err
+ }
+
+ errorBody.Seek(0, io.SeekStart)
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+ if len(message) != 0 {
+ errorMessage = message
+ }
+
+ switch {
+ case strings.EqualFold("ResourceNotFound", errorCode):
+ return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody)
+
+ default:
+ genericError := &smithy.GenericAPIError{
+ Code: errorCode,
+ Message: errorMessage,
+ }
+ return genericError
+
+ }
+}
+
type awsAwsjson11_deserializeOpGetModelPackageGroupPolicy struct {
}
@@ -17935,6 +18382,114 @@ func awsAwsjson11_deserializeOpErrorListImageVersions(response *smithyhttp.Respo
}
}
+type awsAwsjson11_deserializeOpListInferenceRecommendationsJobs struct {
+}
+
+func (*awsAwsjson11_deserializeOpListInferenceRecommendationsJobs) ID() string {
+ return "OperationDeserializer"
+}
+
+func (m *awsAwsjson11_deserializeOpListInferenceRecommendationsJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
+ out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
+) {
+ out, metadata, err = next.HandleDeserialize(ctx, in)
+ if err != nil {
+ return out, metadata, err
+ }
+
+ response, ok := out.RawResponse.(*smithyhttp.Response)
+ if !ok {
+ return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
+ }
+
+ if response.StatusCode < 200 || response.StatusCode >= 300 {
+ return out, metadata, awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobs(response, &metadata)
+ }
+ output := &ListInferenceRecommendationsJobsOutput{}
+ out.Result = output
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(response.Body, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ var shape interface{}
+ if err := decoder.Decode(&shape); err != nil && err != io.EOF {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ err = awsAwsjson11_deserializeOpDocumentListInferenceRecommendationsJobsOutput(&output, shape)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ return out, metadata, err
+}
+
+func awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error {
+ var errorBuffer bytes.Buffer
+ if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
+ return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
+ }
+ errorBody := bytes.NewReader(errorBuffer.Bytes())
+
+ errorCode := "UnknownError"
+ errorMessage := errorCode
+
+ code := response.Header.Get("X-Amzn-ErrorType")
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(errorBody, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ code, message, err := restjson.GetErrorInfo(decoder)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return err
+ }
+
+ errorBody.Seek(0, io.SeekStart)
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+ if len(message) != 0 {
+ errorMessage = message
+ }
+
+ switch {
+ default:
+ genericError := &smithy.GenericAPIError{
+ Code: errorCode,
+ Message: errorMessage,
+ }
+ return genericError
+
+ }
+}
+
type awsAwsjson11_deserializeOpListLabelingJobs struct {
}
@@ -18154,6 +18709,114 @@ func awsAwsjson11_deserializeOpErrorListLabelingJobsForWorkteam(response *smithy
}
}
+type awsAwsjson11_deserializeOpListLineageGroups struct {
+}
+
+func (*awsAwsjson11_deserializeOpListLineageGroups) ID() string {
+ return "OperationDeserializer"
+}
+
+func (m *awsAwsjson11_deserializeOpListLineageGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
+ out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
+) {
+ out, metadata, err = next.HandleDeserialize(ctx, in)
+ if err != nil {
+ return out, metadata, err
+ }
+
+ response, ok := out.RawResponse.(*smithyhttp.Response)
+ if !ok {
+ return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
+ }
+
+ if response.StatusCode < 200 || response.StatusCode >= 300 {
+ return out, metadata, awsAwsjson11_deserializeOpErrorListLineageGroups(response, &metadata)
+ }
+ output := &ListLineageGroupsOutput{}
+ out.Result = output
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(response.Body, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ var shape interface{}
+ if err := decoder.Decode(&shape); err != nil && err != io.EOF {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ err = awsAwsjson11_deserializeOpDocumentListLineageGroupsOutput(&output, shape)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ return out, metadata, err
+}
+
+func awsAwsjson11_deserializeOpErrorListLineageGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error {
+ var errorBuffer bytes.Buffer
+ if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
+ return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
+ }
+ errorBody := bytes.NewReader(errorBuffer.Bytes())
+
+ errorCode := "UnknownError"
+ errorMessage := errorCode
+
+ code := response.Header.Get("X-Amzn-ErrorType")
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(errorBody, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ code, message, err := restjson.GetErrorInfo(decoder)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return err
+ }
+
+ errorBody.Seek(0, io.SeekStart)
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+ if len(message) != 0 {
+ errorMessage = message
+ }
+
+ switch {
+ default:
+ genericError := &smithy.GenericAPIError{
+ Code: errorCode,
+ Message: errorMessage,
+ }
+ return genericError
+
+ }
+}
+
type awsAwsjson11_deserializeOpListModelBiasJobDefinitions struct {
}
@@ -18370,6 +19033,114 @@ func awsAwsjson11_deserializeOpErrorListModelExplainabilityJobDefinitions(respon
}
}
+type awsAwsjson11_deserializeOpListModelMetadata struct {
+}
+
+func (*awsAwsjson11_deserializeOpListModelMetadata) ID() string {
+ return "OperationDeserializer"
+}
+
+func (m *awsAwsjson11_deserializeOpListModelMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
+ out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
+) {
+ out, metadata, err = next.HandleDeserialize(ctx, in)
+ if err != nil {
+ return out, metadata, err
+ }
+
+ response, ok := out.RawResponse.(*smithyhttp.Response)
+ if !ok {
+ return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
+ }
+
+ if response.StatusCode < 200 || response.StatusCode >= 300 {
+ return out, metadata, awsAwsjson11_deserializeOpErrorListModelMetadata(response, &metadata)
+ }
+ output := &ListModelMetadataOutput{}
+ out.Result = output
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(response.Body, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ var shape interface{}
+ if err := decoder.Decode(&shape); err != nil && err != io.EOF {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ err = awsAwsjson11_deserializeOpDocumentListModelMetadataOutput(&output, shape)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ return out, metadata, err
+}
+
+func awsAwsjson11_deserializeOpErrorListModelMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error {
+ var errorBuffer bytes.Buffer
+ if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
+ return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
+ }
+ errorBody := bytes.NewReader(errorBuffer.Bytes())
+
+ errorCode := "UnknownError"
+ errorMessage := errorCode
+
+ code := response.Header.Get("X-Amzn-ErrorType")
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(errorBody, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ code, message, err := restjson.GetErrorInfo(decoder)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return err
+ }
+
+ errorBody.Seek(0, io.SeekStart)
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+ if len(message) != 0 {
+ errorMessage = message
+ }
+
+ switch {
+ default:
+ genericError := &smithy.GenericAPIError{
+ Code: errorCode,
+ Message: errorMessage,
+ }
+ return genericError
+
+ }
+}
+
type awsAwsjson11_deserializeOpListModelPackageGroups struct {
}
@@ -21199,6 +21970,117 @@ func awsAwsjson11_deserializeOpErrorPutModelPackageGroupPolicy(response *smithyh
}
}
+type awsAwsjson11_deserializeOpQueryLineage struct {
+}
+
+func (*awsAwsjson11_deserializeOpQueryLineage) ID() string {
+ return "OperationDeserializer"
+}
+
+func (m *awsAwsjson11_deserializeOpQueryLineage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
+ out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
+) {
+ out, metadata, err = next.HandleDeserialize(ctx, in)
+ if err != nil {
+ return out, metadata, err
+ }
+
+ response, ok := out.RawResponse.(*smithyhttp.Response)
+ if !ok {
+ return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
+ }
+
+ if response.StatusCode < 200 || response.StatusCode >= 300 {
+ return out, metadata, awsAwsjson11_deserializeOpErrorQueryLineage(response, &metadata)
+ }
+ output := &QueryLineageOutput{}
+ out.Result = output
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(response.Body, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ var shape interface{}
+ if err := decoder.Decode(&shape); err != nil && err != io.EOF {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ err = awsAwsjson11_deserializeOpDocumentQueryLineageOutput(&output, shape)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return out, metadata, err
+ }
+
+ return out, metadata, err
+}
+
+func awsAwsjson11_deserializeOpErrorQueryLineage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
+ var errorBuffer bytes.Buffer
+ if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
+ return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
+ }
+ errorBody := bytes.NewReader(errorBuffer.Bytes())
+
+ errorCode := "UnknownError"
+ errorMessage := errorCode
+
+ code := response.Header.Get("X-Amzn-ErrorType")
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(errorBody, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ code, message, err := restjson.GetErrorInfo(decoder)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return err
+ }
+
+ errorBody.Seek(0, io.SeekStart)
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+ if len(message) != 0 {
+ errorMessage = message
+ }
+
+ switch {
+ case strings.EqualFold("ResourceNotFound", errorCode):
+ return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody)
+
+ default:
+ genericError := &smithy.GenericAPIError{
+ Code: errorCode,
+ Message: errorMessage,
+ }
+ return genericError
+
+ }
+}
+
type awsAwsjson11_deserializeOpRegisterDevices struct {
}
@@ -22497,6 +23379,95 @@ func awsAwsjson11_deserializeOpErrorStopHyperParameterTuningJob(response *smithy
}
}
+type awsAwsjson11_deserializeOpStopInferenceRecommendationsJob struct {
+}
+
+func (*awsAwsjson11_deserializeOpStopInferenceRecommendationsJob) ID() string {
+ return "OperationDeserializer"
+}
+
+func (m *awsAwsjson11_deserializeOpStopInferenceRecommendationsJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
+ out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
+) {
+ out, metadata, err = next.HandleDeserialize(ctx, in)
+ if err != nil {
+ return out, metadata, err
+ }
+
+ response, ok := out.RawResponse.(*smithyhttp.Response)
+ if !ok {
+ return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
+ }
+
+ if response.StatusCode < 200 || response.StatusCode >= 300 {
+ return out, metadata, awsAwsjson11_deserializeOpErrorStopInferenceRecommendationsJob(response, &metadata)
+ }
+ output := &StopInferenceRecommendationsJobOutput{}
+ out.Result = output
+
+ if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
+ return out, metadata, &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to discard response body, %w", err),
+ }
+ }
+
+ return out, metadata, err
+}
+
+func awsAwsjson11_deserializeOpErrorStopInferenceRecommendationsJob(response *smithyhttp.Response, metadata *middleware.Metadata) error {
+ var errorBuffer bytes.Buffer
+ if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
+ return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
+ }
+ errorBody := bytes.NewReader(errorBuffer.Bytes())
+
+ errorCode := "UnknownError"
+ errorMessage := errorCode
+
+ code := response.Header.Get("X-Amzn-ErrorType")
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+
+ var buff [1024]byte
+ ringBuffer := smithyio.NewRingBuffer(buff[:])
+
+ body := io.TeeReader(errorBody, ringBuffer)
+ decoder := json.NewDecoder(body)
+ decoder.UseNumber()
+ code, message, err := restjson.GetErrorInfo(decoder)
+ if err != nil {
+ var snapshot bytes.Buffer
+ io.Copy(&snapshot, ringBuffer)
+ err = &smithy.DeserializationError{
+ Err: fmt.Errorf("failed to decode response body, %w", err),
+ Snapshot: snapshot.Bytes(),
+ }
+ return err
+ }
+
+ errorBody.Seek(0, io.SeekStart)
+ if len(code) != 0 {
+ errorCode = restjson.SanitizeErrorCode(code)
+ }
+ if len(message) != 0 {
+ errorMessage = message
+ }
+
+ switch {
+ case strings.EqualFold("ResourceNotFound", errorCode):
+ return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody)
+
+ default:
+ genericError := &smithy.GenericAPIError{
+ Code: errorCode,
+ Message: errorMessage,
+ }
+ return genericError
+
+ }
+}
+
type awsAwsjson11_deserializeOpStopLabelingJob struct {
}
@@ -26263,6 +27234,114 @@ func awsAwsjson11_deserializeDocumentAdditionalCodeRepositoryNamesOrUrls(v *[]st
return nil
}
+func awsAwsjson11_deserializeDocumentAdditionalInferenceSpecificationDefinition(v **types.AdditionalInferenceSpecificationDefinition, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.AdditionalInferenceSpecificationDefinition
+ if *v == nil {
+ sv = &types.AdditionalInferenceSpecificationDefinition{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "Containers":
+ if err := awsAwsjson11_deserializeDocumentModelPackageContainerDefinitionList(&sv.Containers, value); err != nil {
+ return err
+ }
+
+ case "Description":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected EntityDescription to be of type string, got %T instead", value)
+ }
+ sv.Description = ptr.String(jtv)
+ }
+
+ case "Name":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected EntityName to be of type string, got %T instead", value)
+ }
+ sv.Name = ptr.String(jtv)
+ }
+
+ case "SupportedContentTypes":
+ if err := awsAwsjson11_deserializeDocumentContentTypes(&sv.SupportedContentTypes, value); err != nil {
+ return err
+ }
+
+ case "SupportedRealtimeInferenceInstanceTypes":
+ if err := awsAwsjson11_deserializeDocumentRealtimeInferenceInstanceTypes(&sv.SupportedRealtimeInferenceInstanceTypes, value); err != nil {
+ return err
+ }
+
+ case "SupportedResponseMIMETypes":
+ if err := awsAwsjson11_deserializeDocumentResponseMIMETypes(&sv.SupportedResponseMIMETypes, value); err != nil {
+ return err
+ }
+
+ case "SupportedTransformInstanceTypes":
+ if err := awsAwsjson11_deserializeDocumentTransformInstanceTypes(&sv.SupportedTransformInstanceTypes, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentAdditionalInferenceSpecifications(v *[]types.AdditionalInferenceSpecificationDefinition, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.AdditionalInferenceSpecificationDefinition
+ if *v == nil {
+ cv = []types.AdditionalInferenceSpecificationDefinition{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.AdditionalInferenceSpecificationDefinition
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentAdditionalInferenceSpecificationDefinition(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentAgentVersion(v **types.AgentVersion, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -28079,6 +29158,46 @@ func awsAwsjson11_deserializeDocumentAutoMLCandidate(v **types.AutoMLCandidate,
return nil
}
+func awsAwsjson11_deserializeDocumentAutoMLCandidateGenerationConfig(v **types.AutoMLCandidateGenerationConfig, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.AutoMLCandidateGenerationConfig
+ if *v == nil {
+ sv = &types.AutoMLCandidateGenerationConfig{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "FeatureSpecificationS3Uri":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected S3Uri to be of type string, got %T instead", value)
+ }
+ sv.FeatureSpecificationS3Uri = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentAutoMLCandidates(v *[]types.AutoMLCandidate, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -28193,6 +29312,15 @@ func awsAwsjson11_deserializeDocumentAutoMLChannel(v **types.AutoMLChannel, valu
for key, value := range shape {
switch key {
+ case "ChannelType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected AutoMLChannelType to be of type string, got %T instead", value)
+ }
+ sv.ChannelType = types.AutoMLChannelType(jtv)
+ }
+
case "CompressionType":
if value != nil {
jtv, ok := value.(string)
@@ -28202,6 +29330,15 @@ func awsAwsjson11_deserializeDocumentAutoMLChannel(v **types.AutoMLChannel, valu
sv.CompressionType = types.CompressionType(jtv)
}
+ case "ContentType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ContentType to be of type string, got %T instead", value)
+ }
+ sv.ContentType = ptr.String(jtv)
+ }
+
case "DataSource":
if err := awsAwsjson11_deserializeDocumentAutoMLDataSource(&sv.DataSource, value); err != nil {
return err
@@ -28349,6 +29486,71 @@ func awsAwsjson11_deserializeDocumentAutoMLDataSource(v **types.AutoMLDataSource
return nil
}
+func awsAwsjson11_deserializeDocumentAutoMLDataSplitConfig(v **types.AutoMLDataSplitConfig, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.AutoMLDataSplitConfig
+ if *v == nil {
+ sv = &types.AutoMLDataSplitConfig{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "ValidationFraction":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.ValidationFraction = ptr.Float32(float32(f64))
+
+ case string:
+ var f64 float64
+ switch {
+ case strings.EqualFold(jtv, "NaN"):
+ f64 = math.NaN()
+
+ case strings.EqualFold(jtv, "Infinity"):
+ f64 = math.Inf(1)
+
+ case strings.EqualFold(jtv, "-Infinity"):
+ f64 = math.Inf(-1)
+
+ default:
+ return fmt.Errorf("unknown JSON number value: %s", jtv)
+
+ }
+ sv.ValidationFraction = ptr.Float32(float32(f64))
+
+ default:
+ return fmt.Errorf("expected ValidationFraction to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentAutoMLInputDataConfig(v *[]types.AutoMLChannel, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -28524,11 +29726,21 @@ func awsAwsjson11_deserializeDocumentAutoMLJobConfig(v **types.AutoMLJobConfig,
for key, value := range shape {
switch key {
+ case "CandidateGenerationConfig":
+ if err := awsAwsjson11_deserializeDocumentAutoMLCandidateGenerationConfig(&sv.CandidateGenerationConfig, value); err != nil {
+ return err
+ }
+
case "CompletionCriteria":
if err := awsAwsjson11_deserializeDocumentAutoMLJobCompletionCriteria(&sv.CompletionCriteria, value); err != nil {
return err
}
+ case "DataSplitConfig":
+ if err := awsAwsjson11_deserializeDocumentAutoMLDataSplitConfig(&sv.DataSplitConfig, value); err != nil {
+ return err
+ }
+
case "SecurityConfig":
if err := awsAwsjson11_deserializeDocumentAutoMLSecurityConfig(&sv.SecurityConfig, value); err != nil {
return err
@@ -29224,6 +30436,16 @@ func awsAwsjson11_deserializeDocumentBias(v **types.Bias, value interface{}) err
for key, value := range shape {
switch key {
+ case "PostTrainingReport":
+ if err := awsAwsjson11_deserializeDocumentMetricsSource(&sv.PostTrainingReport, value); err != nil {
+ return err
+ }
+
+ case "PreTrainingReport":
+ if err := awsAwsjson11_deserializeDocumentMetricsSource(&sv.PreTrainingReport, value); err != nil {
+ return err
+ }
+
case "Report":
if err := awsAwsjson11_deserializeDocumentMetricsSource(&sv.Report, value); err != nil {
return err
@@ -29425,6 +30647,15 @@ func awsAwsjson11_deserializeDocumentCandidateArtifactLocations(v **types.Candid
sv.Explainability = ptr.String(jtv)
}
+ case "ModelInsights":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ModelInsightsLocation to be of type string, got %T instead", value)
+ }
+ sv.ModelInsights = ptr.String(jtv)
+ }
+
default:
_, _ = key, value
@@ -29677,6 +30908,51 @@ func awsAwsjson11_deserializeDocumentCaptureOptionList(v *[]types.CaptureOption,
return nil
}
+func awsAwsjson11_deserializeDocumentCategoricalParameter(v **types.CategoricalParameter, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.CategoricalParameter
+ if *v == nil {
+ sv = &types.CategoricalParameter{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "Name":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String64 to be of type string, got %T instead", value)
+ }
+ sv.Name = ptr.String(jtv)
+ }
+
+ case "Value":
+ if err := awsAwsjson11_deserializeDocumentCategoricalParameterRangeValues(&sv.Value, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentCategoricalParameterRange(v **types.CategoricalParameterRange, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -29792,6 +31068,76 @@ func awsAwsjson11_deserializeDocumentCategoricalParameterRangeSpecification(v **
return nil
}
+func awsAwsjson11_deserializeDocumentCategoricalParameterRangeValues(v *[]string, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []string
+ if *v == nil {
+ cv = []string{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col string
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String128 to be of type string, got %T instead", value)
+ }
+ col = jtv
+ }
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentCategoricalParameters(v *[]types.CategoricalParameter, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.CategoricalParameter
+ if *v == nil {
+ cv = []types.CategoricalParameter{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.CategoricalParameter
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentCategoricalParameter(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentChannel(v **types.Channel, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -30070,6 +31416,109 @@ func awsAwsjson11_deserializeDocumentCidrs(v *[]string, value interface{}) error
return nil
}
+func awsAwsjson11_deserializeDocumentClarifyCheckStepMetadata(v **types.ClarifyCheckStepMetadata, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.ClarifyCheckStepMetadata
+ if *v == nil {
+ sv = &types.ClarifyCheckStepMetadata{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "BaselineUsedForDriftCheckConstraints":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String1024 to be of type string, got %T instead", value)
+ }
+ sv.BaselineUsedForDriftCheckConstraints = ptr.String(jtv)
+ }
+
+ case "CalculatedBaselineConstraints":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String1024 to be of type string, got %T instead", value)
+ }
+ sv.CalculatedBaselineConstraints = ptr.String(jtv)
+ }
+
+ case "CheckJobArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String256 to be of type string, got %T instead", value)
+ }
+ sv.CheckJobArn = ptr.String(jtv)
+ }
+
+ case "CheckType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String256 to be of type string, got %T instead", value)
+ }
+ sv.CheckType = ptr.String(jtv)
+ }
+
+ case "ModelPackageGroupName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String256 to be of type string, got %T instead", value)
+ }
+ sv.ModelPackageGroupName = ptr.String(jtv)
+ }
+
+ case "RegisterNewBaseline":
+ if value != nil {
+ jtv, ok := value.(bool)
+ if !ok {
+ return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
+ }
+ sv.RegisterNewBaseline = jtv
+ }
+
+ case "SkipCheck":
+ if value != nil {
+ jtv, ok := value.(bool)
+ if !ok {
+ return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
+ }
+ sv.SkipCheck = jtv
+ }
+
+ case "ViolationReport":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String1024 to be of type string, got %T instead", value)
+ }
+ sv.ViolationReport = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentCodeRepositorySummary(v **types.CodeRepositorySummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -30806,6 +32255,15 @@ func awsAwsjson11_deserializeDocumentContainerDefinition(v **types.ContainerDefi
return err
}
+ case "InferenceSpecificationName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected InferenceSpecificationName to be of type string, got %T instead", value)
+ }
+ sv.InferenceSpecificationName = ptr.String(jtv)
+ }
+
case "Mode":
if value != nil {
jtv, ok := value.(string)
@@ -33030,6 +34488,284 @@ func awsAwsjson11_deserializeDocumentDomainSettings(v **types.DomainSettings, va
return nil
}
+func awsAwsjson11_deserializeDocumentDriftCheckBaselines(v **types.DriftCheckBaselines, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.DriftCheckBaselines
+ if *v == nil {
+ sv = &types.DriftCheckBaselines{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "Bias":
+ if err := awsAwsjson11_deserializeDocumentDriftCheckBias(&sv.Bias, value); err != nil {
+ return err
+ }
+
+ case "Explainability":
+ if err := awsAwsjson11_deserializeDocumentDriftCheckExplainability(&sv.Explainability, value); err != nil {
+ return err
+ }
+
+ case "ModelDataQuality":
+ if err := awsAwsjson11_deserializeDocumentDriftCheckModelDataQuality(&sv.ModelDataQuality, value); err != nil {
+ return err
+ }
+
+ case "ModelQuality":
+ if err := awsAwsjson11_deserializeDocumentDriftCheckModelQuality(&sv.ModelQuality, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentDriftCheckBias(v **types.DriftCheckBias, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.DriftCheckBias
+ if *v == nil {
+ sv = &types.DriftCheckBias{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "ConfigFile":
+ if err := awsAwsjson11_deserializeDocumentFileSource(&sv.ConfigFile, value); err != nil {
+ return err
+ }
+
+ case "PostTrainingConstraints":
+ if err := awsAwsjson11_deserializeDocumentMetricsSource(&sv.PostTrainingConstraints, value); err != nil {
+ return err
+ }
+
+ case "PreTrainingConstraints":
+ if err := awsAwsjson11_deserializeDocumentMetricsSource(&sv.PreTrainingConstraints, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentDriftCheckExplainability(v **types.DriftCheckExplainability, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.DriftCheckExplainability
+ if *v == nil {
+ sv = &types.DriftCheckExplainability{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "ConfigFile":
+ if err := awsAwsjson11_deserializeDocumentFileSource(&sv.ConfigFile, value); err != nil {
+ return err
+ }
+
+ case "Constraints":
+ if err := awsAwsjson11_deserializeDocumentMetricsSource(&sv.Constraints, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentDriftCheckModelDataQuality(v **types.DriftCheckModelDataQuality, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.DriftCheckModelDataQuality
+ if *v == nil {
+ sv = &types.DriftCheckModelDataQuality{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "Constraints":
+ if err := awsAwsjson11_deserializeDocumentMetricsSource(&sv.Constraints, value); err != nil {
+ return err
+ }
+
+ case "Statistics":
+ if err := awsAwsjson11_deserializeDocumentMetricsSource(&sv.Statistics, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentDriftCheckModelQuality(v **types.DriftCheckModelQuality, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.DriftCheckModelQuality
+ if *v == nil {
+ sv = &types.DriftCheckModelQuality{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "Constraints":
+ if err := awsAwsjson11_deserializeDocumentMetricsSource(&sv.Constraints, value); err != nil {
+ return err
+ }
+
+ case "Statistics":
+ if err := awsAwsjson11_deserializeDocumentMetricsSource(&sv.Statistics, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentEdge(v **types.Edge, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.Edge
+ if *v == nil {
+ sv = &types.Edge{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "AssociationType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected AssociationEdgeType to be of type string, got %T instead", value)
+ }
+ sv.AssociationType = types.AssociationEdgeType(jtv)
+ }
+
+ case "DestinationArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected AssociationEntityArn to be of type string, got %T instead", value)
+ }
+ sv.DestinationArn = ptr.String(jtv)
+ }
+
+ case "SourceArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected AssociationEntityArn to be of type string, got %T instead", value)
+ }
+ sv.SourceArn = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentEdgeModel(v **types.EdgeModel, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -33648,6 +35384,107 @@ func awsAwsjson11_deserializeDocumentEdgePresetDeploymentOutput(v **types.EdgePr
return nil
}
+func awsAwsjson11_deserializeDocumentEdges(v *[]types.Edge, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.Edge
+ if *v == nil {
+ cv = []types.Edge{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.Edge
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentEdge(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentEMRStepMetadata(v **types.EMRStepMetadata, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.EMRStepMetadata
+ if *v == nil {
+ sv = &types.EMRStepMetadata{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "ClusterId":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String256 to be of type string, got %T instead", value)
+ }
+ sv.ClusterId = ptr.String(jtv)
+ }
+
+ case "LogFilePath":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String1024 to be of type string, got %T instead", value)
+ }
+ sv.LogFilePath = ptr.String(jtv)
+ }
+
+ case "StepId":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String256 to be of type string, got %T instead", value)
+ }
+ sv.StepId = ptr.String(jtv)
+ }
+
+ case "StepName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String256 to be of type string, got %T instead", value)
+ }
+ sv.StepName = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentEndpoint(v **types.Endpoint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -34021,6 +35858,165 @@ func awsAwsjson11_deserializeDocumentEndpointInput(v **types.EndpointInput, valu
return nil
}
+func awsAwsjson11_deserializeDocumentEndpointInputConfiguration(v **types.EndpointInputConfiguration, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.EndpointInputConfiguration
+ if *v == nil {
+ sv = &types.EndpointInputConfiguration{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "EnvironmentParameterRanges":
+ if err := awsAwsjson11_deserializeDocumentEnvironmentParameterRanges(&sv.EnvironmentParameterRanges, value); err != nil {
+ return err
+ }
+
+ case "InferenceSpecificationName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected InferenceSpecificationName to be of type string, got %T instead", value)
+ }
+ sv.InferenceSpecificationName = ptr.String(jtv)
+ }
+
+ case "InstanceType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ProductionVariantInstanceType to be of type string, got %T instead", value)
+ }
+ sv.InstanceType = types.ProductionVariantInstanceType(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentEndpointInputConfigurations(v *[]types.EndpointInputConfiguration, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.EndpointInputConfiguration
+ if *v == nil {
+ cv = []types.EndpointInputConfiguration{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.EndpointInputConfiguration
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentEndpointInputConfiguration(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentEndpointOutputConfiguration(v **types.EndpointOutputConfiguration, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.EndpointOutputConfiguration
+ if *v == nil {
+ sv = &types.EndpointOutputConfiguration{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "EndpointName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.EndpointName = ptr.String(jtv)
+ }
+
+ case "InitialInstanceCount":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.InitialInstanceCount = int32(i64)
+ }
+
+ case "InstanceType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ProductionVariantInstanceType to be of type string, got %T instead", value)
+ }
+ sv.InstanceType = types.ProductionVariantInstanceType(jtv)
+ }
+
+ case "VariantName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.VariantName = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentEndpointSummary(v **types.EndpointSummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -34181,6 +36177,134 @@ func awsAwsjson11_deserializeDocumentEnvironmentMap(v *map[string]string, value
return nil
}
+func awsAwsjson11_deserializeDocumentEnvironmentParameter(v **types.EnvironmentParameter, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.EnvironmentParameter
+ if *v == nil {
+ sv = &types.EnvironmentParameter{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "Key":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.Key = ptr.String(jtv)
+ }
+
+ case "Value":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.Value = ptr.String(jtv)
+ }
+
+ case "ValueType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.ValueType = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentEnvironmentParameterRanges(v **types.EnvironmentParameterRanges, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.EnvironmentParameterRanges
+ if *v == nil {
+ sv = &types.EnvironmentParameterRanges{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "CategoricalParameterRanges":
+ if err := awsAwsjson11_deserializeDocumentCategoricalParameters(&sv.CategoricalParameterRanges, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentEnvironmentParameters(v *[]types.EnvironmentParameter, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.EnvironmentParameter
+ if *v == nil {
+ cv = []types.EnvironmentParameter{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.EnvironmentParameter
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentEnvironmentParameter(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentExperiment(v **types.Experiment, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -34572,6 +36696,46 @@ func awsAwsjson11_deserializeDocumentExplainability(v **types.Explainability, va
return nil
}
+func awsAwsjson11_deserializeDocumentFailStepMetadata(v **types.FailStepMetadata, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.FailStepMetadata
+ if *v == nil {
+ sv = &types.FailStepMetadata{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "ErrorMessage":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String3072 to be of type string, got %T instead", value)
+ }
+ sv.ErrorMessage = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentFeatureDefinition(v **types.FeatureDefinition, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -34912,6 +37076,64 @@ func awsAwsjson11_deserializeDocumentFeatureGroupSummary(v **types.FeatureGroupS
return nil
}
+func awsAwsjson11_deserializeDocumentFileSource(v **types.FileSource, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.FileSource
+ if *v == nil {
+ sv = &types.FileSource{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "ContentDigest":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ContentDigest to be of type string, got %T instead", value)
+ }
+ sv.ContentDigest = ptr.String(jtv)
+ }
+
+ case "ContentType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ContentType to be of type string, got %T instead", value)
+ }
+ sv.ContentType = ptr.String(jtv)
+ }
+
+ case "S3Uri":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected S3Uri to be of type string, got %T instead", value)
+ }
+ sv.S3Uri = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentFileSystemConfig(v **types.FileSystemConfig, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -37364,6 +39586,262 @@ func awsAwsjson11_deserializeDocumentInferenceExecutionConfig(v **types.Inferenc
return nil
}
+func awsAwsjson11_deserializeDocumentInferenceRecommendation(v **types.InferenceRecommendation, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.InferenceRecommendation
+ if *v == nil {
+ sv = &types.InferenceRecommendation{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "EndpointConfiguration":
+ if err := awsAwsjson11_deserializeDocumentEndpointOutputConfiguration(&sv.EndpointConfiguration, value); err != nil {
+ return err
+ }
+
+ case "Metrics":
+ if err := awsAwsjson11_deserializeDocumentRecommendationMetrics(&sv.Metrics, value); err != nil {
+ return err
+ }
+
+ case "ModelConfiguration":
+ if err := awsAwsjson11_deserializeDocumentModelConfiguration(&sv.ModelConfiguration, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentInferenceRecommendations(v *[]types.InferenceRecommendation, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.InferenceRecommendation
+ if *v == nil {
+ cv = []types.InferenceRecommendation{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.InferenceRecommendation
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentInferenceRecommendation(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentInferenceRecommendationsJob(v **types.InferenceRecommendationsJob, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.InferenceRecommendationsJob
+ if *v == nil {
+ sv = &types.InferenceRecommendationsJob{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "CompletionTime":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.CompletionTime = ptr.Time(smithytime.ParseEpochSeconds(f64))
+
+ default:
+ return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "CreationTime":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64))
+
+ default:
+ return fmt.Errorf("expected CreationTime to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "FailureReason":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected FailureReason to be of type string, got %T instead", value)
+ }
+ sv.FailureReason = ptr.String(jtv)
+ }
+
+ case "JobArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RecommendationJobArn to be of type string, got %T instead", value)
+ }
+ sv.JobArn = ptr.String(jtv)
+ }
+
+ case "JobDescription":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RecommendationJobDescription to be of type string, got %T instead", value)
+ }
+ sv.JobDescription = ptr.String(jtv)
+ }
+
+ case "JobName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RecommendationJobName to be of type string, got %T instead", value)
+ }
+ sv.JobName = ptr.String(jtv)
+ }
+
+ case "JobType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RecommendationJobType to be of type string, got %T instead", value)
+ }
+ sv.JobType = types.RecommendationJobType(jtv)
+ }
+
+ case "LastModifiedTime":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.LastModifiedTime = ptr.Time(smithytime.ParseEpochSeconds(f64))
+
+ default:
+ return fmt.Errorf("expected LastModifiedTime to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "RoleArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RoleArn to be of type string, got %T instead", value)
+ }
+ sv.RoleArn = ptr.String(jtv)
+ }
+
+ case "Status":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RecommendationJobStatus to be of type string, got %T instead", value)
+ }
+ sv.Status = types.RecommendationJobStatus(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentInferenceRecommendationsJobs(v *[]types.InferenceRecommendationsJob, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.InferenceRecommendationsJob
+ if *v == nil {
+ cv = []types.InferenceRecommendationsJob{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.InferenceRecommendationsJob
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentInferenceRecommendationsJob(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentInferenceSpecification(v **types.InferenceSpecification, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -37557,6 +40035,46 @@ func awsAwsjson11_deserializeDocumentInputModes(v *[]types.TrainingInputMode, va
return nil
}
+func awsAwsjson11_deserializeDocumentInstanceMetadataServiceConfiguration(v **types.InstanceMetadataServiceConfiguration, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.InstanceMetadataServiceConfiguration
+ if *v == nil {
+ sv = &types.InstanceMetadataServiceConfiguration{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "MinimumInstanceMetadataServiceVersion":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected MinimumInstanceMetadataServiceVersion to be of type string, got %T instead", value)
+ }
+ sv.MinimumInstanceMetadataServiceVersion = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentIntegerParameterRange(v **types.IntegerParameterRange, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -38994,6 +41512,130 @@ func awsAwsjson11_deserializeDocumentLineageEntityParameters(v *map[string]strin
return nil
}
+func awsAwsjson11_deserializeDocumentLineageGroupSummaries(v *[]types.LineageGroupSummary, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.LineageGroupSummary
+ if *v == nil {
+ cv = []types.LineageGroupSummary{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.LineageGroupSummary
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentLineageGroupSummary(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentLineageGroupSummary(v **types.LineageGroupSummary, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.LineageGroupSummary
+ if *v == nil {
+ sv = &types.LineageGroupSummary{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "CreationTime":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64))
+
+ default:
+ return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "DisplayName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ExperimentEntityName to be of type string, got %T instead", value)
+ }
+ sv.DisplayName = ptr.String(jtv)
+ }
+
+ case "LastModifiedTime":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.LastModifiedTime = ptr.Time(smithytime.ParseEpochSeconds(f64))
+
+ default:
+ return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "LineageGroupArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected LineageGroupArn to be of type string, got %T instead", value)
+ }
+ sv.LineageGroupArn = ptr.String(jtv)
+ }
+
+ case "LineageGroupName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ExperimentEntityName to be of type string, got %T instead", value)
+ }
+ sv.LineageGroupName = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentMemberDefinition(v **types.MemberDefinition, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -39300,6 +41942,15 @@ func awsAwsjson11_deserializeDocumentMetricDatum(v **types.MetricDatum, value in
sv.Set = types.MetricSetSource(jtv)
}
+ case "StandardMetricName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected AutoMLMetricExtendedEnum to be of type string, got %T instead", value)
+ }
+ sv.StandardMetricName = types.AutoMLMetricExtendedEnum(jtv)
+ }
+
case "Value":
if value != nil {
switch jtv := value.(type) {
@@ -39721,6 +42372,51 @@ func awsAwsjson11_deserializeDocumentModelClientConfig(v **types.ModelClientConf
return nil
}
+func awsAwsjson11_deserializeDocumentModelConfiguration(v **types.ModelConfiguration, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.ModelConfiguration
+ if *v == nil {
+ sv = &types.ModelConfiguration{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "EnvironmentParameters":
+ if err := awsAwsjson11_deserializeDocumentEnvironmentParameters(&sv.EnvironmentParameters, value); err != nil {
+ return err
+ }
+
+ case "InferenceSpecificationName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected InferenceSpecificationName to be of type string, got %T instead", value)
+ }
+ sv.InferenceSpecificationName = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentModelDataQuality(v **types.ModelDataQuality, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -40026,6 +42722,243 @@ func awsAwsjson11_deserializeDocumentModelExplainabilityJobInput(v **types.Model
return nil
}
+func awsAwsjson11_deserializeDocumentModelInput(v **types.ModelInput, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.ModelInput
+ if *v == nil {
+ sv = &types.ModelInput{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "DataInputConfig":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected DataInputConfig to be of type string, got %T instead", value)
+ }
+ sv.DataInputConfig = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentModelLatencyThreshold(v **types.ModelLatencyThreshold, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.ModelLatencyThreshold
+ if *v == nil {
+ sv = &types.ModelLatencyThreshold{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "Percentile":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String64 to be of type string, got %T instead", value)
+ }
+ sv.Percentile = ptr.String(jtv)
+ }
+
+ case "ValueInMilliseconds":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.ValueInMilliseconds = int32(i64)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentModelLatencyThresholds(v *[]types.ModelLatencyThreshold, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.ModelLatencyThreshold
+ if *v == nil {
+ cv = []types.ModelLatencyThreshold{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.ModelLatencyThreshold
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentModelLatencyThreshold(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentModelMetadataSummaries(v *[]types.ModelMetadataSummary, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.ModelMetadataSummary
+ if *v == nil {
+ cv = []types.ModelMetadataSummary{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.ModelMetadataSummary
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentModelMetadataSummary(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentModelMetadataSummary(v **types.ModelMetadataSummary, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.ModelMetadataSummary
+ if *v == nil {
+ sv = &types.ModelMetadataSummary{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "Domain":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.Domain = ptr.String(jtv)
+ }
+
+ case "Framework":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.Framework = ptr.String(jtv)
+ }
+
+ case "FrameworkVersion":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.FrameworkVersion = ptr.String(jtv)
+ }
+
+ case "Model":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.Model = ptr.String(jtv)
+ }
+
+ case "Task":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.Task = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentModelMetrics(v **types.ModelMetrics, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -40099,6 +43032,11 @@ func awsAwsjson11_deserializeDocumentModelPackage(v **types.ModelPackage, value
for key, value := range shape {
switch key {
+ case "AdditionalInferenceSpecifications":
+ if err := awsAwsjson11_deserializeDocumentAdditionalInferenceSpecifications(&sv.AdditionalInferenceSpecifications, value); err != nil {
+ return err
+ }
+
case "ApprovalDescription":
if value != nil {
jtv, ok := value.(string)
@@ -40143,6 +43081,20 @@ func awsAwsjson11_deserializeDocumentModelPackage(v **types.ModelPackage, value
return err
}
+ case "Domain":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.Domain = ptr.String(jtv)
+ }
+
+ case "DriftCheckBaselines":
+ if err := awsAwsjson11_deserializeDocumentDriftCheckBaselines(&sv.DriftCheckBaselines, value); err != nil {
+ return err
+ }
+
case "InferenceSpecification":
if err := awsAwsjson11_deserializeDocumentInferenceSpecification(&sv.InferenceSpecification, value); err != nil {
return err
@@ -40251,6 +43203,15 @@ func awsAwsjson11_deserializeDocumentModelPackage(v **types.ModelPackage, value
sv.ModelPackageVersion = ptr.Int32(int32(i64))
}
+ case "SamplePayloadUrl":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.SamplePayloadUrl = ptr.String(jtv)
+ }
+
case "SourceAlgorithmSpecification":
if err := awsAwsjson11_deserializeDocumentSourceAlgorithmSpecification(&sv.SourceAlgorithmSpecification, value); err != nil {
return err
@@ -40261,6 +43222,15 @@ func awsAwsjson11_deserializeDocumentModelPackage(v **types.ModelPackage, value
return err
}
+ case "Task":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.Task = ptr.String(jtv)
+ }
+
case "ValidationSpecification":
if err := awsAwsjson11_deserializeDocumentModelPackageValidationSpecification(&sv.ValidationSpecification, value); err != nil {
return err
@@ -40311,6 +43281,24 @@ func awsAwsjson11_deserializeDocumentModelPackageContainerDefinition(v **types.M
return err
}
+ case "Framework":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.Framework = ptr.String(jtv)
+ }
+
+ case "FrameworkVersion":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected FrameworkVersion to be of type string, got %T instead", value)
+ }
+ sv.FrameworkVersion = ptr.String(jtv)
+ }
+
case "Image":
if value != nil {
jtv, ok := value.(string)
@@ -40338,6 +43326,20 @@ func awsAwsjson11_deserializeDocumentModelPackageContainerDefinition(v **types.M
sv.ModelDataUrl = ptr.String(jtv)
}
+ case "ModelInput":
+ if err := awsAwsjson11_deserializeDocumentModelInput(&sv.ModelInput, value); err != nil {
+ return err
+ }
+
+ case "NearestModelName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.NearestModelName = ptr.String(jtv)
+ }
+
case "ProductId":
if value != nil {
jtv, ok := value.(string)
@@ -44115,6 +47117,50 @@ func awsAwsjson11_deserializeDocumentOutputParameterList(v *[]types.OutputParame
return nil
}
+func awsAwsjson11_deserializeDocumentParallelismConfiguration(v **types.ParallelismConfiguration, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.ParallelismConfiguration
+ if *v == nil {
+ sv = &types.ParallelismConfiguration{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "MaxParallelExecutionSteps":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected MaxParallelExecutionSteps to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.MaxParallelExecutionSteps = int32(i64)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentParameter(v **types.Parameter, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -44588,6 +47634,11 @@ func awsAwsjson11_deserializeDocumentPendingProductionVariantSummary(v **types.P
sv.CurrentInstanceCount = ptr.Int32(int32(i64))
}
+ case "CurrentServerlessConfig":
+ if err := awsAwsjson11_deserializeDocumentProductionVariantServerlessConfig(&sv.CurrentServerlessConfig, value); err != nil {
+ return err
+ }
+
case "CurrentWeight":
if value != nil {
switch jtv := value.(type) {
@@ -44640,6 +47691,11 @@ func awsAwsjson11_deserializeDocumentPendingProductionVariantSummary(v **types.P
sv.DesiredInstanceCount = ptr.Int32(int32(i64))
}
+ case "DesiredServerlessConfig":
+ if err := awsAwsjson11_deserializeDocumentProductionVariantServerlessConfig(&sv.DesiredServerlessConfig, value); err != nil {
+ return err
+ }
+
case "DesiredWeight":
if value != nil {
switch jtv := value.(type) {
@@ -44740,6 +47796,110 @@ func awsAwsjson11_deserializeDocumentPendingProductionVariantSummaryList(v *[]ty
return nil
}
+func awsAwsjson11_deserializeDocumentPhase(v **types.Phase, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.Phase
+ if *v == nil {
+ sv = &types.Phase{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "DurationInSeconds":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected TrafficDurationInSeconds to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.DurationInSeconds = ptr.Int32(int32(i64))
+ }
+
+ case "InitialNumberOfUsers":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected InitialNumberOfUsers to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.InitialNumberOfUsers = ptr.Int32(int32(i64))
+ }
+
+ case "SpawnRate":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected SpawnRate to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.SpawnRate = ptr.Int32(int32(i64))
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentPhases(v *[]types.Phase, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.Phase
+ if *v == nil {
+ cv = []types.Phase{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.Phase
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentPhase(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentPipeline(v **types.Pipeline, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -44820,6 +47980,11 @@ func awsAwsjson11_deserializeDocumentPipeline(v **types.Pipeline, value interfac
}
}
+ case "ParallelismConfiguration":
+ if err := awsAwsjson11_deserializeDocumentParallelismConfiguration(&sv.ParallelismConfiguration, value); err != nil {
+ return err
+ }
+
case "PipelineArn":
if value != nil {
jtv, ok := value.(string)
@@ -44961,6 +48126,11 @@ func awsAwsjson11_deserializeDocumentPipelineExecution(v **types.PipelineExecuti
}
}
+ case "ParallelismConfiguration":
+ if err := awsAwsjson11_deserializeDocumentParallelismConfiguration(&sv.ParallelismConfiguration, value); err != nil {
+ return err
+ }
+
case "PipelineArn":
if value != nil {
jtv, ok := value.(string)
@@ -45047,6 +48217,19 @@ func awsAwsjson11_deserializeDocumentPipelineExecutionStep(v **types.PipelineExe
for key, value := range shape {
switch key {
+ case "AttemptCount":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected IntegerValue to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.AttemptCount = int32(i64)
+ }
+
case "CacheHitResult":
if err := awsAwsjson11_deserializeDocumentCacheHitResult(&sv.CacheHitResult, value); err != nil {
return err
@@ -45098,6 +48281,24 @@ func awsAwsjson11_deserializeDocumentPipelineExecutionStep(v **types.PipelineExe
}
}
+ case "StepDescription":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected StepDescription to be of type string, got %T instead", value)
+ }
+ sv.StepDescription = ptr.String(jtv)
+ }
+
+ case "StepDisplayName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected StepDisplayName to be of type string, got %T instead", value)
+ }
+ sv.StepDisplayName = ptr.String(jtv)
+ }
+
case "StepName":
if value != nil {
jtv, ok := value.(string)
@@ -45186,11 +48387,26 @@ func awsAwsjson11_deserializeDocumentPipelineExecutionStepMetadata(v **types.Pip
return err
}
+ case "ClarifyCheck":
+ if err := awsAwsjson11_deserializeDocumentClarifyCheckStepMetadata(&sv.ClarifyCheck, value); err != nil {
+ return err
+ }
+
case "Condition":
if err := awsAwsjson11_deserializeDocumentConditionStepMetadata(&sv.Condition, value); err != nil {
return err
}
+ case "EMR":
+ if err := awsAwsjson11_deserializeDocumentEMRStepMetadata(&sv.EMR, value); err != nil {
+ return err
+ }
+
+ case "Fail":
+ if err := awsAwsjson11_deserializeDocumentFailStepMetadata(&sv.Fail, value); err != nil {
+ return err
+ }
+
case "Lambda":
if err := awsAwsjson11_deserializeDocumentLambdaStepMetadata(&sv.Lambda, value); err != nil {
return err
@@ -45206,6 +48422,11 @@ func awsAwsjson11_deserializeDocumentPipelineExecutionStepMetadata(v **types.Pip
return err
}
+ case "QualityCheck":
+ if err := awsAwsjson11_deserializeDocumentQualityCheckStepMetadata(&sv.QualityCheck, value); err != nil {
+ return err
+ }
+
case "RegisterModel":
if err := awsAwsjson11_deserializeDocumentRegisterModelStepMetadata(&sv.RegisterModel, value); err != nil {
return err
@@ -45284,6 +48505,15 @@ func awsAwsjson11_deserializeDocumentPipelineExecutionSummary(v **types.Pipeline
sv.PipelineExecutionDisplayName = ptr.String(jtv)
}
+ case "PipelineExecutionFailureReason":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String3072 to be of type string, got %T instead", value)
+ }
+ sv.PipelineExecutionFailureReason = ptr.String(jtv)
+ }
+
case "PipelineExecutionStatus":
if value != nil {
jtv, ok := value.(string)
@@ -46684,6 +49914,11 @@ func awsAwsjson11_deserializeDocumentProductionVariant(v **types.ProductionVaria
sv.ModelName = ptr.String(jtv)
}
+ case "ServerlessConfig":
+ if err := awsAwsjson11_deserializeDocumentProductionVariantServerlessConfig(&sv.ServerlessConfig, value); err != nil {
+ return err
+ }
+
case "VariantName":
if value != nil {
jtv, ok := value.(string)
@@ -46785,6 +50020,63 @@ func awsAwsjson11_deserializeDocumentProductionVariantList(v *[]types.Production
return nil
}
+func awsAwsjson11_deserializeDocumentProductionVariantServerlessConfig(v **types.ProductionVariantServerlessConfig, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.ProductionVariantServerlessConfig
+ if *v == nil {
+ sv = &types.ProductionVariantServerlessConfig{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "MaxConcurrency":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected ServerlessMaxConcurrency to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.MaxConcurrency = ptr.Int32(int32(i64))
+ }
+
+ case "MemorySizeInMB":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected ServerlessMemorySizeInMB to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.MemorySizeInMB = ptr.Int32(int32(i64))
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentProductionVariantStatus(v **types.ProductionVariantStatus, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -46919,6 +50211,11 @@ func awsAwsjson11_deserializeDocumentProductionVariantSummary(v **types.Producti
sv.CurrentInstanceCount = ptr.Int32(int32(i64))
}
+ case "CurrentServerlessConfig":
+ if err := awsAwsjson11_deserializeDocumentProductionVariantServerlessConfig(&sv.CurrentServerlessConfig, value); err != nil {
+ return err
+ }
+
case "CurrentWeight":
if value != nil {
switch jtv := value.(type) {
@@ -46971,6 +50268,11 @@ func awsAwsjson11_deserializeDocumentProductionVariantSummary(v **types.Producti
sv.DesiredInstanceCount = ptr.Int32(int32(i64))
}
+ case "DesiredServerlessConfig":
+ if err := awsAwsjson11_deserializeDocumentProductionVariantServerlessConfig(&sv.DesiredServerlessConfig, value); err != nil {
+ return err
+ }
+
case "DesiredWeight":
if value != nil {
switch jtv := value.(type) {
@@ -47889,6 +51191,127 @@ func awsAwsjson11_deserializeDocumentPublicWorkforceTaskPrice(v **types.PublicWo
return nil
}
+func awsAwsjson11_deserializeDocumentQualityCheckStepMetadata(v **types.QualityCheckStepMetadata, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.QualityCheckStepMetadata
+ if *v == nil {
+ sv = &types.QualityCheckStepMetadata{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "BaselineUsedForDriftCheckConstraints":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String1024 to be of type string, got %T instead", value)
+ }
+ sv.BaselineUsedForDriftCheckConstraints = ptr.String(jtv)
+ }
+
+ case "BaselineUsedForDriftCheckStatistics":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String1024 to be of type string, got %T instead", value)
+ }
+ sv.BaselineUsedForDriftCheckStatistics = ptr.String(jtv)
+ }
+
+ case "CalculatedBaselineConstraints":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String1024 to be of type string, got %T instead", value)
+ }
+ sv.CalculatedBaselineConstraints = ptr.String(jtv)
+ }
+
+ case "CalculatedBaselineStatistics":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String1024 to be of type string, got %T instead", value)
+ }
+ sv.CalculatedBaselineStatistics = ptr.String(jtv)
+ }
+
+ case "CheckJobArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String256 to be of type string, got %T instead", value)
+ }
+ sv.CheckJobArn = ptr.String(jtv)
+ }
+
+ case "CheckType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String256 to be of type string, got %T instead", value)
+ }
+ sv.CheckType = ptr.String(jtv)
+ }
+
+ case "ModelPackageGroupName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String256 to be of type string, got %T instead", value)
+ }
+ sv.ModelPackageGroupName = ptr.String(jtv)
+ }
+
+ case "RegisterNewBaseline":
+ if value != nil {
+ jtv, ok := value.(bool)
+ if !ok {
+ return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
+ }
+ sv.RegisterNewBaseline = jtv
+ }
+
+ case "SkipCheck":
+ if value != nil {
+ jtv, ok := value.(bool)
+ if !ok {
+ return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
+ }
+ sv.SkipCheck = jtv
+ }
+
+ case "ViolationReport":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String1024 to be of type string, got %T instead", value)
+ }
+ sv.ViolationReport = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentRealtimeInferenceInstanceTypes(v *[]types.ProductionVariantInstanceType, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -47925,6 +51348,314 @@ func awsAwsjson11_deserializeDocumentRealtimeInferenceInstanceTypes(v *[]types.P
return nil
}
+func awsAwsjson11_deserializeDocumentRecommendationJobInputConfig(v **types.RecommendationJobInputConfig, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.RecommendationJobInputConfig
+ if *v == nil {
+ sv = &types.RecommendationJobInputConfig{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "EndpointConfigurations":
+ if err := awsAwsjson11_deserializeDocumentEndpointInputConfigurations(&sv.EndpointConfigurations, value); err != nil {
+ return err
+ }
+
+ case "JobDurationInSeconds":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected JobDurationInSeconds to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.JobDurationInSeconds = ptr.Int32(int32(i64))
+ }
+
+ case "ModelPackageVersionArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ModelPackageArn to be of type string, got %T instead", value)
+ }
+ sv.ModelPackageVersionArn = ptr.String(jtv)
+ }
+
+ case "ResourceLimit":
+ if err := awsAwsjson11_deserializeDocumentRecommendationJobResourceLimit(&sv.ResourceLimit, value); err != nil {
+ return err
+ }
+
+ case "TrafficPattern":
+ if err := awsAwsjson11_deserializeDocumentTrafficPattern(&sv.TrafficPattern, value); err != nil {
+ return err
+ }
+
+ case "VolumeKmsKeyId":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected KmsKeyId to be of type string, got %T instead", value)
+ }
+ sv.VolumeKmsKeyId = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentRecommendationJobResourceLimit(v **types.RecommendationJobResourceLimit, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.RecommendationJobResourceLimit
+ if *v == nil {
+ sv = &types.RecommendationJobResourceLimit{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "MaxNumberOfTests":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected MaxNumberOfTests to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.MaxNumberOfTests = ptr.Int32(int32(i64))
+ }
+
+ case "MaxParallelOfTests":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected MaxParallelOfTests to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.MaxParallelOfTests = ptr.Int32(int32(i64))
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentRecommendationJobStoppingConditions(v **types.RecommendationJobStoppingConditions, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.RecommendationJobStoppingConditions
+ if *v == nil {
+ sv = &types.RecommendationJobStoppingConditions{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "MaxInvocations":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.MaxInvocations = int32(i64)
+ }
+
+ case "ModelLatencyThresholds":
+ if err := awsAwsjson11_deserializeDocumentModelLatencyThresholds(&sv.ModelLatencyThresholds, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentRecommendationMetrics(v **types.RecommendationMetrics, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.RecommendationMetrics
+ if *v == nil {
+ sv = &types.RecommendationMetrics{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "CostPerHour":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.CostPerHour = float32(f64)
+
+ case string:
+ var f64 float64
+ switch {
+ case strings.EqualFold(jtv, "NaN"):
+ f64 = math.NaN()
+
+ case strings.EqualFold(jtv, "Infinity"):
+ f64 = math.Inf(1)
+
+ case strings.EqualFold(jtv, "-Infinity"):
+ f64 = math.Inf(-1)
+
+ default:
+ return fmt.Errorf("unknown JSON number value: %s", jtv)
+
+ }
+ sv.CostPerHour = float32(f64)
+
+ default:
+ return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "CostPerInference":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.CostPerInference = float32(f64)
+
+ case string:
+ var f64 float64
+ switch {
+ case strings.EqualFold(jtv, "NaN"):
+ f64 = math.NaN()
+
+ case strings.EqualFold(jtv, "Infinity"):
+ f64 = math.Inf(1)
+
+ case strings.EqualFold(jtv, "-Infinity"):
+ f64 = math.Inf(-1)
+
+ default:
+ return fmt.Errorf("unknown JSON number value: %s", jtv)
+
+ }
+ sv.CostPerInference = float32(f64)
+
+ default:
+ return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "MaxInvocations":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.MaxInvocations = int32(i64)
+ }
+
+ case "ModelLatency":
+ if value != nil {
+ jtv, ok := value.(json.Number)
+ if !ok {
+ return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
+ }
+ i64, err := jtv.Int64()
+ if err != nil {
+ return err
+ }
+ sv.ModelLatency = int32(i64)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentRedshiftDatasetDefinition(v **types.RedshiftDatasetDefinition, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -48671,6 +52402,16 @@ func awsAwsjson11_deserializeDocumentRSessionAppSettings(v **types.RSessionAppSe
for key, value := range shape {
switch key {
+ case "CustomImages":
+ if err := awsAwsjson11_deserializeDocumentCustomImages(&sv.CustomImages, value); err != nil {
+ return err
+ }
+
+ case "DefaultResourceSpec":
+ if err := awsAwsjson11_deserializeDocumentResourceSpec(&sv.DefaultResourceSpec, value); err != nil {
+ return err
+ }
+
default:
_, _ = key, value
@@ -50218,6 +53959,51 @@ func awsAwsjson11_deserializeDocumentTensorBoardOutputConfig(v **types.TensorBoa
return nil
}
+func awsAwsjson11_deserializeDocumentTrafficPattern(v **types.TrafficPattern, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.TrafficPattern
+ if *v == nil {
+ sv = &types.TrafficPattern{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "Phases":
+ if err := awsAwsjson11_deserializeDocumentPhases(&sv.Phases, value); err != nil {
+ return err
+ }
+
+ case "TrafficType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected TrafficType to be of type string, got %T instead", value)
+ }
+ sv.TrafficType = types.TrafficType(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentTrafficRoutingConfig(v **types.TrafficRoutingConfig, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -52165,6 +55951,15 @@ func awsAwsjson11_deserializeDocumentTrialComponent(v **types.TrialComponent, va
}
}
+ case "LineageGroupArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected LineageGroupArn to be of type string, got %T instead", value)
+ }
+ sv.LineageGroupArn = ptr.String(jtv)
+ }
+
case "MetadataProperties":
if err := awsAwsjson11_deserializeDocumentMetadataProperties(&sv.MetadataProperties, value); err != nil {
return err
@@ -53878,6 +57673,98 @@ func awsAwsjson11_deserializeDocumentUserSettings(v **types.UserSettings, value
return nil
}
+func awsAwsjson11_deserializeDocumentVertex(v **types.Vertex, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *types.Vertex
+ if *v == nil {
+ sv = &types.Vertex{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "Arn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected AssociationEntityArn to be of type string, got %T instead", value)
+ }
+ sv.Arn = ptr.String(jtv)
+ }
+
+ case "LineageType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected LineageType to be of type string, got %T instead", value)
+ }
+ sv.LineageType = types.LineageType(jtv)
+ }
+
+ case "Type":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String40 to be of type string, got %T instead", value)
+ }
+ sv.Type = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
+func awsAwsjson11_deserializeDocumentVertices(v *[]types.Vertex, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.([]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var cv []types.Vertex
+ if *v == nil {
+ cv = []types.Vertex{}
+ } else {
+ cv = *v
+ }
+
+ for _, value := range shape {
+ var col types.Vertex
+ destAddr := &col
+ if err := awsAwsjson11_deserializeDocumentVertex(&destAddr, value); err != nil {
+ return err
+ }
+ col = *destAddr
+ cv = append(cv, col)
+
+ }
+ *v = cv
+ return nil
+}
+
func awsAwsjson11_deserializeDocumentVpcConfig(v **types.VpcConfig, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -55235,6 +59122,46 @@ func awsAwsjson11_deserializeOpDocumentCreateImageVersionOutput(v **CreateImageV
return nil
}
+func awsAwsjson11_deserializeOpDocumentCreateInferenceRecommendationsJobOutput(v **CreateInferenceRecommendationsJobOutput, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *CreateInferenceRecommendationsJobOutput
+ if *v == nil {
+ sv = &CreateInferenceRecommendationsJobOutput{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "JobArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RecommendationJobArn to be of type string, got %T instead", value)
+ }
+ sv.JobArn = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeOpDocumentCreateLabelingJobOutput(v **CreateLabelingJobOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -56754,7 +60681,7 @@ func awsAwsjson11_deserializeOpDocumentDescribeActionOutput(v **DescribeActionOu
if value != nil {
jtv, ok := value.(string)
if !ok {
- return fmt.Errorf("expected ExperimentEntityName to be of type string, got %T instead", value)
+ return fmt.Errorf("expected ExperimentEntityNameOrArn to be of type string, got %T instead", value)
}
sv.ActionName = ptr.String(jtv)
}
@@ -56819,6 +60746,15 @@ func awsAwsjson11_deserializeOpDocumentDescribeActionOutput(v **DescribeActionOu
}
}
+ case "LineageGroupArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected LineageGroupArn to be of type string, got %T instead", value)
+ }
+ sv.LineageGroupArn = ptr.String(jtv)
+ }
+
case "MetadataProperties":
if err := awsAwsjson11_deserializeDocumentMetadataProperties(&sv.MetadataProperties, value); err != nil {
return err
@@ -57241,7 +61177,7 @@ func awsAwsjson11_deserializeOpDocumentDescribeArtifactOutput(v **DescribeArtifa
if value != nil {
jtv, ok := value.(string)
if !ok {
- return fmt.Errorf("expected ExperimentEntityName to be of type string, got %T instead", value)
+ return fmt.Errorf("expected ExperimentEntityNameOrArn to be of type string, got %T instead", value)
}
sv.ArtifactName = ptr.String(jtv)
}
@@ -57297,6 +61233,15 @@ func awsAwsjson11_deserializeOpDocumentDescribeArtifactOutput(v **DescribeArtifa
}
}
+ case "LineageGroupArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected LineageGroupArn to be of type string, got %T instead", value)
+ }
+ sv.LineageGroupArn = ptr.String(jtv)
+ }
+
case "MetadataProperties":
if err := awsAwsjson11_deserializeDocumentMetadataProperties(&sv.MetadataProperties, value); err != nil {
return err
@@ -57754,6 +61699,15 @@ func awsAwsjson11_deserializeOpDocumentDescribeCompilationJobOutput(v **Describe
return err
}
+ case "ModelPackageVersionArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ModelPackageArn to be of type string, got %T instead", value)
+ }
+ sv.ModelPackageVersionArn = ptr.String(jtv)
+ }
+
case "OutputConfig":
if err := awsAwsjson11_deserializeDocumentOutputConfig(&sv.OutputConfig, value); err != nil {
return err
@@ -57887,6 +61841,15 @@ func awsAwsjson11_deserializeOpDocumentDescribeContextOutput(v **DescribeContext
}
}
+ case "LineageGroupArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected LineageGroupArn to be of type string, got %T instead", value)
+ }
+ sv.LineageGroupArn = ptr.String(jtv)
+ }
+
case "Properties":
if err := awsAwsjson11_deserializeDocumentLineageEntityParameters(&sv.Properties, value); err != nil {
return err
@@ -59743,6 +63706,163 @@ func awsAwsjson11_deserializeOpDocumentDescribeImageVersionOutput(v **DescribeIm
return nil
}
+func awsAwsjson11_deserializeOpDocumentDescribeInferenceRecommendationsJobOutput(v **DescribeInferenceRecommendationsJobOutput, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *DescribeInferenceRecommendationsJobOutput
+ if *v == nil {
+ sv = &DescribeInferenceRecommendationsJobOutput{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "CompletionTime":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.CompletionTime = ptr.Time(smithytime.ParseEpochSeconds(f64))
+
+ default:
+ return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "CreationTime":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64))
+
+ default:
+ return fmt.Errorf("expected CreationTime to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "FailureReason":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected FailureReason to be of type string, got %T instead", value)
+ }
+ sv.FailureReason = ptr.String(jtv)
+ }
+
+ case "InferenceRecommendations":
+ if err := awsAwsjson11_deserializeDocumentInferenceRecommendations(&sv.InferenceRecommendations, value); err != nil {
+ return err
+ }
+
+ case "InputConfig":
+ if err := awsAwsjson11_deserializeDocumentRecommendationJobInputConfig(&sv.InputConfig, value); err != nil {
+ return err
+ }
+
+ case "JobArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RecommendationJobArn to be of type string, got %T instead", value)
+ }
+ sv.JobArn = ptr.String(jtv)
+ }
+
+ case "JobDescription":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RecommendationJobDescription to be of type string, got %T instead", value)
+ }
+ sv.JobDescription = ptr.String(jtv)
+ }
+
+ case "JobName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RecommendationJobName to be of type string, got %T instead", value)
+ }
+ sv.JobName = ptr.String(jtv)
+ }
+
+ case "JobType":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RecommendationJobType to be of type string, got %T instead", value)
+ }
+ sv.JobType = types.RecommendationJobType(jtv)
+ }
+
+ case "LastModifiedTime":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.LastModifiedTime = ptr.Time(smithytime.ParseEpochSeconds(f64))
+
+ default:
+ return fmt.Errorf("expected LastModifiedTime to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "RoleArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RoleArn to be of type string, got %T instead", value)
+ }
+ sv.RoleArn = ptr.String(jtv)
+ }
+
+ case "Status":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected RecommendationJobStatus to be of type string, got %T instead", value)
+ }
+ sv.Status = types.RecommendationJobStatus(jtv)
+ }
+
+ case "StoppingConditions":
+ if err := awsAwsjson11_deserializeDocumentRecommendationJobStoppingConditions(&sv.StoppingConditions, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeOpDocumentDescribeLabelingJobOutput(v **DescribeLabelingJobOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -59918,6 +64038,115 @@ func awsAwsjson11_deserializeOpDocumentDescribeLabelingJobOutput(v **DescribeLab
return nil
}
+func awsAwsjson11_deserializeOpDocumentDescribeLineageGroupOutput(v **DescribeLineageGroupOutput, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *DescribeLineageGroupOutput
+ if *v == nil {
+ sv = &DescribeLineageGroupOutput{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "CreatedBy":
+ if err := awsAwsjson11_deserializeDocumentUserContext(&sv.CreatedBy, value); err != nil {
+ return err
+ }
+
+ case "CreationTime":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64))
+
+ default:
+ return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "Description":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ExperimentDescription to be of type string, got %T instead", value)
+ }
+ sv.Description = ptr.String(jtv)
+ }
+
+ case "DisplayName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ExperimentEntityName to be of type string, got %T instead", value)
+ }
+ sv.DisplayName = ptr.String(jtv)
+ }
+
+ case "LastModifiedBy":
+ if err := awsAwsjson11_deserializeDocumentUserContext(&sv.LastModifiedBy, value); err != nil {
+ return err
+ }
+
+ case "LastModifiedTime":
+ if value != nil {
+ switch jtv := value.(type) {
+ case json.Number:
+ f64, err := jtv.Float64()
+ if err != nil {
+ return err
+ }
+ sv.LastModifiedTime = ptr.Time(smithytime.ParseEpochSeconds(f64))
+
+ default:
+ return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
+
+ }
+ }
+
+ case "LineageGroupArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected LineageGroupArn to be of type string, got %T instead", value)
+ }
+ sv.LineageGroupArn = ptr.String(jtv)
+ }
+
+ case "LineageGroupName":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ExperimentEntityName to be of type string, got %T instead", value)
+ }
+ sv.LineageGroupName = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeOpDocumentDescribeModelBiasJobDefinitionOutput(v **DescribeModelBiasJobDefinitionOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -60349,6 +64578,11 @@ func awsAwsjson11_deserializeOpDocumentDescribeModelPackageOutput(v **DescribeMo
for key, value := range shape {
switch key {
+ case "AdditionalInferenceSpecifications":
+ if err := awsAwsjson11_deserializeDocumentAdditionalInferenceSpecifications(&sv.AdditionalInferenceSpecifications, value); err != nil {
+ return err
+ }
+
case "ApprovalDescription":
if value != nil {
jtv, ok := value.(string)
@@ -60393,6 +64627,20 @@ func awsAwsjson11_deserializeOpDocumentDescribeModelPackageOutput(v **DescribeMo
return err
}
+ case "Domain":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.Domain = ptr.String(jtv)
+ }
+
+ case "DriftCheckBaselines":
+ if err := awsAwsjson11_deserializeDocumentDriftCheckBaselines(&sv.DriftCheckBaselines, value); err != nil {
+ return err
+ }
+
case "InferenceSpecification":
if err := awsAwsjson11_deserializeDocumentInferenceSpecification(&sv.InferenceSpecification, value); err != nil {
return err
@@ -60501,11 +64749,29 @@ func awsAwsjson11_deserializeOpDocumentDescribeModelPackageOutput(v **DescribeMo
sv.ModelPackageVersion = ptr.Int32(int32(i64))
}
+ case "SamplePayloadUrl":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.SamplePayloadUrl = ptr.String(jtv)
+ }
+
case "SourceAlgorithmSpecification":
if err := awsAwsjson11_deserializeDocumentSourceAlgorithmSpecification(&sv.SourceAlgorithmSpecification, value); err != nil {
return err
}
+ case "Task":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String to be of type string, got %T instead", value)
+ }
+ sv.Task = ptr.String(jtv)
+ }
+
case "ValidationSpecification":
if err := awsAwsjson11_deserializeDocumentModelPackageValidationSpecification(&sv.ValidationSpecification, value); err != nil {
return err
@@ -60922,6 +65188,11 @@ func awsAwsjson11_deserializeOpDocumentDescribeNotebookInstanceOutput(v **Descri
sv.FailureReason = ptr.String(jtv)
}
+ case "InstanceMetadataServiceConfiguration":
+ if err := awsAwsjson11_deserializeDocumentInstanceMetadataServiceConfiguration(&sv.InstanceMetadataServiceConfiguration, value); err != nil {
+ return err
+ }
+
case "InstanceType":
if value != nil {
jtv, ok := value.(string)
@@ -61202,6 +65473,11 @@ func awsAwsjson11_deserializeOpDocumentDescribePipelineExecutionOutput(v **Descr
}
}
+ case "ParallelismConfiguration":
+ if err := awsAwsjson11_deserializeDocumentParallelismConfiguration(&sv.ParallelismConfiguration, value); err != nil {
+ return err
+ }
+
case "PipelineArn":
if value != nil {
jtv, ok := value.(string)
@@ -61341,6 +65617,11 @@ func awsAwsjson11_deserializeOpDocumentDescribePipelineOutput(v **DescribePipeli
}
}
+ case "ParallelismConfiguration":
+ if err := awsAwsjson11_deserializeDocumentParallelismConfiguration(&sv.ParallelismConfiguration, value); err != nil {
+ return err
+ }
+
case "PipelineArn":
if value != nil {
jtv, ok := value.(string)
@@ -62541,6 +66822,15 @@ func awsAwsjson11_deserializeOpDocumentDescribeTrialComponentOutput(v **Describe
}
}
+ case "LineageGroupArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected LineageGroupArn to be of type string, got %T instead", value)
+ }
+ sv.LineageGroupArn = ptr.String(jtv)
+ }
+
case "MetadataProperties":
if err := awsAwsjson11_deserializeDocumentMetadataProperties(&sv.MetadataProperties, value); err != nil {
return err
@@ -63150,6 +67440,55 @@ func awsAwsjson11_deserializeOpDocumentGetDeviceFleetReportOutput(v **GetDeviceF
return nil
}
+func awsAwsjson11_deserializeOpDocumentGetLineageGroupPolicyOutput(v **GetLineageGroupPolicyOutput, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *GetLineageGroupPolicyOutput
+ if *v == nil {
+ sv = &GetLineageGroupPolicyOutput{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "LineageGroupArn":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected LineageGroupArn to be of type string, got %T instead", value)
+ }
+ sv.LineageGroupArn = ptr.String(jtv)
+ }
+
+ case "ResourcePolicy":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected ResourcePolicyString to be of type string, got %T instead", value)
+ }
+ sv.ResourcePolicy = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeOpDocumentGetModelPackageGroupPolicyOutput(v **GetModelPackageGroupPolicyOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -64391,6 +68730,51 @@ func awsAwsjson11_deserializeOpDocumentListImageVersionsOutput(v **ListImageVers
return nil
}
+func awsAwsjson11_deserializeOpDocumentListInferenceRecommendationsJobsOutput(v **ListInferenceRecommendationsJobsOutput, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *ListInferenceRecommendationsJobsOutput
+ if *v == nil {
+ sv = &ListInferenceRecommendationsJobsOutput{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "InferenceRecommendationsJobs":
+ if err := awsAwsjson11_deserializeDocumentInferenceRecommendationsJobs(&sv.InferenceRecommendationsJobs, value); err != nil {
+ return err
+ }
+
+ case "NextToken":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
+ }
+ sv.NextToken = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeOpDocumentListLabelingJobsForWorkteamOutput(v **ListLabelingJobsForWorkteamOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -64481,6 +68865,51 @@ func awsAwsjson11_deserializeOpDocumentListLabelingJobsOutput(v **ListLabelingJo
return nil
}
+func awsAwsjson11_deserializeOpDocumentListLineageGroupsOutput(v **ListLineageGroupsOutput, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *ListLineageGroupsOutput
+ if *v == nil {
+ sv = &ListLineageGroupsOutput{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "LineageGroupSummaries":
+ if err := awsAwsjson11_deserializeDocumentLineageGroupSummaries(&sv.LineageGroupSummaries, value); err != nil {
+ return err
+ }
+
+ case "NextToken":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
+ }
+ sv.NextToken = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeOpDocumentListModelBiasJobDefinitionsOutput(v **ListModelBiasJobDefinitionsOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -64571,6 +69000,51 @@ func awsAwsjson11_deserializeOpDocumentListModelExplainabilityJobDefinitionsOutp
return nil
}
+func awsAwsjson11_deserializeOpDocumentListModelMetadataOutput(v **ListModelMetadataOutput, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *ListModelMetadataOutput
+ if *v == nil {
+ sv = &ListModelMetadataOutput{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "ModelMetadataSummaries":
+ if err := awsAwsjson11_deserializeDocumentModelMetadataSummaries(&sv.ModelMetadataSummaries, value); err != nil {
+ return err
+ }
+
+ case "NextToken":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
+ }
+ sv.NextToken = ptr.String(jtv)
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeOpDocumentListModelPackageGroupsOutput(v **ListModelPackageGroupsOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
@@ -65736,6 +70210,56 @@ func awsAwsjson11_deserializeOpDocumentPutModelPackageGroupPolicyOutput(v **PutM
return nil
}
+func awsAwsjson11_deserializeOpDocumentQueryLineageOutput(v **QueryLineageOutput, value interface{}) error {
+ if v == nil {
+ return fmt.Errorf("unexpected nil of type %T", v)
+ }
+ if value == nil {
+ return nil
+ }
+
+ shape, ok := value.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("unexpected JSON type %v", value)
+ }
+
+ var sv *QueryLineageOutput
+ if *v == nil {
+ sv = &QueryLineageOutput{}
+ } else {
+ sv = *v
+ }
+
+ for key, value := range shape {
+ switch key {
+ case "Edges":
+ if err := awsAwsjson11_deserializeDocumentEdges(&sv.Edges, value); err != nil {
+ return err
+ }
+
+ case "NextToken":
+ if value != nil {
+ jtv, ok := value.(string)
+ if !ok {
+ return fmt.Errorf("expected String8192 to be of type string, got %T instead", value)
+ }
+ sv.NextToken = ptr.String(jtv)
+ }
+
+ case "Vertices":
+ if err := awsAwsjson11_deserializeDocumentVertices(&sv.Vertices, value); err != nil {
+ return err
+ }
+
+ default:
+ _, _ = key, value
+
+ }
+ }
+ *v = sv
+ return nil
+}
+
func awsAwsjson11_deserializeOpDocumentRenderUiTemplateOutput(v **RenderUiTemplateOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/doc.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/doc.go
index 523fa99..4b9421e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/doc.go
@@ -3,10 +3,10 @@
// Package sagemaker provides the API client, operations, and parameter types for
// Amazon SageMaker Service.
//
-// Provides APIs for creating and managing Amazon SageMaker resources. Other
-// Resources:
+// Provides APIs for creating and managing SageMaker resources. Other Resources:
//
-// * Amazon SageMaker Developer Guide
+// *
+// SageMaker Developer Guide
// (https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html#first-time-user)
//
// *
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/generated.json b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/generated.json
index e7650c9..c56b903 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/generated.json
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/generated.json
@@ -8,6 +8,7 @@
},
"files": [
"api_client.go",
+ "api_client_test.go",
"api_op_AddAssociation.go",
"api_op_AddTags.go",
"api_op_AssociateTrialComponent.go",
@@ -34,6 +35,7 @@
"api_op_CreateHyperParameterTuningJob.go",
"api_op_CreateImage.go",
"api_op_CreateImageVersion.go",
+ "api_op_CreateInferenceRecommendationsJob.go",
"api_op_CreateLabelingJob.go",
"api_op_CreateModel.go",
"api_op_CreateModelBiasJobDefinition.go",
@@ -119,7 +121,9 @@
"api_op_DescribeHyperParameterTuningJob.go",
"api_op_DescribeImage.go",
"api_op_DescribeImageVersion.go",
+ "api_op_DescribeInferenceRecommendationsJob.go",
"api_op_DescribeLabelingJob.go",
+ "api_op_DescribeLineageGroup.go",
"api_op_DescribeModel.go",
"api_op_DescribeModelBiasJobDefinition.go",
"api_op_DescribeModelExplainabilityJobDefinition.go",
@@ -147,6 +151,7 @@
"api_op_DisassociateTrialComponent.go",
"api_op_EnableSagemakerServicecatalogPortfolio.go",
"api_op_GetDeviceFleetReport.go",
+ "api_op_GetLineageGroupPolicy.go",
"api_op_GetModelPackageGroupPolicy.go",
"api_op_GetSagemakerServicecatalogPortfolioStatus.go",
"api_op_GetSearchSuggestions.go",
@@ -175,10 +180,13 @@
"api_op_ListHyperParameterTuningJobs.go",
"api_op_ListImageVersions.go",
"api_op_ListImages.go",
+ "api_op_ListInferenceRecommendationsJobs.go",
"api_op_ListLabelingJobs.go",
"api_op_ListLabelingJobsForWorkteam.go",
+ "api_op_ListLineageGroups.go",
"api_op_ListModelBiasJobDefinitions.go",
"api_op_ListModelExplainabilityJobDefinitions.go",
+ "api_op_ListModelMetadata.go",
"api_op_ListModelPackageGroups.go",
"api_op_ListModelPackages.go",
"api_op_ListModelQualityJobDefinitions.go",
@@ -205,6 +213,7 @@
"api_op_ListWorkforces.go",
"api_op_ListWorkteams.go",
"api_op_PutModelPackageGroupPolicy.go",
+ "api_op_QueryLineage.go",
"api_op_RegisterDevices.go",
"api_op_RenderUiTemplate.go",
"api_op_RetryPipelineExecution.go",
@@ -218,6 +227,7 @@
"api_op_StopCompilationJob.go",
"api_op_StopEdgePackagingJob.go",
"api_op_StopHyperParameterTuningJob.go",
+ "api_op_StopInferenceRecommendationsJob.go",
"api_op_StopLabelingJob.go",
"api_op_StopMonitoringSchedule.go",
"api_op_StopNotebookInstance.go",
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/go_module_metadata.go
index 8d10bbe..2e92052 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/go_module_metadata.go
@@ -3,4 +3,4 @@
package sagemaker
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.19.0"
+const goModuleVersion = "1.32.1"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/serializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/serializers.go
index 01c279b..131b57b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/serializers.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/serializers.go
@@ -1447,6 +1447,61 @@ func (m *awsAwsjson11_serializeOpCreateImageVersion) HandleSerialize(ctx context
return next.HandleSerialize(ctx, in)
}
+type awsAwsjson11_serializeOpCreateInferenceRecommendationsJob struct {
+}
+
+func (*awsAwsjson11_serializeOpCreateInferenceRecommendationsJob) ID() string {
+ return "OperationSerializer"
+}
+
+func (m *awsAwsjson11_serializeOpCreateInferenceRecommendationsJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
+ out middleware.SerializeOutput, metadata middleware.Metadata, err error,
+) {
+ request, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
+ }
+
+ input, ok := in.Parameters.(*CreateInferenceRecommendationsJobInput)
+ _ = input
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
+ }
+
+ operationPath := "/"
+ if len(request.Request.URL.Path) == 0 {
+ request.Request.URL.Path = operationPath
+ } else {
+ request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
+ if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
+ request.Request.URL.Path += "/"
+ }
+ }
+ request.Request.Method = "POST"
+ httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
+ if err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
+ httpBindingEncoder.SetHeader("X-Amz-Target").String("SageMaker.CreateInferenceRecommendationsJob")
+
+ jsonEncoder := smithyjson.NewEncoder()
+ if err := awsAwsjson11_serializeOpDocumentCreateInferenceRecommendationsJobInput(input, jsonEncoder.Value); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ in.Request = request
+
+ return next.HandleSerialize(ctx, in)
+}
+
type awsAwsjson11_serializeOpCreateLabelingJob struct {
}
@@ -6122,6 +6177,61 @@ func (m *awsAwsjson11_serializeOpDescribeImageVersion) HandleSerialize(ctx conte
return next.HandleSerialize(ctx, in)
}
+type awsAwsjson11_serializeOpDescribeInferenceRecommendationsJob struct {
+}
+
+func (*awsAwsjson11_serializeOpDescribeInferenceRecommendationsJob) ID() string {
+ return "OperationSerializer"
+}
+
+func (m *awsAwsjson11_serializeOpDescribeInferenceRecommendationsJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
+ out middleware.SerializeOutput, metadata middleware.Metadata, err error,
+) {
+ request, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
+ }
+
+ input, ok := in.Parameters.(*DescribeInferenceRecommendationsJobInput)
+ _ = input
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
+ }
+
+ operationPath := "/"
+ if len(request.Request.URL.Path) == 0 {
+ request.Request.URL.Path = operationPath
+ } else {
+ request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
+ if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
+ request.Request.URL.Path += "/"
+ }
+ }
+ request.Request.Method = "POST"
+ httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
+ if err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
+ httpBindingEncoder.SetHeader("X-Amz-Target").String("SageMaker.DescribeInferenceRecommendationsJob")
+
+ jsonEncoder := smithyjson.NewEncoder()
+ if err := awsAwsjson11_serializeOpDocumentDescribeInferenceRecommendationsJobInput(input, jsonEncoder.Value); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ in.Request = request
+
+ return next.HandleSerialize(ctx, in)
+}
+
type awsAwsjson11_serializeOpDescribeLabelingJob struct {
}
@@ -6177,6 +6287,61 @@ func (m *awsAwsjson11_serializeOpDescribeLabelingJob) HandleSerialize(ctx contex
return next.HandleSerialize(ctx, in)
}
+type awsAwsjson11_serializeOpDescribeLineageGroup struct {
+}
+
+func (*awsAwsjson11_serializeOpDescribeLineageGroup) ID() string {
+ return "OperationSerializer"
+}
+
+func (m *awsAwsjson11_serializeOpDescribeLineageGroup) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
+ out middleware.SerializeOutput, metadata middleware.Metadata, err error,
+) {
+ request, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
+ }
+
+ input, ok := in.Parameters.(*DescribeLineageGroupInput)
+ _ = input
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
+ }
+
+ operationPath := "/"
+ if len(request.Request.URL.Path) == 0 {
+ request.Request.URL.Path = operationPath
+ } else {
+ request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
+ if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
+ request.Request.URL.Path += "/"
+ }
+ }
+ request.Request.Method = "POST"
+ httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
+ if err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
+ httpBindingEncoder.SetHeader("X-Amz-Target").String("SageMaker.DescribeLineageGroup")
+
+ jsonEncoder := smithyjson.NewEncoder()
+ if err := awsAwsjson11_serializeOpDocumentDescribeLineageGroupInput(input, jsonEncoder.Value); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ in.Request = request
+
+ return next.HandleSerialize(ctx, in)
+}
+
type awsAwsjson11_serializeOpDescribeModel struct {
}
@@ -7662,6 +7827,61 @@ func (m *awsAwsjson11_serializeOpGetDeviceFleetReport) HandleSerialize(ctx conte
return next.HandleSerialize(ctx, in)
}
+type awsAwsjson11_serializeOpGetLineageGroupPolicy struct {
+}
+
+func (*awsAwsjson11_serializeOpGetLineageGroupPolicy) ID() string {
+ return "OperationSerializer"
+}
+
+func (m *awsAwsjson11_serializeOpGetLineageGroupPolicy) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
+ out middleware.SerializeOutput, metadata middleware.Metadata, err error,
+) {
+ request, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
+ }
+
+ input, ok := in.Parameters.(*GetLineageGroupPolicyInput)
+ _ = input
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
+ }
+
+ operationPath := "/"
+ if len(request.Request.URL.Path) == 0 {
+ request.Request.URL.Path = operationPath
+ } else {
+ request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
+ if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
+ request.Request.URL.Path += "/"
+ }
+ }
+ request.Request.Method = "POST"
+ httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
+ if err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
+ httpBindingEncoder.SetHeader("X-Amz-Target").String("SageMaker.GetLineageGroupPolicy")
+
+ jsonEncoder := smithyjson.NewEncoder()
+ if err := awsAwsjson11_serializeOpDocumentGetLineageGroupPolicyInput(input, jsonEncoder.Value); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ in.Request = request
+
+ return next.HandleSerialize(ctx, in)
+}
+
type awsAwsjson11_serializeOpGetModelPackageGroupPolicy struct {
}
@@ -9202,6 +9422,61 @@ func (m *awsAwsjson11_serializeOpListImageVersions) HandleSerialize(ctx context.
return next.HandleSerialize(ctx, in)
}
+type awsAwsjson11_serializeOpListInferenceRecommendationsJobs struct {
+}
+
+func (*awsAwsjson11_serializeOpListInferenceRecommendationsJobs) ID() string {
+ return "OperationSerializer"
+}
+
+func (m *awsAwsjson11_serializeOpListInferenceRecommendationsJobs) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
+ out middleware.SerializeOutput, metadata middleware.Metadata, err error,
+) {
+ request, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
+ }
+
+ input, ok := in.Parameters.(*ListInferenceRecommendationsJobsInput)
+ _ = input
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
+ }
+
+ operationPath := "/"
+ if len(request.Request.URL.Path) == 0 {
+ request.Request.URL.Path = operationPath
+ } else {
+ request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
+ if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
+ request.Request.URL.Path += "/"
+ }
+ }
+ request.Request.Method = "POST"
+ httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
+ if err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
+ httpBindingEncoder.SetHeader("X-Amz-Target").String("SageMaker.ListInferenceRecommendationsJobs")
+
+ jsonEncoder := smithyjson.NewEncoder()
+ if err := awsAwsjson11_serializeOpDocumentListInferenceRecommendationsJobsInput(input, jsonEncoder.Value); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ in.Request = request
+
+ return next.HandleSerialize(ctx, in)
+}
+
type awsAwsjson11_serializeOpListLabelingJobs struct {
}
@@ -9312,6 +9587,61 @@ func (m *awsAwsjson11_serializeOpListLabelingJobsForWorkteam) HandleSerialize(ct
return next.HandleSerialize(ctx, in)
}
+type awsAwsjson11_serializeOpListLineageGroups struct {
+}
+
+func (*awsAwsjson11_serializeOpListLineageGroups) ID() string {
+ return "OperationSerializer"
+}
+
+func (m *awsAwsjson11_serializeOpListLineageGroups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
+ out middleware.SerializeOutput, metadata middleware.Metadata, err error,
+) {
+ request, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
+ }
+
+ input, ok := in.Parameters.(*ListLineageGroupsInput)
+ _ = input
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
+ }
+
+ operationPath := "/"
+ if len(request.Request.URL.Path) == 0 {
+ request.Request.URL.Path = operationPath
+ } else {
+ request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
+ if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
+ request.Request.URL.Path += "/"
+ }
+ }
+ request.Request.Method = "POST"
+ httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
+ if err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
+ httpBindingEncoder.SetHeader("X-Amz-Target").String("SageMaker.ListLineageGroups")
+
+ jsonEncoder := smithyjson.NewEncoder()
+ if err := awsAwsjson11_serializeOpDocumentListLineageGroupsInput(input, jsonEncoder.Value); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ in.Request = request
+
+ return next.HandleSerialize(ctx, in)
+}
+
type awsAwsjson11_serializeOpListModelBiasJobDefinitions struct {
}
@@ -9422,6 +9752,61 @@ func (m *awsAwsjson11_serializeOpListModelExplainabilityJobDefinitions) HandleSe
return next.HandleSerialize(ctx, in)
}
+type awsAwsjson11_serializeOpListModelMetadata struct {
+}
+
+func (*awsAwsjson11_serializeOpListModelMetadata) ID() string {
+ return "OperationSerializer"
+}
+
+func (m *awsAwsjson11_serializeOpListModelMetadata) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
+ out middleware.SerializeOutput, metadata middleware.Metadata, err error,
+) {
+ request, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
+ }
+
+ input, ok := in.Parameters.(*ListModelMetadataInput)
+ _ = input
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
+ }
+
+ operationPath := "/"
+ if len(request.Request.URL.Path) == 0 {
+ request.Request.URL.Path = operationPath
+ } else {
+ request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
+ if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
+ request.Request.URL.Path += "/"
+ }
+ }
+ request.Request.Method = "POST"
+ httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
+ if err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
+ httpBindingEncoder.SetHeader("X-Amz-Target").String("SageMaker.ListModelMetadata")
+
+ jsonEncoder := smithyjson.NewEncoder()
+ if err := awsAwsjson11_serializeOpDocumentListModelMetadataInput(input, jsonEncoder.Value); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ in.Request = request
+
+ return next.HandleSerialize(ctx, in)
+}
+
type awsAwsjson11_serializeOpListModelPackageGroups struct {
}
@@ -10852,6 +11237,61 @@ func (m *awsAwsjson11_serializeOpPutModelPackageGroupPolicy) HandleSerialize(ctx
return next.HandleSerialize(ctx, in)
}
+type awsAwsjson11_serializeOpQueryLineage struct {
+}
+
+func (*awsAwsjson11_serializeOpQueryLineage) ID() string {
+ return "OperationSerializer"
+}
+
+func (m *awsAwsjson11_serializeOpQueryLineage) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
+ out middleware.SerializeOutput, metadata middleware.Metadata, err error,
+) {
+ request, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
+ }
+
+ input, ok := in.Parameters.(*QueryLineageInput)
+ _ = input
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
+ }
+
+ operationPath := "/"
+ if len(request.Request.URL.Path) == 0 {
+ request.Request.URL.Path = operationPath
+ } else {
+ request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
+ if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
+ request.Request.URL.Path += "/"
+ }
+ }
+ request.Request.Method = "POST"
+ httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
+ if err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
+ httpBindingEncoder.SetHeader("X-Amz-Target").String("SageMaker.QueryLineage")
+
+ jsonEncoder := smithyjson.NewEncoder()
+ if err := awsAwsjson11_serializeOpDocumentQueryLineageInput(input, jsonEncoder.Value); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ in.Request = request
+
+ return next.HandleSerialize(ctx, in)
+}
+
type awsAwsjson11_serializeOpRegisterDevices struct {
}
@@ -11567,6 +12007,61 @@ func (m *awsAwsjson11_serializeOpStopHyperParameterTuningJob) HandleSerialize(ct
return next.HandleSerialize(ctx, in)
}
+type awsAwsjson11_serializeOpStopInferenceRecommendationsJob struct {
+}
+
+func (*awsAwsjson11_serializeOpStopInferenceRecommendationsJob) ID() string {
+ return "OperationSerializer"
+}
+
+func (m *awsAwsjson11_serializeOpStopInferenceRecommendationsJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
+ out middleware.SerializeOutput, metadata middleware.Metadata, err error,
+) {
+ request, ok := in.Request.(*smithyhttp.Request)
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
+ }
+
+ input, ok := in.Parameters.(*StopInferenceRecommendationsJobInput)
+ _ = input
+ if !ok {
+ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
+ }
+
+ operationPath := "/"
+ if len(request.Request.URL.Path) == 0 {
+ request.Request.URL.Path = operationPath
+ } else {
+ request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
+ if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
+ request.Request.URL.Path += "/"
+ }
+ }
+ request.Request.Method = "POST"
+ httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
+ if err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
+ httpBindingEncoder.SetHeader("X-Amz-Target").String("SageMaker.StopInferenceRecommendationsJob")
+
+ jsonEncoder := smithyjson.NewEncoder()
+ if err := awsAwsjson11_serializeOpDocumentStopInferenceRecommendationsJobInput(input, jsonEncoder.Value); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+
+ if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
+ return out, metadata, &smithy.SerializationError{Err: err}
+ }
+ in.Request = request
+
+ return next.HandleSerialize(ctx, in)
+}
+
type awsAwsjson11_serializeOpStopLabelingJob struct {
}
@@ -13359,6 +13854,71 @@ func awsAwsjson11_serializeDocumentAdditionalCodeRepositoryNamesOrUrls(v []strin
return nil
}
+func awsAwsjson11_serializeDocumentAdditionalInferenceSpecificationDefinition(v *types.AdditionalInferenceSpecificationDefinition, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.Containers != nil {
+ ok := object.Key("Containers")
+ if err := awsAwsjson11_serializeDocumentModelPackageContainerDefinitionList(v.Containers, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.Description != nil {
+ ok := object.Key("Description")
+ ok.String(*v.Description)
+ }
+
+ if v.Name != nil {
+ ok := object.Key("Name")
+ ok.String(*v.Name)
+ }
+
+ if v.SupportedContentTypes != nil {
+ ok := object.Key("SupportedContentTypes")
+ if err := awsAwsjson11_serializeDocumentContentTypes(v.SupportedContentTypes, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.SupportedRealtimeInferenceInstanceTypes != nil {
+ ok := object.Key("SupportedRealtimeInferenceInstanceTypes")
+ if err := awsAwsjson11_serializeDocumentRealtimeInferenceInstanceTypes(v.SupportedRealtimeInferenceInstanceTypes, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.SupportedResponseMIMETypes != nil {
+ ok := object.Key("SupportedResponseMIMETypes")
+ if err := awsAwsjson11_serializeDocumentResponseMIMETypes(v.SupportedResponseMIMETypes, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.SupportedTransformInstanceTypes != nil {
+ ok := object.Key("SupportedTransformInstanceTypes")
+ if err := awsAwsjson11_serializeDocumentTransformInstanceTypes(v.SupportedTransformInstanceTypes, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentAdditionalInferenceSpecifications(v []types.AdditionalInferenceSpecificationDefinition, value smithyjson.Value) error {
+ array := value.Array()
+ defer array.Close()
+
+ for i := range v {
+ av := array.Value()
+ if err := awsAwsjson11_serializeDocumentAdditionalInferenceSpecificationDefinition(&v[i], av); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
func awsAwsjson11_serializeDocumentAlarm(v *types.Alarm, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -13695,15 +14255,37 @@ func awsAwsjson11_serializeDocumentAttributeNames(v []string, value smithyjson.V
return nil
}
+func awsAwsjson11_serializeDocumentAutoMLCandidateGenerationConfig(v *types.AutoMLCandidateGenerationConfig, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.FeatureSpecificationS3Uri != nil {
+ ok := object.Key("FeatureSpecificationS3Uri")
+ ok.String(*v.FeatureSpecificationS3Uri)
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentAutoMLChannel(v *types.AutoMLChannel, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
+ if len(v.ChannelType) > 0 {
+ ok := object.Key("ChannelType")
+ ok.String(string(v.ChannelType))
+ }
+
if len(v.CompressionType) > 0 {
ok := object.Key("CompressionType")
ok.String(string(v.CompressionType))
}
+ if v.ContentType != nil {
+ ok := object.Key("ContentType")
+ ok.String(*v.ContentType)
+ }
+
if v.DataSource != nil {
ok := object.Key("DataSource")
if err := awsAwsjson11_serializeDocumentAutoMLDataSource(v.DataSource, ok); err != nil {
@@ -13733,6 +14315,31 @@ func awsAwsjson11_serializeDocumentAutoMLDataSource(v *types.AutoMLDataSource, v
return nil
}
+func awsAwsjson11_serializeDocumentAutoMLDataSplitConfig(v *types.AutoMLDataSplitConfig, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.ValidationFraction != nil {
+ ok := object.Key("ValidationFraction")
+ switch {
+ case math.IsNaN(float64(*v.ValidationFraction)):
+ ok.String("NaN")
+
+ case math.IsInf(float64(*v.ValidationFraction), 1):
+ ok.String("Infinity")
+
+ case math.IsInf(float64(*v.ValidationFraction), -1):
+ ok.String("-Infinity")
+
+ default:
+ ok.Float(*v.ValidationFraction)
+
+ }
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentAutoMLInputDataConfig(v []types.AutoMLChannel, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
@@ -13772,6 +14379,13 @@ func awsAwsjson11_serializeDocumentAutoMLJobConfig(v *types.AutoMLJobConfig, val
object := value.Object()
defer object.Close()
+ if v.CandidateGenerationConfig != nil {
+ ok := object.Key("CandidateGenerationConfig")
+ if err := awsAwsjson11_serializeDocumentAutoMLCandidateGenerationConfig(v.CandidateGenerationConfig, ok); err != nil {
+ return err
+ }
+ }
+
if v.CompletionCriteria != nil {
ok := object.Key("CompletionCriteria")
if err := awsAwsjson11_serializeDocumentAutoMLJobCompletionCriteria(v.CompletionCriteria, ok); err != nil {
@@ -13779,6 +14393,13 @@ func awsAwsjson11_serializeDocumentAutoMLJobConfig(v *types.AutoMLJobConfig, val
}
}
+ if v.DataSplitConfig != nil {
+ ok := object.Key("DataSplitConfig")
+ if err := awsAwsjson11_serializeDocumentAutoMLDataSplitConfig(v.DataSplitConfig, ok); err != nil {
+ return err
+ }
+ }
+
if v.SecurityConfig != nil {
ok := object.Key("SecurityConfig")
if err := awsAwsjson11_serializeDocumentAutoMLSecurityConfig(v.SecurityConfig, ok); err != nil {
@@ -13877,6 +14498,20 @@ func awsAwsjson11_serializeDocumentBias(v *types.Bias, value smithyjson.Value) e
object := value.Object()
defer object.Close()
+ if v.PostTrainingReport != nil {
+ ok := object.Key("PostTrainingReport")
+ if err := awsAwsjson11_serializeDocumentMetricsSource(v.PostTrainingReport, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.PreTrainingReport != nil {
+ ok := object.Key("PreTrainingReport")
+ if err := awsAwsjson11_serializeDocumentMetricsSource(v.PreTrainingReport, ok); err != nil {
+ return err
+ }
+ }
+
if v.Report != nil {
ok := object.Key("Report")
if err := awsAwsjson11_serializeDocumentMetricsSource(v.Report, ok); err != nil {
@@ -13974,6 +14609,25 @@ func awsAwsjson11_serializeDocumentCaptureOptionList(v []types.CaptureOption, va
return nil
}
+func awsAwsjson11_serializeDocumentCategoricalParameter(v *types.CategoricalParameter, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.Name != nil {
+ ok := object.Key("Name")
+ ok.String(*v.Name)
+ }
+
+ if v.Value != nil {
+ ok := object.Key("Value")
+ if err := awsAwsjson11_serializeDocumentCategoricalParameterRangeValues(v.Value, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentCategoricalParameterRange(v *types.CategoricalParameterRange, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -14020,6 +14674,30 @@ func awsAwsjson11_serializeDocumentCategoricalParameterRangeSpecification(v *typ
return nil
}
+func awsAwsjson11_serializeDocumentCategoricalParameterRangeValues(v []string, value smithyjson.Value) error {
+ array := value.Array()
+ defer array.Close()
+
+ for i := range v {
+ av := array.Value()
+ av.String(v[i])
+ }
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentCategoricalParameters(v []types.CategoricalParameter, value smithyjson.Value) error {
+ array := value.Array()
+ defer array.Close()
+
+ for i := range v {
+ av := array.Value()
+ if err := awsAwsjson11_serializeDocumentCategoricalParameter(&v[i], av); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
func awsAwsjson11_serializeDocumentChannel(v *types.Channel, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -14282,6 +14960,11 @@ func awsAwsjson11_serializeDocumentContainerDefinition(v *types.ContainerDefinit
}
}
+ if v.InferenceSpecificationName != nil {
+ ok := object.Key("InferenceSpecificationName")
+ ok.String(*v.InferenceSpecificationName)
+ }
+
if len(v.Mode) > 0 {
ok := object.Key("Mode")
ok.String(string(v.Mode))
@@ -14974,6 +15657,132 @@ func awsAwsjson11_serializeDocumentDomainSettingsForUpdate(v *types.DomainSettin
return nil
}
+func awsAwsjson11_serializeDocumentDriftCheckBaselines(v *types.DriftCheckBaselines, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.Bias != nil {
+ ok := object.Key("Bias")
+ if err := awsAwsjson11_serializeDocumentDriftCheckBias(v.Bias, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.Explainability != nil {
+ ok := object.Key("Explainability")
+ if err := awsAwsjson11_serializeDocumentDriftCheckExplainability(v.Explainability, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.ModelDataQuality != nil {
+ ok := object.Key("ModelDataQuality")
+ if err := awsAwsjson11_serializeDocumentDriftCheckModelDataQuality(v.ModelDataQuality, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.ModelQuality != nil {
+ ok := object.Key("ModelQuality")
+ if err := awsAwsjson11_serializeDocumentDriftCheckModelQuality(v.ModelQuality, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentDriftCheckBias(v *types.DriftCheckBias, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.ConfigFile != nil {
+ ok := object.Key("ConfigFile")
+ if err := awsAwsjson11_serializeDocumentFileSource(v.ConfigFile, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.PostTrainingConstraints != nil {
+ ok := object.Key("PostTrainingConstraints")
+ if err := awsAwsjson11_serializeDocumentMetricsSource(v.PostTrainingConstraints, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.PreTrainingConstraints != nil {
+ ok := object.Key("PreTrainingConstraints")
+ if err := awsAwsjson11_serializeDocumentMetricsSource(v.PreTrainingConstraints, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentDriftCheckExplainability(v *types.DriftCheckExplainability, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.ConfigFile != nil {
+ ok := object.Key("ConfigFile")
+ if err := awsAwsjson11_serializeDocumentFileSource(v.ConfigFile, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.Constraints != nil {
+ ok := object.Key("Constraints")
+ if err := awsAwsjson11_serializeDocumentMetricsSource(v.Constraints, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentDriftCheckModelDataQuality(v *types.DriftCheckModelDataQuality, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.Constraints != nil {
+ ok := object.Key("Constraints")
+ if err := awsAwsjson11_serializeDocumentMetricsSource(v.Constraints, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.Statistics != nil {
+ ok := object.Key("Statistics")
+ if err := awsAwsjson11_serializeDocumentMetricsSource(v.Statistics, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentDriftCheckModelQuality(v *types.DriftCheckModelQuality, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.Constraints != nil {
+ ok := object.Key("Constraints")
+ if err := awsAwsjson11_serializeDocumentMetricsSource(v.Constraints, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.Statistics != nil {
+ ok := object.Key("Statistics")
+ if err := awsAwsjson11_serializeDocumentMetricsSource(v.Statistics, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentEdgeOutputConfig(v *types.EdgeOutputConfig, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -15071,6 +15880,43 @@ func awsAwsjson11_serializeDocumentEndpointInput(v *types.EndpointInput, value s
return nil
}
+func awsAwsjson11_serializeDocumentEndpointInputConfiguration(v *types.EndpointInputConfiguration, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.EnvironmentParameterRanges != nil {
+ ok := object.Key("EnvironmentParameterRanges")
+ if err := awsAwsjson11_serializeDocumentEnvironmentParameterRanges(v.EnvironmentParameterRanges, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.InferenceSpecificationName != nil {
+ ok := object.Key("InferenceSpecificationName")
+ ok.String(*v.InferenceSpecificationName)
+ }
+
+ if len(v.InstanceType) > 0 {
+ ok := object.Key("InstanceType")
+ ok.String(string(v.InstanceType))
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentEndpointInputConfigurations(v []types.EndpointInputConfiguration, value smithyjson.Value) error {
+ array := value.Array()
+ defer array.Close()
+
+ for i := range v {
+ av := array.Value()
+ if err := awsAwsjson11_serializeDocumentEndpointInputConfiguration(&v[i], av); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
func awsAwsjson11_serializeDocumentEnvironmentMap(v map[string]string, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -15082,6 +15928,20 @@ func awsAwsjson11_serializeDocumentEnvironmentMap(v map[string]string, value smi
return nil
}
+func awsAwsjson11_serializeDocumentEnvironmentParameterRanges(v *types.EnvironmentParameterRanges, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.CategoricalParameterRanges != nil {
+ ok := object.Key("CategoricalParameterRanges")
+ if err := awsAwsjson11_serializeDocumentCategoricalParameters(v.CategoricalParameterRanges, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentExperimentConfig(v *types.ExperimentConfig, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -15148,6 +16008,28 @@ func awsAwsjson11_serializeDocumentFeatureDefinitions(v []types.FeatureDefinitio
return nil
}
+func awsAwsjson11_serializeDocumentFileSource(v *types.FileSource, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.ContentDigest != nil {
+ ok := object.Key("ContentDigest")
+ ok.String(*v.ContentDigest)
+ }
+
+ if v.ContentType != nil {
+ ok := object.Key("ContentType")
+ ok.String(*v.ContentType)
+ }
+
+ if v.S3Uri != nil {
+ ok := object.Key("S3Uri")
+ ok.String(*v.S3Uri)
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentFileSystemConfig(v *types.FileSystemConfig, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -15933,6 +16815,18 @@ func awsAwsjson11_serializeDocumentInputModes(v []types.TrainingInputMode, value
return nil
}
+func awsAwsjson11_serializeDocumentInstanceMetadataServiceConfiguration(v *types.InstanceMetadataServiceConfiguration, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.MinimumInstanceMetadataServiceVersion != nil {
+ ok := object.Key("MinimumInstanceMetadataServiceVersion")
+ ok.String(*v.MinimumInstanceMetadataServiceVersion)
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentIntegerParameterRange(v *types.IntegerParameterRange, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -16589,6 +17483,92 @@ func awsAwsjson11_serializeDocumentModelExplainabilityJobInput(v *types.ModelExp
return nil
}
+func awsAwsjson11_serializeDocumentModelInput(v *types.ModelInput, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.DataInputConfig != nil {
+ ok := object.Key("DataInputConfig")
+ ok.String(*v.DataInputConfig)
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentModelLatencyThreshold(v *types.ModelLatencyThreshold, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.Percentile != nil {
+ ok := object.Key("Percentile")
+ ok.String(*v.Percentile)
+ }
+
+ if v.ValueInMilliseconds != 0 {
+ ok := object.Key("ValueInMilliseconds")
+ ok.Integer(v.ValueInMilliseconds)
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentModelLatencyThresholds(v []types.ModelLatencyThreshold, value smithyjson.Value) error {
+ array := value.Array()
+ defer array.Close()
+
+ for i := range v {
+ av := array.Value()
+ if err := awsAwsjson11_serializeDocumentModelLatencyThreshold(&v[i], av); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentModelMetadataFilter(v *types.ModelMetadataFilter, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if len(v.Name) > 0 {
+ ok := object.Key("Name")
+ ok.String(string(v.Name))
+ }
+
+ if v.Value != nil {
+ ok := object.Key("Value")
+ ok.String(*v.Value)
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentModelMetadataFilters(v []types.ModelMetadataFilter, value smithyjson.Value) error {
+ array := value.Array()
+ defer array.Close()
+
+ for i := range v {
+ av := array.Value()
+ if err := awsAwsjson11_serializeDocumentModelMetadataFilter(&v[i], av); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentModelMetadataSearchExpression(v *types.ModelMetadataSearchExpression, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.Filters != nil {
+ ok := object.Key("Filters")
+ if err := awsAwsjson11_serializeDocumentModelMetadataFilters(v.Filters, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentModelMetrics(v *types.ModelMetrics, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -16651,6 +17631,16 @@ func awsAwsjson11_serializeDocumentModelPackageContainerDefinition(v *types.Mode
}
}
+ if v.Framework != nil {
+ ok := object.Key("Framework")
+ ok.String(*v.Framework)
+ }
+
+ if v.FrameworkVersion != nil {
+ ok := object.Key("FrameworkVersion")
+ ok.String(*v.FrameworkVersion)
+ }
+
if v.Image != nil {
ok := object.Key("Image")
ok.String(*v.Image)
@@ -16666,6 +17656,18 @@ func awsAwsjson11_serializeDocumentModelPackageContainerDefinition(v *types.Mode
ok.String(*v.ModelDataUrl)
}
+ if v.ModelInput != nil {
+ ok := object.Key("ModelInput")
+ if err := awsAwsjson11_serializeDocumentModelInput(v.ModelInput, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.NearestModelName != nil {
+ ok := object.Key("NearestModelName")
+ ok.String(*v.NearestModelName)
+ }
+
if v.ProductId != nil {
ok := object.Key("ProductId")
ok.String(*v.ProductId)
@@ -17596,6 +18598,18 @@ func awsAwsjson11_serializeDocumentOutputParameterList(v []types.OutputParameter
return nil
}
+func awsAwsjson11_serializeDocumentParallelismConfiguration(v *types.ParallelismConfiguration, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ {
+ ok := object.Key("MaxParallelExecutionSteps")
+ ok.Integer(v.MaxParallelExecutionSteps)
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentParameter(v *types.Parameter, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -17718,6 +18732,63 @@ func awsAwsjson11_serializeDocumentParentHyperParameterTuningJobs(v []types.Pare
return nil
}
+func awsAwsjson11_serializeDocumentPhase(v *types.Phase, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.DurationInSeconds != nil {
+ ok := object.Key("DurationInSeconds")
+ ok.Integer(*v.DurationInSeconds)
+ }
+
+ if v.InitialNumberOfUsers != nil {
+ ok := object.Key("InitialNumberOfUsers")
+ ok.Integer(*v.InitialNumberOfUsers)
+ }
+
+ if v.SpawnRate != nil {
+ ok := object.Key("SpawnRate")
+ ok.Integer(*v.SpawnRate)
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentPhases(v []types.Phase, value smithyjson.Value) error {
+ array := value.Array()
+ defer array.Close()
+
+ for i := range v {
+ av := array.Value()
+ if err := awsAwsjson11_serializeDocumentPhase(&v[i], av); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentPipelineDefinitionS3Location(v *types.PipelineDefinitionS3Location, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.Bucket != nil {
+ ok := object.Key("Bucket")
+ ok.String(*v.Bucket)
+ }
+
+ if v.ObjectKey != nil {
+ ok := object.Key("ObjectKey")
+ ok.String(*v.ObjectKey)
+ }
+
+ if v.VersionId != nil {
+ ok := object.Key("VersionId")
+ ok.String(*v.VersionId)
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentProcessingClusterConfig(v *types.ProcessingClusterConfig, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -18009,6 +19080,13 @@ func awsAwsjson11_serializeDocumentProductionVariant(v *types.ProductionVariant,
ok.String(*v.ModelName)
}
+ if v.ServerlessConfig != nil {
+ ok := object.Key("ServerlessConfig")
+ if err := awsAwsjson11_serializeDocumentProductionVariantServerlessConfig(v.ServerlessConfig, ok); err != nil {
+ return err
+ }
+ }
+
if v.VariantName != nil {
ok := object.Key("VariantName")
ok.String(*v.VariantName)
@@ -18047,6 +19125,23 @@ func awsAwsjson11_serializeDocumentProductionVariantList(v []types.ProductionVar
return nil
}
+func awsAwsjson11_serializeDocumentProductionVariantServerlessConfig(v *types.ProductionVariantServerlessConfig, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.MaxConcurrency != nil {
+ ok := object.Key("MaxConcurrency")
+ ok.Integer(*v.MaxConcurrency)
+ }
+
+ if v.MemorySizeInMB != nil {
+ ok := object.Key("MemorySizeInMB")
+ ok.Integer(*v.MemorySizeInMB)
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentProfilerConfig(v *types.ProfilerConfig, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -18224,6 +19319,98 @@ func awsAwsjson11_serializeDocumentPublicWorkforceTaskPrice(v *types.PublicWorkf
return nil
}
+func awsAwsjson11_serializeDocumentQueryFilters(v *types.QueryFilters, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.CreatedAfter != nil {
+ ok := object.Key("CreatedAfter")
+ ok.Double(smithytime.FormatEpochSeconds(*v.CreatedAfter))
+ }
+
+ if v.CreatedBefore != nil {
+ ok := object.Key("CreatedBefore")
+ ok.Double(smithytime.FormatEpochSeconds(*v.CreatedBefore))
+ }
+
+ if v.LineageTypes != nil {
+ ok := object.Key("LineageTypes")
+ if err := awsAwsjson11_serializeDocumentQueryLineageTypes(v.LineageTypes, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.ModifiedAfter != nil {
+ ok := object.Key("ModifiedAfter")
+ ok.Double(smithytime.FormatEpochSeconds(*v.ModifiedAfter))
+ }
+
+ if v.ModifiedBefore != nil {
+ ok := object.Key("ModifiedBefore")
+ ok.Double(smithytime.FormatEpochSeconds(*v.ModifiedBefore))
+ }
+
+ if v.Properties != nil {
+ ok := object.Key("Properties")
+ if err := awsAwsjson11_serializeDocumentQueryProperties(v.Properties, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.Types != nil {
+ ok := object.Key("Types")
+ if err := awsAwsjson11_serializeDocumentQueryTypes(v.Types, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentQueryLineageStartArns(v []string, value smithyjson.Value) error {
+ array := value.Array()
+ defer array.Close()
+
+ for i := range v {
+ av := array.Value()
+ av.String(v[i])
+ }
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentQueryLineageTypes(v []types.LineageType, value smithyjson.Value) error {
+ array := value.Array()
+ defer array.Close()
+
+ for i := range v {
+ av := array.Value()
+ av.String(string(v[i]))
+ }
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentQueryProperties(v map[string]string, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ for key := range v {
+ om := object.Key(key)
+ om.String(v[key])
+ }
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentQueryTypes(v []string, value smithyjson.Value) error {
+ array := value.Array()
+ defer array.Close()
+
+ for i := range v {
+ av := array.Value()
+ av.String(v[i])
+ }
+ return nil
+}
+
func awsAwsjson11_serializeDocumentRealtimeInferenceInstanceTypes(v []types.ProductionVariantInstanceType, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
@@ -18235,6 +19422,116 @@ func awsAwsjson11_serializeDocumentRealtimeInferenceInstanceTypes(v []types.Prod
return nil
}
+func awsAwsjson11_serializeDocumentRecommendationJobCompiledOutputConfig(v *types.RecommendationJobCompiledOutputConfig, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.S3OutputUri != nil {
+ ok := object.Key("S3OutputUri")
+ ok.String(*v.S3OutputUri)
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentRecommendationJobInputConfig(v *types.RecommendationJobInputConfig, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.EndpointConfigurations != nil {
+ ok := object.Key("EndpointConfigurations")
+ if err := awsAwsjson11_serializeDocumentEndpointInputConfigurations(v.EndpointConfigurations, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.JobDurationInSeconds != nil {
+ ok := object.Key("JobDurationInSeconds")
+ ok.Integer(*v.JobDurationInSeconds)
+ }
+
+ if v.ModelPackageVersionArn != nil {
+ ok := object.Key("ModelPackageVersionArn")
+ ok.String(*v.ModelPackageVersionArn)
+ }
+
+ if v.ResourceLimit != nil {
+ ok := object.Key("ResourceLimit")
+ if err := awsAwsjson11_serializeDocumentRecommendationJobResourceLimit(v.ResourceLimit, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.TrafficPattern != nil {
+ ok := object.Key("TrafficPattern")
+ if err := awsAwsjson11_serializeDocumentTrafficPattern(v.TrafficPattern, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.VolumeKmsKeyId != nil {
+ ok := object.Key("VolumeKmsKeyId")
+ ok.String(*v.VolumeKmsKeyId)
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentRecommendationJobOutputConfig(v *types.RecommendationJobOutputConfig, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.CompiledOutputConfig != nil {
+ ok := object.Key("CompiledOutputConfig")
+ if err := awsAwsjson11_serializeDocumentRecommendationJobCompiledOutputConfig(v.CompiledOutputConfig, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.KmsKeyId != nil {
+ ok := object.Key("KmsKeyId")
+ ok.String(*v.KmsKeyId)
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentRecommendationJobResourceLimit(v *types.RecommendationJobResourceLimit, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.MaxNumberOfTests != nil {
+ ok := object.Key("MaxNumberOfTests")
+ ok.Integer(*v.MaxNumberOfTests)
+ }
+
+ if v.MaxParallelOfTests != nil {
+ ok := object.Key("MaxParallelOfTests")
+ ok.Integer(*v.MaxParallelOfTests)
+ }
+
+ return nil
+}
+
+func awsAwsjson11_serializeDocumentRecommendationJobStoppingConditions(v *types.RecommendationJobStoppingConditions, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.MaxInvocations != 0 {
+ ok := object.Key("MaxInvocations")
+ ok.Integer(v.MaxInvocations)
+ }
+
+ if v.ModelLatencyThresholds != nil {
+ ok := object.Key("ModelLatencyThresholds")
+ if err := awsAwsjson11_serializeDocumentModelLatencyThresholds(v.ModelLatencyThresholds, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentRedshiftDatasetDefinition(v *types.RedshiftDatasetDefinition, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -18421,6 +19718,20 @@ func awsAwsjson11_serializeDocumentRSessionAppSettings(v *types.RSessionAppSetti
object := value.Object()
defer object.Close()
+ if v.CustomImages != nil {
+ ok := object.Key("CustomImages")
+ if err := awsAwsjson11_serializeDocumentCustomImages(v.CustomImages, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.DefaultResourceSpec != nil {
+ ok := object.Key("DefaultResourceSpec")
+ if err := awsAwsjson11_serializeDocumentResourceSpec(v.DefaultResourceSpec, ok); err != nil {
+ return err
+ }
+ }
+
return nil
}
@@ -18907,6 +20218,25 @@ func awsAwsjson11_serializeDocumentTensorBoardOutputConfig(v *types.TensorBoardO
return nil
}
+func awsAwsjson11_serializeDocumentTrafficPattern(v *types.TrafficPattern, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.Phases != nil {
+ ok := object.Key("Phases")
+ if err := awsAwsjson11_serializeDocumentPhases(v.Phases, ok); err != nil {
+ return err
+ }
+ }
+
+ if len(v.TrafficType) > 0 {
+ ok := object.Key("TrafficType")
+ ok.String(string(v.TrafficType))
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeDocumentTrafficRoutingConfig(v *types.TrafficRoutingConfig, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -19936,6 +21266,11 @@ func awsAwsjson11_serializeOpDocumentCreateCompilationJobInput(v *CreateCompilat
}
}
+ if v.ModelPackageVersionArn != nil {
+ ok := object.Key("ModelPackageVersionArn")
+ ok.String(*v.ModelPackageVersionArn)
+ }
+
if v.OutputConfig != nil {
ok := object.Key("OutputConfig")
if err := awsAwsjson11_serializeDocumentOutputConfig(v.OutputConfig, ok); err != nil {
@@ -20596,6 +21931,61 @@ func awsAwsjson11_serializeOpDocumentCreateImageVersionInput(v *CreateImageVersi
return nil
}
+func awsAwsjson11_serializeOpDocumentCreateInferenceRecommendationsJobInput(v *CreateInferenceRecommendationsJobInput, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.InputConfig != nil {
+ ok := object.Key("InputConfig")
+ if err := awsAwsjson11_serializeDocumentRecommendationJobInputConfig(v.InputConfig, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.JobDescription != nil {
+ ok := object.Key("JobDescription")
+ ok.String(*v.JobDescription)
+ }
+
+ if v.JobName != nil {
+ ok := object.Key("JobName")
+ ok.String(*v.JobName)
+ }
+
+ if len(v.JobType) > 0 {
+ ok := object.Key("JobType")
+ ok.String(string(v.JobType))
+ }
+
+ if v.OutputConfig != nil {
+ ok := object.Key("OutputConfig")
+ if err := awsAwsjson11_serializeDocumentRecommendationJobOutputConfig(v.OutputConfig, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.RoleArn != nil {
+ ok := object.Key("RoleArn")
+ ok.String(*v.RoleArn)
+ }
+
+ if v.StoppingConditions != nil {
+ ok := object.Key("StoppingConditions")
+ if err := awsAwsjson11_serializeDocumentRecommendationJobStoppingConditions(v.StoppingConditions, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.Tags != nil {
+ ok := object.Key("Tags")
+ if err := awsAwsjson11_serializeDocumentTagList(v.Tags, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeOpDocumentCreateLabelingJobInput(v *CreateLabelingJobInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -20896,6 +22286,13 @@ func awsAwsjson11_serializeOpDocumentCreateModelPackageInput(v *CreateModelPacka
object := value.Object()
defer object.Close()
+ if v.AdditionalInferenceSpecifications != nil {
+ ok := object.Key("AdditionalInferenceSpecifications")
+ if err := awsAwsjson11_serializeDocumentAdditionalInferenceSpecifications(v.AdditionalInferenceSpecifications, ok); err != nil {
+ return err
+ }
+ }
+
if v.CertifyForMarketplace {
ok := object.Key("CertifyForMarketplace")
ok.Boolean(v.CertifyForMarketplace)
@@ -20913,6 +22310,18 @@ func awsAwsjson11_serializeOpDocumentCreateModelPackageInput(v *CreateModelPacka
}
}
+ if v.Domain != nil {
+ ok := object.Key("Domain")
+ ok.String(*v.Domain)
+ }
+
+ if v.DriftCheckBaselines != nil {
+ ok := object.Key("DriftCheckBaselines")
+ if err := awsAwsjson11_serializeDocumentDriftCheckBaselines(v.DriftCheckBaselines, ok); err != nil {
+ return err
+ }
+ }
+
if v.InferenceSpecification != nil {
ok := object.Key("InferenceSpecification")
if err := awsAwsjson11_serializeDocumentInferenceSpecification(v.InferenceSpecification, ok); err != nil {
@@ -20954,6 +22363,11 @@ func awsAwsjson11_serializeOpDocumentCreateModelPackageInput(v *CreateModelPacka
ok.String(*v.ModelPackageName)
}
+ if v.SamplePayloadUrl != nil {
+ ok := object.Key("SamplePayloadUrl")
+ ok.String(*v.SamplePayloadUrl)
+ }
+
if v.SourceAlgorithmSpecification != nil {
ok := object.Key("SourceAlgorithmSpecification")
if err := awsAwsjson11_serializeDocumentSourceAlgorithmSpecification(v.SourceAlgorithmSpecification, ok); err != nil {
@@ -20968,6 +22382,11 @@ func awsAwsjson11_serializeOpDocumentCreateModelPackageInput(v *CreateModelPacka
}
}
+ if v.Task != nil {
+ ok := object.Key("Task")
+ ok.String(*v.Task)
+ }
+
if v.ValidationSpecification != nil {
ok := object.Key("ValidationSpecification")
if err := awsAwsjson11_serializeDocumentModelPackageValidationSpecification(v.ValidationSpecification, ok); err != nil {
@@ -21105,6 +22524,13 @@ func awsAwsjson11_serializeOpDocumentCreateNotebookInstanceInput(v *CreateNotebo
ok.String(string(v.DirectInternetAccess))
}
+ if v.InstanceMetadataServiceConfiguration != nil {
+ ok := object.Key("InstanceMetadataServiceConfiguration")
+ if err := awsAwsjson11_serializeDocumentInstanceMetadataServiceConfiguration(v.InstanceMetadataServiceConfiguration, ok); err != nil {
+ return err
+ }
+ }
+
if len(v.InstanceType) > 0 {
ok := object.Key("InstanceType")
ok.String(string(v.InstanceType))
@@ -21202,11 +22628,25 @@ func awsAwsjson11_serializeOpDocumentCreatePipelineInput(v *CreatePipelineInput,
ok.String(*v.ClientRequestToken)
}
+ if v.ParallelismConfiguration != nil {
+ ok := object.Key("ParallelismConfiguration")
+ if err := awsAwsjson11_serializeDocumentParallelismConfiguration(v.ParallelismConfiguration, ok); err != nil {
+ return err
+ }
+ }
+
if v.PipelineDefinition != nil {
ok := object.Key("PipelineDefinition")
ok.String(*v.PipelineDefinition)
}
+ if v.PipelineDefinitionS3Location != nil {
+ ok := object.Key("PipelineDefinitionS3Location")
+ if err := awsAwsjson11_serializeDocumentPipelineDefinitionS3Location(v.PipelineDefinitionS3Location, ok); err != nil {
+ return err
+ }
+ }
+
if v.PipelineDescription != nil {
ok := object.Key("PipelineDescription")
ok.String(*v.PipelineDescription)
@@ -22731,6 +24171,18 @@ func awsAwsjson11_serializeOpDocumentDescribeImageVersionInput(v *DescribeImageV
return nil
}
+func awsAwsjson11_serializeOpDocumentDescribeInferenceRecommendationsJobInput(v *DescribeInferenceRecommendationsJobInput, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.JobName != nil {
+ ok := object.Key("JobName")
+ ok.String(*v.JobName)
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeOpDocumentDescribeLabelingJobInput(v *DescribeLabelingJobInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -22743,6 +24195,18 @@ func awsAwsjson11_serializeOpDocumentDescribeLabelingJobInput(v *DescribeLabelin
return nil
}
+func awsAwsjson11_serializeOpDocumentDescribeLineageGroupInput(v *DescribeLineageGroupInput, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.LineageGroupName != nil {
+ ok := object.Key("LineageGroupName")
+ ok.String(*v.LineageGroupName)
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeOpDocumentDescribeModelBiasJobDefinitionInput(v *DescribeModelBiasJobDefinitionInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -23067,6 +24531,18 @@ func awsAwsjson11_serializeOpDocumentGetDeviceFleetReportInput(v *GetDeviceFleet
return nil
}
+func awsAwsjson11_serializeOpDocumentGetLineageGroupPolicyInput(v *GetLineageGroupPolicyInput, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.LineageGroupName != nil {
+ ok := object.Key("LineageGroupName")
+ ok.String(*v.LineageGroupName)
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeOpDocumentGetModelPackageGroupPolicyInput(v *GetModelPackageGroupPolicyInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -24270,6 +25746,63 @@ func awsAwsjson11_serializeOpDocumentListImageVersionsInput(v *ListImageVersions
return nil
}
+func awsAwsjson11_serializeOpDocumentListInferenceRecommendationsJobsInput(v *ListInferenceRecommendationsJobsInput, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.CreationTimeAfter != nil {
+ ok := object.Key("CreationTimeAfter")
+ ok.Double(smithytime.FormatEpochSeconds(*v.CreationTimeAfter))
+ }
+
+ if v.CreationTimeBefore != nil {
+ ok := object.Key("CreationTimeBefore")
+ ok.Double(smithytime.FormatEpochSeconds(*v.CreationTimeBefore))
+ }
+
+ if v.LastModifiedTimeAfter != nil {
+ ok := object.Key("LastModifiedTimeAfter")
+ ok.Double(smithytime.FormatEpochSeconds(*v.LastModifiedTimeAfter))
+ }
+
+ if v.LastModifiedTimeBefore != nil {
+ ok := object.Key("LastModifiedTimeBefore")
+ ok.Double(smithytime.FormatEpochSeconds(*v.LastModifiedTimeBefore))
+ }
+
+ if v.MaxResults != nil {
+ ok := object.Key("MaxResults")
+ ok.Integer(*v.MaxResults)
+ }
+
+ if v.NameContains != nil {
+ ok := object.Key("NameContains")
+ ok.String(*v.NameContains)
+ }
+
+ if v.NextToken != nil {
+ ok := object.Key("NextToken")
+ ok.String(*v.NextToken)
+ }
+
+ if len(v.SortBy) > 0 {
+ ok := object.Key("SortBy")
+ ok.String(string(v.SortBy))
+ }
+
+ if len(v.SortOrder) > 0 {
+ ok := object.Key("SortOrder")
+ ok.String(string(v.SortOrder))
+ }
+
+ if len(v.StatusEquals) > 0 {
+ ok := object.Key("StatusEquals")
+ ok.String(string(v.StatusEquals))
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeOpDocumentListLabelingJobsForWorkteamInput(v *ListLabelingJobsForWorkteamInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -24374,6 +25907,43 @@ func awsAwsjson11_serializeOpDocumentListLabelingJobsInput(v *ListLabelingJobsIn
return nil
}
+func awsAwsjson11_serializeOpDocumentListLineageGroupsInput(v *ListLineageGroupsInput, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.CreatedAfter != nil {
+ ok := object.Key("CreatedAfter")
+ ok.Double(smithytime.FormatEpochSeconds(*v.CreatedAfter))
+ }
+
+ if v.CreatedBefore != nil {
+ ok := object.Key("CreatedBefore")
+ ok.Double(smithytime.FormatEpochSeconds(*v.CreatedBefore))
+ }
+
+ if v.MaxResults != nil {
+ ok := object.Key("MaxResults")
+ ok.Integer(*v.MaxResults)
+ }
+
+ if v.NextToken != nil {
+ ok := object.Key("NextToken")
+ ok.String(*v.NextToken)
+ }
+
+ if len(v.SortBy) > 0 {
+ ok := object.Key("SortBy")
+ ok.String(string(v.SortBy))
+ }
+
+ if len(v.SortOrder) > 0 {
+ ok := object.Key("SortOrder")
+ ok.String(string(v.SortOrder))
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeOpDocumentListModelBiasJobDefinitionsInput(v *ListModelBiasJobDefinitionsInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -24468,6 +26038,30 @@ func awsAwsjson11_serializeOpDocumentListModelExplainabilityJobDefinitionsInput(
return nil
}
+func awsAwsjson11_serializeOpDocumentListModelMetadataInput(v *ListModelMetadataInput, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.MaxResults != nil {
+ ok := object.Key("MaxResults")
+ ok.Integer(*v.MaxResults)
+ }
+
+ if v.NextToken != nil {
+ ok := object.Key("NextToken")
+ ok.String(*v.NextToken)
+ }
+
+ if v.SearchExpression != nil {
+ ok := object.Key("SearchExpression")
+ if err := awsAwsjson11_serializeDocumentModelMetadataSearchExpression(v.SearchExpression, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeOpDocumentListModelPackageGroupsInput(v *ListModelPackageGroupsInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -25635,6 +27229,52 @@ func awsAwsjson11_serializeOpDocumentPutModelPackageGroupPolicyInput(v *PutModel
return nil
}
+func awsAwsjson11_serializeOpDocumentQueryLineageInput(v *QueryLineageInput, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if len(v.Direction) > 0 {
+ ok := object.Key("Direction")
+ ok.String(string(v.Direction))
+ }
+
+ if v.Filters != nil {
+ ok := object.Key("Filters")
+ if err := awsAwsjson11_serializeDocumentQueryFilters(v.Filters, ok); err != nil {
+ return err
+ }
+ }
+
+ if v.IncludeEdges {
+ ok := object.Key("IncludeEdges")
+ ok.Boolean(v.IncludeEdges)
+ }
+
+ if v.MaxDepth != nil {
+ ok := object.Key("MaxDepth")
+ ok.Integer(*v.MaxDepth)
+ }
+
+ if v.MaxResults != nil {
+ ok := object.Key("MaxResults")
+ ok.Integer(*v.MaxResults)
+ }
+
+ if v.NextToken != nil {
+ ok := object.Key("NextToken")
+ ok.String(*v.NextToken)
+ }
+
+ if v.StartArns != nil {
+ ok := object.Key("StartArns")
+ if err := awsAwsjson11_serializeDocumentQueryLineageStartArns(v.StartArns, ok); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeOpDocumentRegisterDevicesInput(v *RegisterDevicesInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -25701,6 +27341,13 @@ func awsAwsjson11_serializeOpDocumentRetryPipelineExecutionInput(v *RetryPipelin
ok.String(*v.ClientRequestToken)
}
+ if v.ParallelismConfiguration != nil {
+ ok := object.Key("ParallelismConfiguration")
+ if err := awsAwsjson11_serializeDocumentParallelismConfiguration(v.ParallelismConfiguration, ok); err != nil {
+ return err
+ }
+ }
+
if v.PipelineExecutionArn != nil {
ok := object.Key("PipelineExecutionArn")
ok.String(*v.PipelineExecutionArn)
@@ -25827,6 +27474,13 @@ func awsAwsjson11_serializeOpDocumentStartPipelineExecutionInput(v *StartPipelin
ok.String(*v.ClientRequestToken)
}
+ if v.ParallelismConfiguration != nil {
+ ok := object.Key("ParallelismConfiguration")
+ if err := awsAwsjson11_serializeDocumentParallelismConfiguration(v.ParallelismConfiguration, ok); err != nil {
+ return err
+ }
+ }
+
if v.PipelineExecutionDescription != nil {
ok := object.Key("PipelineExecutionDescription")
ok.String(*v.PipelineExecutionDescription)
@@ -25900,6 +27554,18 @@ func awsAwsjson11_serializeOpDocumentStopHyperParameterTuningJobInput(v *StopHyp
return nil
}
+func awsAwsjson11_serializeOpDocumentStopInferenceRecommendationsJobInput(v *StopInferenceRecommendationsJobInput, value smithyjson.Value) error {
+ object := value.Object()
+ defer object.Close()
+
+ if v.JobName != nil {
+ ok := object.Key("JobName")
+ ok.String(*v.JobName)
+ }
+
+ return nil
+}
+
func awsAwsjson11_serializeOpDocumentStopLabelingJobInput(v *StopLabelingJobInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
@@ -26324,6 +27990,13 @@ func awsAwsjson11_serializeOpDocumentUpdateModelPackageInput(v *UpdateModelPacka
object := value.Object()
defer object.Close()
+ if v.AdditionalInferenceSpecificationsToAdd != nil {
+ ok := object.Key("AdditionalInferenceSpecificationsToAdd")
+ if err := awsAwsjson11_serializeDocumentAdditionalInferenceSpecifications(v.AdditionalInferenceSpecificationsToAdd, ok); err != nil {
+ return err
+ }
+ }
+
if v.ApprovalDescription != nil {
ok := object.Key("ApprovalDescription")
ok.String(*v.ApprovalDescription)
@@ -26418,6 +28091,13 @@ func awsAwsjson11_serializeOpDocumentUpdateNotebookInstanceInput(v *UpdateNotebo
ok.Boolean(v.DisassociateLifecycleConfig)
}
+ if v.InstanceMetadataServiceConfiguration != nil {
+ ok := object.Key("InstanceMetadataServiceConfiguration")
+ if err := awsAwsjson11_serializeDocumentInstanceMetadataServiceConfiguration(v.InstanceMetadataServiceConfiguration, ok); err != nil {
+ return err
+ }
+ }
+
if len(v.InstanceType) > 0 {
ok := object.Key("InstanceType")
ok.String(string(v.InstanceType))
@@ -26481,6 +28161,13 @@ func awsAwsjson11_serializeOpDocumentUpdatePipelineExecutionInput(v *UpdatePipel
object := value.Object()
defer object.Close()
+ if v.ParallelismConfiguration != nil {
+ ok := object.Key("ParallelismConfiguration")
+ if err := awsAwsjson11_serializeDocumentParallelismConfiguration(v.ParallelismConfiguration, ok); err != nil {
+ return err
+ }
+ }
+
if v.PipelineExecutionArn != nil {
ok := object.Key("PipelineExecutionArn")
ok.String(*v.PipelineExecutionArn)
@@ -26503,11 +28190,25 @@ func awsAwsjson11_serializeOpDocumentUpdatePipelineInput(v *UpdatePipelineInput,
object := value.Object()
defer object.Close()
+ if v.ParallelismConfiguration != nil {
+ ok := object.Key("ParallelismConfiguration")
+ if err := awsAwsjson11_serializeDocumentParallelismConfiguration(v.ParallelismConfiguration, ok); err != nil {
+ return err
+ }
+ }
+
if v.PipelineDefinition != nil {
ok := object.Key("PipelineDefinition")
ok.String(*v.PipelineDefinition)
}
+ if v.PipelineDefinitionS3Location != nil {
+ ok := object.Key("PipelineDefinitionS3Location")
+ if err := awsAwsjson11_serializeDocumentPipelineDefinitionS3Location(v.PipelineDefinitionS3Location, ok); err != nil {
+ return err
+ }
+ }
+
if v.PipelineDescription != nil {
ok := object.Key("PipelineDescription")
ok.String(*v.PipelineDescription)
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/enums.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/enums.go
index cf5137e..ab0c645 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/enums.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/enums.go
@@ -143,6 +143,14 @@ const (
AppInstanceTypeMlR512xlarge AppInstanceType = "ml.r5.12xlarge"
AppInstanceTypeMlR516xlarge AppInstanceType = "ml.r5.16xlarge"
AppInstanceTypeMlR524xlarge AppInstanceType = "ml.r5.24xlarge"
+ AppInstanceTypeMlG5Xlarge AppInstanceType = "ml.g5.xlarge"
+ AppInstanceTypeMlG52xlarge AppInstanceType = "ml.g5.2xlarge"
+ AppInstanceTypeMlG54xlarge AppInstanceType = "ml.g5.4xlarge"
+ AppInstanceTypeMlG58xlarge AppInstanceType = "ml.g5.8xlarge"
+ AppInstanceTypeMlG516xlarge AppInstanceType = "ml.g5.16xlarge"
+ AppInstanceTypeMlG512xlarge AppInstanceType = "ml.g5.12xlarge"
+ AppInstanceTypeMlG524xlarge AppInstanceType = "ml.g5.24xlarge"
+ AppInstanceTypeMlG548xlarge AppInstanceType = "ml.g5.48xlarge"
)
// Values returns all known values for AppInstanceType. Note that this can be
@@ -199,6 +207,14 @@ func (AppInstanceType) Values() []AppInstanceType {
"ml.r5.12xlarge",
"ml.r5.16xlarge",
"ml.r5.24xlarge",
+ "ml.g5.xlarge",
+ "ml.g5.2xlarge",
+ "ml.g5.4xlarge",
+ "ml.g5.8xlarge",
+ "ml.g5.16xlarge",
+ "ml.g5.12xlarge",
+ "ml.g5.24xlarge",
+ "ml.g5.48xlarge",
}
}
@@ -426,6 +442,24 @@ func (AuthMode) Values() []AuthMode {
}
}
+type AutoMLChannelType string
+
+// Enum values for AutoMLChannelType
+const (
+ AutoMLChannelTypeTraining AutoMLChannelType = "training"
+ AutoMLChannelTypeValidation AutoMLChannelType = "validation"
+)
+
+// Values returns all known values for AutoMLChannelType. Note that this can be
+// expanded in the future, and so it is only as up to date as the client. The
+// ordering of this slice is not guaranteed to be stable across updates.
+func (AutoMLChannelType) Values() []AutoMLChannelType {
+ return []AutoMLChannelType{
+ "training",
+ "validation",
+ }
+}
+
type AutoMLJobObjectiveType string
// Enum values for AutoMLJobObjectiveType
@@ -463,6 +497,8 @@ const (
AutoMLJobSecondaryStatusExplainabilityError AutoMLJobSecondaryStatus = "ExplainabilityError"
AutoMLJobSecondaryStatusDeployingModel AutoMLJobSecondaryStatus = "DeployingModel"
AutoMLJobSecondaryStatusModelDeploymentError AutoMLJobSecondaryStatus = "ModelDeploymentError"
+ AutoMLJobSecondaryStatusGeneratingModelInsightsReport AutoMLJobSecondaryStatus = "GeneratingModelInsightsReport"
+ AutoMLJobSecondaryStatusModelInsightsError AutoMLJobSecondaryStatus = "ModelInsightsError"
)
// Values returns all known values for AutoMLJobSecondaryStatus. Note that this can
@@ -485,6 +521,8 @@ func (AutoMLJobSecondaryStatus) Values() []AutoMLJobSecondaryStatus {
"ExplainabilityError",
"DeployingModel",
"ModelDeploymentError",
+ "GeneratingModelInsightsReport",
+ "ModelInsightsError",
}
}
@@ -536,6 +574,48 @@ func (AutoMLMetricEnum) Values() []AutoMLMetricEnum {
}
}
+type AutoMLMetricExtendedEnum string
+
+// Enum values for AutoMLMetricExtendedEnum
+const (
+ AutoMLMetricExtendedEnumAccuracy AutoMLMetricExtendedEnum = "Accuracy"
+ AutoMLMetricExtendedEnumMse AutoMLMetricExtendedEnum = "MSE"
+ AutoMLMetricExtendedEnumF1 AutoMLMetricExtendedEnum = "F1"
+ AutoMLMetricExtendedEnumF1Macro AutoMLMetricExtendedEnum = "F1macro"
+ AutoMLMetricExtendedEnumAuc AutoMLMetricExtendedEnum = "AUC"
+ AutoMLMetricExtendedEnumRmse AutoMLMetricExtendedEnum = "RMSE"
+ AutoMLMetricExtendedEnumMae AutoMLMetricExtendedEnum = "MAE"
+ AutoMLMetricExtendedEnumR2 AutoMLMetricExtendedEnum = "R2"
+ AutoMLMetricExtendedEnumBalancedAccuracy AutoMLMetricExtendedEnum = "BalancedAccuracy"
+ AutoMLMetricExtendedEnumPrecision AutoMLMetricExtendedEnum = "Precision"
+ AutoMLMetricExtendedEnumPrecisionMacro AutoMLMetricExtendedEnum = "PrecisionMacro"
+ AutoMLMetricExtendedEnumRecall AutoMLMetricExtendedEnum = "Recall"
+ AutoMLMetricExtendedEnumRecallMacro AutoMLMetricExtendedEnum = "RecallMacro"
+ AutoMLMetricExtendedEnumLogLoss AutoMLMetricExtendedEnum = "LogLoss"
+)
+
+// Values returns all known values for AutoMLMetricExtendedEnum. Note that this can
+// be expanded in the future, and so it is only as up to date as the client. The
+// ordering of this slice is not guaranteed to be stable across updates.
+func (AutoMLMetricExtendedEnum) Values() []AutoMLMetricExtendedEnum {
+ return []AutoMLMetricExtendedEnum{
+ "Accuracy",
+ "MSE",
+ "F1",
+ "F1macro",
+ "AUC",
+ "RMSE",
+ "MAE",
+ "R2",
+ "BalancedAccuracy",
+ "Precision",
+ "PrecisionMacro",
+ "Recall",
+ "RecallMacro",
+ "LogLoss",
+ }
+}
+
type AutoMLS3DataType string
// Enum values for AutoMLS3DataType
@@ -981,6 +1061,26 @@ func (DirectInternetAccess) Values() []DirectInternetAccess {
}
}
+type Direction string
+
+// Enum values for Direction
+const (
+ DirectionBoth Direction = "Both"
+ DirectionAscendants Direction = "Ascendants"
+ DirectionDescendants Direction = "Descendants"
+)
+
+// Values returns all known values for Direction. Note that this can be expanded in
+// the future, and so it is only as up to date as the client. The ordering of this
+// slice is not guaranteed to be stable across updates.
+func (Direction) Values() []Direction {
+ return []Direction{
+ "Both",
+ "Ascendants",
+ "Descendants",
+ }
+}
+
type DomainStatus string
// Enum values for DomainStatus
@@ -1711,6 +1811,14 @@ const (
InstanceTypeMlR512xlarge InstanceType = "ml.r5.12xlarge"
InstanceTypeMlR516xlarge InstanceType = "ml.r5.16xlarge"
InstanceTypeMlR524xlarge InstanceType = "ml.r5.24xlarge"
+ InstanceTypeMlG5Xlarge InstanceType = "ml.g5.xlarge"
+ InstanceTypeMlG52xlarge InstanceType = "ml.g5.2xlarge"
+ InstanceTypeMlG54xlarge InstanceType = "ml.g5.4xlarge"
+ InstanceTypeMlG58xlarge InstanceType = "ml.g5.8xlarge"
+ InstanceTypeMlG516xlarge InstanceType = "ml.g5.16xlarge"
+ InstanceTypeMlG512xlarge InstanceType = "ml.g5.12xlarge"
+ InstanceTypeMlG524xlarge InstanceType = "ml.g5.24xlarge"
+ InstanceTypeMlG548xlarge InstanceType = "ml.g5.48xlarge"
)
// Values returns all known values for InstanceType. Note that this can be expanded
@@ -1779,6 +1887,14 @@ func (InstanceType) Values() []InstanceType {
"ml.r5.12xlarge",
"ml.r5.16xlarge",
"ml.r5.24xlarge",
+ "ml.g5.xlarge",
+ "ml.g5.2xlarge",
+ "ml.g5.4xlarge",
+ "ml.g5.8xlarge",
+ "ml.g5.16xlarge",
+ "ml.g5.12xlarge",
+ "ml.g5.24xlarge",
+ "ml.g5.48xlarge",
}
}
@@ -1826,6 +1942,28 @@ func (LabelingJobStatus) Values() []LabelingJobStatus {
}
}
+type LineageType string
+
+// Enum values for LineageType
+const (
+ LineageTypeTrialComponent LineageType = "TrialComponent"
+ LineageTypeArtifact LineageType = "Artifact"
+ LineageTypeContext LineageType = "Context"
+ LineageTypeAction LineageType = "Action"
+)
+
+// Values returns all known values for LineageType. Note that this can be expanded
+// in the future, and so it is only as up to date as the client. The ordering of
+// this slice is not guaranteed to be stable across updates.
+func (LineageType) Values() []LineageType {
+ return []LineageType{
+ "TrialComponent",
+ "Artifact",
+ "Context",
+ "Action",
+ }
+}
+
type ListCompilationJobsSortBy string
// Enum values for ListCompilationJobsSortBy
@@ -1890,6 +2028,27 @@ func (ListEdgePackagingJobsSortBy) Values() []ListEdgePackagingJobsSortBy {
}
}
+type ListInferenceRecommendationsJobsSortBy string
+
+// Enum values for ListInferenceRecommendationsJobsSortBy
+const (
+ ListInferenceRecommendationsJobsSortByName ListInferenceRecommendationsJobsSortBy = "Name"
+ ListInferenceRecommendationsJobsSortByCreationTime ListInferenceRecommendationsJobsSortBy = "CreationTime"
+ ListInferenceRecommendationsJobsSortByStatus ListInferenceRecommendationsJobsSortBy = "Status"
+)
+
+// Values returns all known values for ListInferenceRecommendationsJobsSortBy. Note
+// that this can be expanded in the future, and so it is only as up to date as the
+// client. The ordering of this slice is not guaranteed to be stable across
+// updates.
+func (ListInferenceRecommendationsJobsSortBy) Values() []ListInferenceRecommendationsJobsSortBy {
+ return []ListInferenceRecommendationsJobsSortBy{
+ "Name",
+ "CreationTime",
+ "Status",
+ }
+}
+
type ListLabelingJobsForWorkteamSortByOptions string
// Enum values for ListLabelingJobsForWorkteamSortByOptions
@@ -2001,6 +2160,28 @@ func (ModelCacheSetting) Values() []ModelCacheSetting {
}
}
+type ModelMetadataFilterType string
+
+// Enum values for ModelMetadataFilterType
+const (
+ ModelMetadataFilterTypeDomain ModelMetadataFilterType = "Domain"
+ ModelMetadataFilterTypeFramework ModelMetadataFilterType = "Framework"
+ ModelMetadataFilterTypeTask ModelMetadataFilterType = "Task"
+ ModelMetadataFilterTypeFrameworkversion ModelMetadataFilterType = "FrameworkVersion"
+)
+
+// Values returns all known values for ModelMetadataFilterType. Note that this can
+// be expanded in the future, and so it is only as up to date as the client. The
+// ordering of this slice is not guaranteed to be stable across updates.
+func (ModelMetadataFilterType) Values() []ModelMetadataFilterType {
+ return []ModelMetadataFilterType{
+ "Domain",
+ "Framework",
+ "Task",
+ "FrameworkVersion",
+ }
+}
+
type ModelPackageGroupSortBy string
// Enum values for ModelPackageGroupSortBy
@@ -3030,6 +3211,50 @@ func (ProjectStatus) Values() []ProjectStatus {
}
}
+type RecommendationJobStatus string
+
+// Enum values for RecommendationJobStatus
+const (
+ RecommendationJobStatusPending RecommendationJobStatus = "PENDING"
+ RecommendationJobStatusInProgress RecommendationJobStatus = "IN_PROGRESS"
+ RecommendationJobStatusCompleted RecommendationJobStatus = "COMPLETED"
+ RecommendationJobStatusFailed RecommendationJobStatus = "FAILED"
+ RecommendationJobStatusStopping RecommendationJobStatus = "STOPPING"
+ RecommendationJobStatusStopped RecommendationJobStatus = "STOPPED"
+)
+
+// Values returns all known values for RecommendationJobStatus. Note that this can
+// be expanded in the future, and so it is only as up to date as the client. The
+// ordering of this slice is not guaranteed to be stable across updates.
+func (RecommendationJobStatus) Values() []RecommendationJobStatus {
+ return []RecommendationJobStatus{
+ "PENDING",
+ "IN_PROGRESS",
+ "COMPLETED",
+ "FAILED",
+ "STOPPING",
+ "STOPPED",
+ }
+}
+
+type RecommendationJobType string
+
+// Enum values for RecommendationJobType
+const (
+ RecommendationJobTypeDefault RecommendationJobType = "Default"
+ RecommendationJobTypeAdvanced RecommendationJobType = "Advanced"
+)
+
+// Values returns all known values for RecommendationJobType. Note that this can be
+// expanded in the future, and so it is only as up to date as the client. The
+// ordering of this slice is not guaranteed to be stable across updates.
+func (RecommendationJobType) Values() []RecommendationJobType {
+ return []RecommendationJobType{
+ "Default",
+ "Advanced",
+ }
+}
+
type RecordWrapper string
// Enum values for RecordWrapper
@@ -3500,6 +3725,24 @@ func (SortExperimentsBy) Values() []SortExperimentsBy {
}
}
+type SortLineageGroupsBy string
+
+// Enum values for SortLineageGroupsBy
+const (
+ SortLineageGroupsByName SortLineageGroupsBy = "Name"
+ SortLineageGroupsByCreationTime SortLineageGroupsBy = "CreationTime"
+)
+
+// Values returns all known values for SortLineageGroupsBy. Note that this can be
+// expanded in the future, and so it is only as up to date as the client. The
+// ordering of this slice is not guaranteed to be stable across updates.
+func (SortLineageGroupsBy) Values() []SortLineageGroupsBy {
+ return []SortLineageGroupsBy{
+ "Name",
+ "CreationTime",
+ }
+}
+
type SortOrder string
// Enum values for SortOrder
@@ -3704,6 +3947,7 @@ const (
TargetDeviceQcs605 TargetDevice = "qcs605"
TargetDeviceQcs603 TargetDevice = "qcs603"
TargetDeviceSitaraAm57x TargetDevice = "sitara_am57x"
+ TargetDeviceAmbaCv2 TargetDevice = "amba_cv2"
TargetDeviceAmbaCv22 TargetDevice = "amba_cv22"
TargetDeviceAmbaCv25 TargetDevice = "amba_cv25"
TargetDeviceX86Win32 TargetDevice = "x86_win32"
@@ -3742,6 +3986,7 @@ func (TargetDevice) Values() []TargetDevice {
"qcs605",
"qcs603",
"sitara_am57x",
+ "amba_cv2",
"amba_cv22",
"amba_cv25",
"x86_win32",
@@ -3759,6 +4004,7 @@ const (
TargetPlatformAcceleratorIntelGraphics TargetPlatformAccelerator = "INTEL_GRAPHICS"
TargetPlatformAcceleratorMali TargetPlatformAccelerator = "MALI"
TargetPlatformAcceleratorNvidia TargetPlatformAccelerator = "NVIDIA"
+ TargetPlatformAcceleratorNna TargetPlatformAccelerator = "NNA"
)
// Values returns all known values for TargetPlatformAccelerator. Note that this
@@ -3769,6 +4015,7 @@ func (TargetPlatformAccelerator) Values() []TargetPlatformAccelerator {
"INTEL_GRAPHICS",
"MALI",
"NVIDIA",
+ "NNA",
}
}
@@ -3834,6 +4081,22 @@ func (TrafficRoutingConfigType) Values() []TrafficRoutingConfigType {
}
}
+type TrafficType string
+
+// Enum values for TrafficType
+const (
+ TrafficTypePhases TrafficType = "PHASES"
+)
+
+// Values returns all known values for TrafficType. Note that this can be expanded
+// in the future, and so it is only as up to date as the client. The ordering of
+// this slice is not guaranteed to be stable across updates.
+func (TrafficType) Values() []TrafficType {
+ return []TrafficType{
+ "PHASES",
+ }
+}
+
type TrainingInputMode string
// Enum values for TrainingInputMode
@@ -3897,6 +4160,14 @@ const (
TrainingInstanceTypeMlC5n4xlarge TrainingInstanceType = "ml.c5n.4xlarge"
TrainingInstanceTypeMlC5n9xlarge TrainingInstanceType = "ml.c5n.9xlarge"
TrainingInstanceTypeMlC5n18xlarge TrainingInstanceType = "ml.c5n.18xlarge"
+ TrainingInstanceTypeMlG5Xlarge TrainingInstanceType = "ml.g5.xlarge"
+ TrainingInstanceTypeMlG52xlarge TrainingInstanceType = "ml.g5.2xlarge"
+ TrainingInstanceTypeMlG54xlarge TrainingInstanceType = "ml.g5.4xlarge"
+ TrainingInstanceTypeMlG58xlarge TrainingInstanceType = "ml.g5.8xlarge"
+ TrainingInstanceTypeMlG516xlarge TrainingInstanceType = "ml.g5.16xlarge"
+ TrainingInstanceTypeMlG512xlarge TrainingInstanceType = "ml.g5.12xlarge"
+ TrainingInstanceTypeMlG524xlarge TrainingInstanceType = "ml.g5.24xlarge"
+ TrainingInstanceTypeMlG548xlarge TrainingInstanceType = "ml.g5.48xlarge"
)
// Values returns all known values for TrainingInstanceType. Note that this can be
@@ -3943,6 +4214,14 @@ func (TrainingInstanceType) Values() []TrainingInstanceType {
"ml.c5n.4xlarge",
"ml.c5n.9xlarge",
"ml.c5n.18xlarge",
+ "ml.g5.xlarge",
+ "ml.g5.2xlarge",
+ "ml.g5.4xlarge",
+ "ml.g5.8xlarge",
+ "ml.g5.16xlarge",
+ "ml.g5.12xlarge",
+ "ml.g5.24xlarge",
+ "ml.g5.48xlarge",
}
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/errors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/errors.go
index d817332..a76dab9 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/errors.go
@@ -46,8 +46,8 @@ func (e *ResourceInUse) ErrorMessage() string {
func (e *ResourceInUse) ErrorCode() string { return "ResourceInUse" }
func (e *ResourceInUse) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }
-// You have exceeded an Amazon SageMaker resource limit. For example, you might
-// have too many training jobs created.
+// You have exceeded an SageMaker resource limit. For example, you might have too
+// many training jobs created.
type ResourceLimitExceeded struct {
Message *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/types.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/types.go
index 11a0b06..aa32ab1 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/types.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/types/types.go
@@ -53,6 +53,43 @@ type ActionSummary struct {
noSmithyDocumentSerde
}
+// A structure of additional Inference Specification. Additional Inference
+// Specification specifies details about inference jobs that can be run with models
+// based on this model package
+type AdditionalInferenceSpecificationDefinition struct {
+
+ // The Amazon ECR registry path of the Docker image that contains the inference
+ // code.
+ //
+ // This member is required.
+ Containers []ModelPackageContainerDefinition
+
+ // A unique name to identify the additional inference specification. The name must
+ // be unique within the list of your additional inference specifications for a
+ // particular model package.
+ //
+ // This member is required.
+ Name *string
+
+ // A description of the additional Inference specification
+ Description *string
+
+ // The supported MIME types for the input data.
+ SupportedContentTypes []string
+
+ // A list of the instance types that are used to generate inferences in real-time.
+ SupportedRealtimeInferenceInstanceTypes []ProductionVariantInstanceType
+
+ // The supported MIME types for the output data.
+ SupportedResponseMIMETypes []string
+
+ // A list of the instance types on which a transformation job can be run or on
+ // which an endpoint can be deployed.
+ SupportedTransformInstanceTypes []TransformInstanceType
+
+ noSmithyDocumentSerde
+}
+
// Edge Manager agent version.
type AgentVersion struct {
@@ -79,7 +116,7 @@ type Alarm struct {
}
// Specifies the training algorithm to use in a CreateTrainingJob request. For more
-// information about algorithms provided by Amazon SageMaker, see Algorithms
+// information about algorithms provided by SageMaker, see Algorithms
// (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). For information
// about using your own algorithms, see Using Your Own Algorithms with Amazon
// SageMaker
@@ -114,18 +151,23 @@ type AlgorithmSpecification struct {
// The name of the algorithm resource to use for the training job. This must be an
// algorithm resource that you created or subscribe to on Amazon Web Services
- // Marketplace. If you specify a value for this parameter, you can't specify a
- // value for TrainingImage.
+ // Marketplace. You must specify either the algorithm name to the AlgorithmName
+ // parameter or the image URI of the algorithm container to the TrainingImage
+ // parameter. Note that the AlgorithmName parameter is mutually exclusive with the
+ // TrainingImage parameter. If you specify a value for the AlgorithmName parameter,
+ // you can't specify a value for TrainingImage, and vice versa. If you specify
+ // values for both parameters, the training job might break; if you don't specify
+ // any value for both parameters, the training job might raise a null error.
AlgorithmName *string
// To generate and save time-series metrics during training, set to true. The
// default is false and time-series metrics aren't generated except in the
// following cases:
//
- // * You use one of the Amazon SageMaker built-in algorithms
+ // * You use one of the SageMaker built-in algorithms
//
- // *
- // You use one of the following Prebuilt Amazon SageMaker Docker Images
+ // * You use
+ // one of the following Prebuilt SageMaker Docker Images
// (https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-frameworks-deep-learning.html):
//
// *
@@ -140,18 +182,22 @@ type AlgorithmSpecification struct {
EnableSageMakerMetricsTimeSeries bool
// A list of metric definition objects. Each object specifies the metric name and
- // regular expressions used to parse algorithm logs. Amazon SageMaker publishes
- // each metric to Amazon CloudWatch.
+ // regular expressions used to parse algorithm logs. SageMaker publishes each
+ // metric to Amazon CloudWatch.
MetricDefinitions []MetricDefinition
// The registry path of the Docker image that contains the training algorithm. For
- // information about docker registry paths for built-in algorithms, see Algorithms
- // Provided by Amazon SageMaker: Common Parameters
- // (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html).
- // Amazon SageMaker supports both registry/repository[:tag] and
- // registry/repository[@digest] image path formats. For more information, see Using
- // Your Own Algorithms with Amazon SageMaker
- // (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html).
+ // information about docker registry paths for SageMaker built-in algorithms, see
+ // Docker Registry Paths and Example Code
+ // (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html)
+ // in the Amazon SageMaker developer guide. SageMaker supports both
+ // registry/repository[:tag] and registry/repository[@digest] image path formats.
+ // For more information about using your custom training container, see Using Your
+ // Own Algorithms with Amazon SageMaker
+ // (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). You must
+ // specify either the algorithm name to the AlgorithmName parameter or the image
+ // URI of the algorithm container to the TrainingImage parameter. For more
+ // information, see the note in the AlgorithmName parameter description.
TrainingImage *string
noSmithyDocumentSerde
@@ -217,9 +263,9 @@ type AlgorithmSummary struct {
noSmithyDocumentSerde
}
-// Defines a training job and a batch transform job that Amazon SageMaker runs to
-// validate your algorithm. The data provided in the validation profile is made
-// available to your buyers on Amazon Web Services Marketplace.
+// Defines a training job and a batch transform job that SageMaker runs to validate
+// your algorithm. The data provided in the validation profile is made available to
+// your buyers on Amazon Web Services Marketplace.
type AlgorithmValidationProfile struct {
// The name of the profile for the algorithm. The name must have 1 to 63
@@ -228,31 +274,31 @@ type AlgorithmValidationProfile struct {
// This member is required.
ProfileName *string
- // The TrainingJobDefinition object that describes the training job that Amazon
- // SageMaker runs to validate your algorithm.
+ // The TrainingJobDefinition object that describes the training job that SageMaker
+ // runs to validate your algorithm.
//
// This member is required.
TrainingJobDefinition *TrainingJobDefinition
- // The TransformJobDefinition object that describes the transform job that Amazon
+ // The TransformJobDefinition object that describes the transform job that
// SageMaker runs to validate your algorithm.
TransformJobDefinition *TransformJobDefinition
noSmithyDocumentSerde
}
-// Specifies configurations for one or more training jobs that Amazon SageMaker
-// runs to test the algorithm.
+// Specifies configurations for one or more training jobs that SageMaker runs to
+// test the algorithm.
type AlgorithmValidationSpecification struct {
// An array of AlgorithmValidationProfile objects, each of which specifies a
- // training job and batch transform job that Amazon SageMaker runs to validate your
+ // training job and batch transform job that SageMaker runs to validate your
// algorithm.
//
// This member is required.
ValidationProfiles []AlgorithmValidationProfile
- // The IAM roles that Amazon SageMaker uses to run the training jobs.
+ // The IAM roles that SageMaker uses to run the training jobs.
//
// This member is required.
ValidationRole *string
@@ -1314,7 +1360,7 @@ type AssociationSummary struct {
AssociationType AssociationEdgeType
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *UserContext
// When the association was created.
@@ -1341,13 +1387,12 @@ type AssociationSummary struct {
noSmithyDocumentSerde
}
-// Configures the behavior of the client used by Amazon SageMaker to interact with
-// the model container during asynchronous inference.
+// Configures the behavior of the client used by SageMaker to interact with the
+// model container during asynchronous inference.
type AsyncInferenceClientConfig struct {
// The maximum number of concurrent requests sent by the SageMaker client to the
- // model container. If no value is provided, Amazon SageMaker will choose an
- // optimal value for you.
+ // model container. If no value is provided, SageMaker chooses an optimal value.
MaxConcurrentInvocationsPerInstance *int32
noSmithyDocumentSerde
@@ -1361,8 +1406,8 @@ type AsyncInferenceConfig struct {
// This member is required.
OutputConfig *AsyncInferenceOutputConfig
- // Configures the behavior of the client used by Amazon SageMaker to interact with
- // the model container during asynchronous inference.
+ // Configures the behavior of the client used by SageMaker to interact with the
+ // model container during asynchronous inference.
ClientConfig *AsyncInferenceClientConfig
noSmithyDocumentSerde
@@ -1392,8 +1437,7 @@ type AsyncInferenceOutputConfig struct {
S3OutputPath *string
// The Amazon Web Services Key Management Service (Amazon Web Services KMS) key
- // that Amazon SageMaker uses to encrypt the asynchronous inference output in
- // Amazon S3.
+ // that SageMaker uses to encrypt the asynchronous inference output in Amazon S3.
KmsKeyId *string
// Specifies the configuration for notifications of inference results for
@@ -1497,6 +1541,21 @@ type AutoMLCandidate struct {
noSmithyDocumentSerde
}
+// Stores the config information for how a candidate is generated (optional).
+type AutoMLCandidateGenerationConfig struct {
+
+ // A URL to the Amazon S3 data source containing selected features from the input
+ // data source to run an Autopilot job (optional). This file should be in json
+ // format as shown below: { "FeatureAttributeNames":["col1", "col2", ...] }. The
+ // key name FeatureAttributeNames is fixed. The values listed in ["col1", "col2",
+ // ...] is case sensitive and should be a list of strings containing unique values
+ // that are a subset of the column names in the input data. The list of columns
+ // provided must not include the target column.
+ FeatureSpecificationS3Uri *string
+
+ noSmithyDocumentSerde
+}
+
// Information about the steps for a candidate and what step it is working on.
type AutoMLCandidateStep struct {
@@ -1518,8 +1577,10 @@ type AutoMLCandidateStep struct {
noSmithyDocumentSerde
}
-// A channel is a named input source that training algorithms can consume. For more
-// information, see .
+// A channel is a named input source that training algorithms can consume. The
+// validation dataset size is limited to less than 2 GB. The training dataset size
+// must be less than 100 GB. For more information, see . A validation dataset must
+// contain the same headers as the training dataset.
type AutoMLChannel struct {
// The data source for an AutoML channel.
@@ -1533,9 +1594,21 @@ type AutoMLChannel struct {
// This member is required.
TargetAttributeName *string
+ // The channel type (optional) is an enum string. The default value is training.
+ // Channels for training and validation must share the same ContentType and
+ // TargetAttributeName. For information on specifying training and validation
+ // channel types, see How to specify training and validation datasets
+ // (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-data-sources-training-or-validation).
+ ChannelType AutoMLChannelType
+
// You can use Gzip or None. The default value is None.
CompressionType CompressionType
+ // The content type of the data from the input source. You can use
+ // text/csv;header=present or x-application/vnd.amazon+parquet. The default value
+ // is text/csv;header=present.
+ ContentType *string
+
noSmithyDocumentSerde
}
@@ -1572,6 +1645,20 @@ type AutoMLDataSource struct {
noSmithyDocumentSerde
}
+// This structure specifies how to split the data into train and test datasets. The
+// validation and training datasets must contain the same headers. The validation
+// dataset must be less than 2 GB in size.
+type AutoMLDataSplitConfig struct {
+
+ // The validation fraction (optional) is a float that specifies the portion of the
+ // training dataset to be used for validation. The default value is 0.2, and values
+ // must be greater than 0 and less than 1. We recommend setting this value to be
+ // less than 0.5.
+ ValidationFraction *float32
+
+ noSmithyDocumentSerde
+}
+
// The artifacts that are generated during an AutoML job.
type AutoMLJobArtifacts struct {
@@ -1610,10 +1697,17 @@ type AutoMLJobCompletionCriteria struct {
// A collection of settings used for an AutoML job.
type AutoMLJobConfig struct {
+ // The configuration for generating a candidate for an AutoML job (optional).
+ CandidateGenerationConfig *AutoMLCandidateGenerationConfig
+
// How long an AutoML job is allowed to run, or how many candidates a job is
// allowed to generate.
CompletionCriteria *AutoMLJobCompletionCriteria
+ // The configuration for splitting the input training dataset. Type:
+ // AutoMLDataSplitConfig
+ DataSplitConfig *AutoMLDataSplitConfig
+
// The security configuration for traffic encryption or Amazon VPC settings.
SecurityConfig *AutoMLSecurityConfig
@@ -1868,6 +1962,12 @@ type BatchDescribeModelPackageSummary struct {
// Contains bias metrics for a model.
type Bias struct {
+ //
+ PostTrainingReport *MetricsSource
+
+ //
+ PreTrainingReport *MetricsSource
+
// The bias report for a model
Report *MetricsSource
@@ -1934,6 +2034,10 @@ type CandidateArtifactLocations struct {
// This member is required.
Explainability *string
+ // The Amazon S3 prefix to the model insight artifacts generated for the AutoML
+ // candidate.
+ ModelInsights *string
+
noSmithyDocumentSerde
}
@@ -1972,22 +2076,25 @@ type CapacitySize struct {
noSmithyDocumentSerde
}
-//
+// Configuration specifying how to treat different headers. If no headers are
+// specified SageMaker will by default base64 encode when capturing the data.
type CaptureContentTypeHeader struct {
- //
+ // The list of all content type headers that SageMaker will treat as CSV and
+ // capture accordingly.
CsvContentTypes []string
- //
+ // The list of all content type headers that SageMaker will treat as JSON and
+ // capture accordingly.
JsonContentTypes []string
noSmithyDocumentSerde
}
-//
+// Specifies data Model Monitor will capture.
type CaptureOption struct {
- //
+ // Specify the boundary of data to capture.
//
// This member is required.
CaptureMode CaptureMode
@@ -1995,6 +2102,22 @@ type CaptureOption struct {
noSmithyDocumentSerde
}
+// Environment parameters you want to benchmark your load test against.
+type CategoricalParameter struct {
+
+ // The Name of the environment variable.
+ //
+ // This member is required.
+ Name *string
+
+ // The list of values you can pass.
+ //
+ // This member is required.
+ Value []string
+
+ noSmithyDocumentSerde
+}
+
// A list of categorical hyperparameters to tune.
type CategoricalParameterRange struct {
@@ -2044,7 +2167,7 @@ type Channel struct {
ContentType *string
// (Optional) The input mode to use for the data channel in a training job. If you
- // don't set a value for InputMode, Amazon SageMaker uses the value set for
+ // don't set a value for InputMode, SageMaker uses the value set for
// TrainingInputMode. Use this parameter to override the TrainingInputMode setting
// in a AlgorithmSpecification request when you have a channel that needs a
// different input mode from the training job's general setting. To download the
@@ -2055,8 +2178,8 @@ type Channel struct {
InputMode TrainingInputMode
// Specify RecordIO as the value when input data is in raw format but the training
- // algorithm requires the RecordIO format. In this case, Amazon SageMaker wraps
- // each individual S3 object in a RecordIO record. If the input data is already in
+ // algorithm requires the RecordIO format. In this case, SageMaker wraps each
+ // individual S3 object in a RecordIO record. If the input data is already in
// RecordIO format, you don't need to set this attribute. For more information, see
// Create a Dataset Using RecordIO
// (https://mxnet.apache.org/api/architecture/note_data_loading#data-format). In
@@ -2118,7 +2241,7 @@ type ChannelSpecification struct {
// checkpoint data.
type CheckpointConfig struct {
- // Identifies the S3 path where you want Amazon SageMaker to store checkpoints. For
+ // Identifies the S3 path where you want SageMaker to store checkpoints. For
// example, s3://bucket-name/key-name-prefix.
//
// This member is required.
@@ -2131,6 +2254,46 @@ type CheckpointConfig struct {
noSmithyDocumentSerde
}
+// The container for the metadata for the ClarifyCheck step. For more information,
+// see the topic on ClarifyCheck step
+// (https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-clarify-check)
+// in the Amazon SageMaker Developer Guide.
+type ClarifyCheckStepMetadata struct {
+
+ // The Amazon S3 URI of baseline constraints file to be used for the drift check.
+ BaselineUsedForDriftCheckConstraints *string
+
+ // The Amazon S3 URI of the newly calculated baseline constraints file.
+ CalculatedBaselineConstraints *string
+
+ // The Amazon Resource Name (ARN) of the check processing job that was run by this
+ // step's execution.
+ CheckJobArn *string
+
+ // The type of the Clarify Check step
+ CheckType *string
+
+ // The model package group name.
+ ModelPackageGroupName *string
+
+ // This flag indicates if a newly calculated baseline can be accessed through step
+ // properties BaselineUsedForDriftCheckConstraints and
+ // BaselineUsedForDriftCheckStatistics. If it is set to False, the previous
+ // baseline of the configured check type must also be available. These can be
+ // accessed through the BaselineUsedForDriftCheckConstraints property.
+ RegisterNewBaseline bool
+
+ // This flag indicates if the drift check against the previous baseline will be
+ // skipped or not. If it is set to False, the previous baseline of the configured
+ // check type must be available.
+ SkipCheck bool
+
+ // The Amazon S3 URI of the violation report if violations are detected.
+ ViolationReport *string
+
+ noSmithyDocumentSerde
+}
+
// Specifies summary information about a Git repository.
type CodeRepositorySummary struct {
@@ -2309,10 +2472,10 @@ type ContainerDefinition struct {
// The path where inference code is stored. This can be either in Amazon EC2
// Container Registry or in a Docker registry that is accessible from the same VPC
// that you configure for your endpoint. If you are using your own custom algorithm
- // instead of an algorithm provided by Amazon SageMaker, the inference code must
- // meet Amazon SageMaker requirements. Amazon SageMaker supports both
- // registry/repository[:tag] and registry/repository[@digest] image path formats.
- // For more information, see Using Your Own Algorithms with Amazon SageMaker
+ // instead of an algorithm provided by SageMaker, the inference code must meet
+ // SageMaker requirements. SageMaker supports both registry/repository[:tag] and
+ // registry/repository[@digest] image path formats. For more information, see Using
+ // Your Own Algorithms with Amazon SageMaker
// (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html)
Image *string
@@ -2323,27 +2486,30 @@ type ContainerDefinition struct {
// (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-containers-inference-private.html)
ImageConfig *ImageConfig
+ // The inference specification name in the model package version.
+ InferenceSpecificationName *string
+
// Whether the container hosts a single model or multiple models.
Mode ContainerMode
// The S3 path where the model artifacts, which result from model training, are
// stored. This path must point to a single gzip compressed tar archive (.tar.gz
- // suffix). The S3 path is required for Amazon SageMaker built-in algorithms, but
- // not if you use your own algorithms. For more information on built-in algorithms,
- // see Common Parameters
+ // suffix). The S3 path is required for SageMaker built-in algorithms, but not if
+ // you use your own algorithms. For more information on built-in algorithms, see
+ // Common Parameters
// (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html).
// The model artifacts must be in an S3 bucket that is in the same region as the
// model or endpoint you are creating. If you provide a value for this parameter,
- // Amazon SageMaker uses Amazon Web Services Security Token Service to download
- // model artifacts from the S3 path you provide. Amazon Web Services STS is
- // activated in your IAM user account by default. If you previously deactivated
- // Amazon Web Services STS for a region, you need to reactivate Amazon Web Services
- // STS for that region. For more information, see Activating and Deactivating
- // Amazon Web Services STS in an Amazon Web Services Region
+ // SageMaker uses Amazon Web Services Security Token Service to download model
+ // artifacts from the S3 path you provide. Amazon Web Services STS is activated in
+ // your IAM user account by default. If you previously deactivated Amazon Web
+ // Services STS for a region, you need to reactivate Amazon Web Services STS for
+ // that region. For more information, see Activating and Deactivating Amazon Web
+ // Services STS in an Amazon Web Services Region
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the Amazon Web Services Identity and Access Management User Guide. If you use
- // a built-in algorithm to create a model, Amazon SageMaker requires that you
- // provide a S3 path to the model artifacts in ModelDataUrl.
+ // a built-in algorithm to create a model, SageMaker requires that you provide a S3
+ // path to the model artifacts in ModelDataUrl.
ModelDataUrl *string
// The name or Amazon Resource Name (ARN) of the model package to use to create the
@@ -2422,8 +2588,8 @@ type ContinuousParameterRange struct {
// For information about choosing a hyperparameter scale, see Hyperparameter
// Scaling
// (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type).
- // One of the following values: Auto Amazon SageMaker hyperparameter tuning chooses
- // the best scale for the hyperparameter. Linear Hyperparameter tuning searches the
+ // One of the following values: Auto SageMaker hyperparameter tuning chooses the
+ // best scale for the hyperparameter. Linear Hyperparameter tuning searches the
// values in the hyperparameter range by using a linear scale. Logarithmic
// Hyperparameter tuning searches the values in the hyperparameter range by using a
// logarithmic scale. Logarithmic scaling works only for ranges that have only
@@ -2472,60 +2638,77 @@ type CustomImage struct {
noSmithyDocumentSerde
}
-//
+// Configuration to control how SageMaker captures inference data.
type DataCaptureConfig struct {
- //
+ // Specifies data Model Monitor will capture. You can configure whether to collect
+ // only input, only output, or both
//
// This member is required.
CaptureOptions []CaptureOption
- //
+ // The Amazon S3 location used to capture the data.
//
// This member is required.
DestinationS3Uri *string
- //
+ // The percentage of requests SageMaker will capture. A lower value is recommended
+ // for Endpoints with high traffic.
//
// This member is required.
InitialSamplingPercentage *int32
- //
+ // Configuration specifying how to treat different headers. If no headers are
+ // specified SageMaker will by default base64 encode when capturing the data.
CaptureContentTypeHeader *CaptureContentTypeHeader
- //
+ // Whether data capture should be enabled or disabled (defaults to enabled).
EnableCapture bool
+ // The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service
+ // key that SageMaker uses to encrypt data on the storage volume attached to the ML
+ // compute instance that hosts the endpoint. The KmsKeyId can be any of the
+ // following formats:
//
+ // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
+ //
+ // * Key ARN:
+ // arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
+ //
+ // *
+ // Alias name: alias/ExampleAlias
+ //
+ // * Alias name ARN:
+ // arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
KmsKeyId *string
noSmithyDocumentSerde
}
-//
+// The currently active data capture configuration used by your Endpoint.
type DataCaptureConfigSummary struct {
- //
+ // Whether data capture is currently functional.
//
// This member is required.
CaptureStatus CaptureStatus
- //
+ // The percentage of requests being captured by your Endpoint.
//
// This member is required.
CurrentSamplingPercentage *int32
- //
+ // The Amazon S3 location being used to capture the data.
//
// This member is required.
DestinationS3Uri *string
- //
+ // Whether data capture is enabled or disabled.
//
// This member is required.
EnableCapture bool
- //
+ // The KMS key being used to encrypt the data in Amazon S3.
//
// This member is required.
KmsKeyId *string
@@ -2569,8 +2752,8 @@ type DataProcessing struct {
// (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators)
// expression used to select a portion of the input data to pass to the algorithm.
// Use the InputFilter parameter to exclude fields, such as an ID column, from the
- // input. If you want Amazon SageMaker to pass the entire input dataset to the
- // algorithm, accept the default value $. Examples: "$", "$[1:]", "$.features"
+ // input. If you want SageMaker to pass the entire input dataset to the algorithm,
+ // accept the default value $. Examples: "$", "$[1:]", "$.features"
InputFilter *string
// Specifies the source of the data to join with the transformed data. The valid
@@ -2595,10 +2778,10 @@ type DataProcessing struct {
// A JSONPath
// (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators)
// expression used to select a portion of the joined dataset to save in the output
- // file for a batch transform job. If you want Amazon SageMaker to store the entire
- // input dataset in the output file, leave the default value, $. If you specify
- // indexes that aren't within the dimension size of the joined dataset, you get an
- // error. Examples: "$", "$[0,5:]", "$['id','SageMakerOutput']"
+ // file for a batch transform job. If you want SageMaker to store the entire input
+ // dataset in the output file, leave the default value, $. If you specify indexes
+ // that aren't within the dimension size of the joined dataset, you get an error.
+ // Examples: "$", "$[0,5:]", "$['id','SageMakerOutput']"
OutputFilter *string
noSmithyDocumentSerde
@@ -2997,6 +3180,102 @@ type DomainSettingsForUpdate struct {
noSmithyDocumentSerde
}
+// Represents the drift check baselines that can be used when the model monitor is
+// set using the model package.
+type DriftCheckBaselines struct {
+
+ // Represents the drift check bias baselines that can be used when the model
+ // monitor is set using the model package.
+ Bias *DriftCheckBias
+
+ // Represents the drift check explainability baselines that can be used when the
+ // model monitor is set using the model package.
+ Explainability *DriftCheckExplainability
+
+ // Represents the drift check model data quality baselines that can be used when
+ // the model monitor is set using the model package.
+ ModelDataQuality *DriftCheckModelDataQuality
+
+ // Represents the drift check model quality baselines that can be used when the
+ // model monitor is set using the model package.
+ ModelQuality *DriftCheckModelQuality
+
+ noSmithyDocumentSerde
+}
+
+// Represents the drift check bias baselines that can be used when the model
+// monitor is set using the model package.
+type DriftCheckBias struct {
+
+ // The bias config file for a model.
+ ConfigFile *FileSource
+
+ //
+ PostTrainingConstraints *MetricsSource
+
+ //
+ PreTrainingConstraints *MetricsSource
+
+ noSmithyDocumentSerde
+}
+
+// Represents the drift check explainability baselines that can be used when the
+// model monitor is set using the model package.
+type DriftCheckExplainability struct {
+
+ // The explainability config file for the model.
+ ConfigFile *FileSource
+
+ //
+ Constraints *MetricsSource
+
+ noSmithyDocumentSerde
+}
+
+// Represents the drift check data quality baselines that can be used when the
+// model monitor is set using the model package.
+type DriftCheckModelDataQuality struct {
+
+ //
+ Constraints *MetricsSource
+
+ //
+ Statistics *MetricsSource
+
+ noSmithyDocumentSerde
+}
+
+// Represents the drift check model quality baselines that can be used when the
+// model monitor is set using the model package.
+type DriftCheckModelQuality struct {
+
+ //
+ Constraints *MetricsSource
+
+ //
+ Statistics *MetricsSource
+
+ noSmithyDocumentSerde
+}
+
+// A directed edge connecting two lineage entities.
+type Edge struct {
+
+ // The type of the Association(Edge) between the source and destination. For
+ // example ContributedTo, Produced, or DerivedFrom.
+ AssociationType AssociationEdgeType
+
+ // The Amazon Resource Name (ARN) of the destination lineage entity of the directed
+ // edge.
+ DestinationArn *string
+
+ // The Amazon Resource Name (ARN) of the source lineage entity of the directed
+ // edge.
+ SourceArn *string
+
+ noSmithyDocumentSerde
+}
+
// The model on the edge device.
type EdgeModel struct {
@@ -3177,6 +3456,25 @@ type EdgePresetDeploymentOutput struct {
noSmithyDocumentSerde
}
+// The configurations and outcomes of an Amazon EMR step execution.
+type EMRStepMetadata struct {
+
+ // The identifier of the EMR cluster.
+ ClusterId *string
+
+ // The path to the log file where the cluster step's failure root cause is
+ // recorded.
+ LogFilePath *string
+
+ // The identifier of the EMR cluster step.
+ StepId *string
+
+ // The name of the EMR cluster step.
+ StepName *string
+
+ noSmithyDocumentSerde
+}
+
// A hosted endpoint for real-time inference.
type Endpoint struct {
@@ -3210,7 +3508,7 @@ type Endpoint struct {
// This member is required.
LastModifiedTime *time.Time
- //
+ // The currently active data capture configuration used by your Endpoint.
DataCaptureConfig *DataCaptureConfigSummary
// If the endpoint failed, the reason it failed.
@@ -3305,6 +3603,51 @@ type EndpointInput struct {
noSmithyDocumentSerde
}
+// The endpoint configuration for the load test.
+type EndpointInputConfiguration struct {
+
+ // The instance types to use for the load test.
+ //
+ // This member is required.
+ InstanceType ProductionVariantInstanceType
+
+ // The parameter you want to benchmark against.
+ EnvironmentParameterRanges *EnvironmentParameterRanges
+
+ // The inference specification name in the model package version.
+ InferenceSpecificationName *string
+
+ noSmithyDocumentSerde
+}
+
+// The endpoint configuration made by Inference Recommender during a recommendation
+// job.
+type EndpointOutputConfiguration struct {
+
+ // The name of the endpoint made during a recommendation job.
+ //
+ // This member is required.
+ EndpointName *string
+
+ // The number of instances recommended to launch initially.
+ //
+ // This member is required.
+ InitialInstanceCount int32
+
+ // The instance type recommended by Amazon SageMaker Inference Recommender.
+ //
+ // This member is required.
+ InstanceType ProductionVariantInstanceType
+
+ // The name of the production variant (deployed model) made during a recommendation
+ // job.
+ //
+ // This member is required.
+ VariantName *string
+
+ noSmithyDocumentSerde
+}
+
// Provides summary information for an endpoint.
type EndpointSummary struct {
@@ -3372,6 +3715,37 @@ type EndpointSummary struct {
noSmithyDocumentSerde
}
+// A list of environment parameters suggested by the Amazon SageMaker Inference
+// Recommender.
+type EnvironmentParameter struct {
+
+ // The environment key suggested by the Amazon SageMaker Inference Recommender.
+ //
+ // This member is required.
+ Key *string
+
+ // The value suggested by the Amazon SageMaker Inference Recommender.
+ //
+ // This member is required.
+ Value *string
+
+ // The value type suggested by the Amazon SageMaker Inference Recommender.
+ //
+ // This member is required.
+ ValueType *string
+
+ noSmithyDocumentSerde
+}
+
+// Specifies the range of environment parameters
+type EnvironmentParameterRanges struct {
+
+ // Specified a list of parameters for each category.
+ CategoricalParameterRanges []CategoricalParameter
+
+ noSmithyDocumentSerde
+}
+
// The properties of an experiment as returned by the Search API.
type Experiment struct {
@@ -3395,7 +3769,7 @@ type Experiment struct {
ExperimentName *string
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *UserContext
// When the experiment was last modified.
@@ -3485,6 +3859,16 @@ type Explainability struct {
noSmithyDocumentSerde
}
+// The container for the metadata for Fail step.
+type FailStepMetadata struct {
+
+ // A message that you define and then is processed and rendered by the Fail step
+ // when the error occurs.
+ ErrorMessage *string
+
+ noSmithyDocumentSerde
+}
+
// A list of features. You must include FeatureName and FeatureType. Valid feature
// FeatureTypes are Integral, Fractional and String.
type FeatureDefinition struct {
@@ -3596,6 +3980,23 @@ type FeatureGroupSummary struct {
noSmithyDocumentSerde
}
+// Contains details regarding the file source.
+type FileSource struct {
+
+ // The Amazon S3 URI for the file source.
+ //
+ // This member is required.
+ S3Uri *string
+
+ // The digest of the file source.
+ ContentDigest *string
+
+ // The type of content stored in the file source.
+ ContentType *string
+
+ noSmithyDocumentSerde
+}
+
// The Amazon Elastic File System (EFS) storage configuration for a SageMaker
// image.
type FileSystemConfig struct {
@@ -5127,8 +5528,7 @@ type HumanTaskConfig struct {
// (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud.html) and video
// frame (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-video.html) labeling
// jobs, the maximum is 30 days (2952,000 seconds) for non-AL mode. For most users,
- // the maximum is also 30 days. If you want to change these limits, contact Amazon
- // Web Services Support.
+ // the maximum is also 30 days.
//
// This member is required.
TaskTimeLimitInSeconds *int32
@@ -5168,7 +5568,7 @@ type HumanTaskConfig struct {
//
// * If you choose a private or vendor workforce, the default value is
// 30 days (2592,000 seconds) for non-AL mode. For most users, the maximum is also
- // 30 days. If you want to change this limit, contact Amazon Web Services Support.
+ // 30 days.
TaskAvailabilityLifetimeInSeconds *int32
// Keywords used to describe the task so that workers on Amazon Mechanical Turk can
@@ -5242,7 +5642,7 @@ type HyperParameterAlgorithmSpecification struct {
// information about Docker registry paths for built-in algorithms, see Algorithms
// Provided by Amazon SageMaker: Common Parameters
// (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html).
- // Amazon SageMaker supports both registry/repository[:tag] and
+ // SageMaker supports both registry/repository[:tag] and
// registry/repository[@digest] image path formats. For more information, see Using
// Your Own Algorithms with Amazon SageMaker
// (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html).
@@ -5302,10 +5702,10 @@ type HyperParameterTrainingJobDefinition struct {
// The resources, including the compute instances and storage volumes, to use for
// the training jobs that the tuning job launches. Storage volumes store model
// artifacts and incremental states. Training algorithms might also use storage
- // volumes for scratch space. If you want Amazon SageMaker to use the storage
- // volume to store the training data, choose File as the TrainingInputMode in the
- // algorithm specification. For distributed training algorithms, specify an
- // instance count greater than 1.
+ // volumes for scratch space. If you want SageMaker to use the storage volume to
+ // store the training data, choose File as the TrainingInputMode in the algorithm
+ // specification. For distributed training algorithms, specify an instance count
+ // greater than 1.
//
// This member is required.
ResourceConfig *ResourceConfig
@@ -5318,8 +5718,8 @@ type HyperParameterTrainingJobDefinition struct {
// Specifies a limit to how long a model hyperparameter training job can run. It
// also specifies how long a managed spot training job has to complete. When the
- // job reaches the time limit, Amazon SageMaker ends the training job. Use this API
- // to cap model training costs.
+ // job reaches the time limit, SageMaker ends the training job. Use this API to cap
+ // model training costs.
//
// This member is required.
StoppingCondition *StoppingCondition
@@ -5345,9 +5745,9 @@ type HyperParameterTrainingJobDefinition struct {
// Isolates the training container. No inbound or outbound network calls can be
// made, except for calls between peers within a training cluster for distributed
// training. If network isolation is used for training jobs that are configured to
- // use a VPC, Amazon SageMaker downloads and uploads customer data and model
- // artifacts through the specified VPC, but the training container does not have
- // network access.
+ // use a VPC, SageMaker downloads and uploads customer data and model artifacts
+ // through the specified VPC, but the training container does not have network
+ // access.
EnableNetworkIsolation bool
// Specifies ranges of integer, continuous, and categorical hyperparameters that a
@@ -5387,7 +5787,7 @@ type HyperParameterTrainingJobDefinition struct {
noSmithyDocumentSerde
}
-// Specifies summary information about a training job.
+// The container for the summary information about a training job.
type HyperParameterTrainingJobSummary struct {
// The date and time that the training job was created.
@@ -5440,8 +5840,8 @@ type HyperParameterTrainingJobSummary struct {
// Specifies the time when the training job ends on training instances. You are
// billed for the time interval between the value of TrainingStartTime and this
// time. For successful jobs and stopped jobs, this is the time after model
- // artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker
- // detects a job failure.
+ // artifacts are uploaded. For failed jobs, this is the time when SageMaker detects
+ // a job failure.
TrainingEndTime *time.Time
// The training job definition name.
@@ -5485,8 +5885,8 @@ type HyperParameterTuningJobConfig struct {
// Specifies whether to use early stopping for training jobs launched by the
// hyperparameter tuning job. This can be one of the following values (the default
// value is OFF): OFF Training jobs launched by the hyperparameter tuning job do
- // not use early stopping. AUTO Amazon SageMaker stops training jobs launched by
- // the hyperparameter tuning job when they are unlikely to perform better than
+ // not use early stopping. AUTO SageMaker stops training jobs launched by the
+ // hyperparameter tuning job when they are unlikely to perform better than
// previously completed training jobs. For more information, see Stop Training Jobs
// Early
// (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html).
@@ -5746,6 +6146,80 @@ type InferenceExecutionConfig struct {
noSmithyDocumentSerde
}
+// A list of recommendations made by Amazon SageMaker Inference Recommender.
+type InferenceRecommendation struct {
+
+ // Defines the endpoint configuration parameters.
+ //
+ // This member is required.
+ EndpointConfiguration *EndpointOutputConfiguration
+
+ // The metrics used to decide what recommendation to make.
+ //
+ // This member is required.
+ Metrics *RecommendationMetrics
+
+ // Defines the model configuration.
+ //
+ // This member is required.
+ ModelConfiguration *ModelConfiguration
+
+ noSmithyDocumentSerde
+}
+
+// A structure that contains a list of recommendation jobs.
+type InferenceRecommendationsJob struct {
+
+ // A timestamp that shows when the job was created.
+ //
+ // This member is required.
+ CreationTime *time.Time
+
+ // The Amazon Resource Name (ARN) of the recommendation job.
+ //
+ // This member is required.
+ JobArn *string
+
+ // The job description.
+ //
+ // This member is required.
+ JobDescription *string
+
+ // The name of the job.
+ //
+ // This member is required.
+ JobName *string
+
+ // The recommendation job type.
+ //
+ // This member is required.
+ JobType RecommendationJobType
+
+ // A timestamp that shows when the job was last modified.
+ //
+ // This member is required.
+ LastModifiedTime *time.Time
+
+ // The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to
+ // perform tasks on your behalf.
+ //
+ // This member is required.
+ RoleArn *string
+
+ // The status of the job.
+ //
+ // This member is required.
+ Status RecommendationJobStatus
+
+ // A timestamp that shows when the job completed.
+ CompletionTime *time.Time
+
+ // If the job fails, provides information why the job failed.
+ FailureReason *string
+
+ noSmithyDocumentSerde
+}
+
// Defines how to perform inference generation after a training job is run.
type InferenceSpecification struct {
@@ -5996,14 +6470,32 @@ type InputConfig struct {
// This member is required.
S3Uri *string
- // Specifies the framework version to use. This API field is only supported for
- // PyTorch framework versions 1.4, 1.5, and 1.6 for cloud instance target devices:
- // ml_c4, ml_c5, ml_m4, ml_m5, ml_p2, ml_p3, and ml_g4dn.
+ // Specifies the framework version to use. This API field is only supported for the
+ // PyTorch and TensorFlow frameworks. For information about framework versions
+ // supported for cloud targets and edge devices, see Cloud Supported Instance Types
+ // and Frameworks
+ // (https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-cloud.html) and
+ // Edge Supported Frameworks
+ // (https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-devices-edge-frameworks.html).
FrameworkVersion *string
noSmithyDocumentSerde
}
+// Information on the IMDS configuration of the notebook instance
+type InstanceMetadataServiceConfiguration struct {
+
+ // Indicates the minimum IMDS version that the notebook instance supports. When
+ // passed as part of CreateNotebookInstance, if no value is selected, then it
+ // defaults to IMDSv1. This means that both IMDSv1 and IMDSv2 are supported. If
+ // passed as part of UpdateNotebookInstance, there is no default.
+ //
+ // This member is required.
+ MinimumInstanceMetadataServiceVersion *string
+
+ noSmithyDocumentSerde
+}
+
// For a hyperparameter of the integer type, specifies the range that a
// hyperparameter tuning job searches.
type IntegerParameterRange struct {
@@ -6027,8 +6519,8 @@ type IntegerParameterRange struct {
// For information about choosing a hyperparameter scale, see Hyperparameter
// Scaling
// (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type).
- // One of the following values: Auto Amazon SageMaker hyperparameter tuning chooses
- // the best scale for the hyperparameter. Linear Hyperparameter tuning searches the
+ // One of the following values: Auto SageMaker hyperparameter tuning chooses the
+ // best scale for the hyperparameter. Linear Hyperparameter tuning searches the
// values in the hyperparameter range by using a linear scale. Logarithmic
// Hyperparameter tuning searches the values in the hyperparameter range by using a
// logarithmic scale. Logarithmic scaling works only for ranges that have only
@@ -6058,11 +6550,14 @@ type IntegerParameterRangeSpecification struct {
type JupyterServerAppSettings struct {
// The default instance type and the Amazon Resource Name (ARN) of the default
- // SageMaker image used by the JupyterServer app.
+ // SageMaker image used by the JupyterServer app. If you use the
+ // LifecycleConfigArns parameter, then this parameter is also required.
DefaultResourceSpec *ResourceSpec
// The Amazon Resource Name (ARN) of the Lifecycle Configurations attached to the
- // JupyterServerApp.
+ // JupyterServerApp. If you use this parameter, the DefaultResourceSpec parameter
+ // is also required. To remove a Lifecycle Config, you must set LifecycleConfigArns
+ // to an empty list.
LifecycleConfigArns []string
noSmithyDocumentSerde
@@ -6076,11 +6571,16 @@ type KernelGatewayAppSettings struct {
CustomImages []CustomImage
// The default instance type and the Amazon Resource Name (ARN) of the default
- // SageMaker image used by the KernelGateway app.
+ // SageMaker image used by the KernelGateway app. The Amazon SageMaker Studio UI
+ // does not use the default instance type value set here. The default instance type
+ // set here is used when Apps are created using the Amazon Web Services Command
+ // Line Interface or Amazon Web Services CloudFormation and the instance type
+ // parameter value is not passed.
DefaultResourceSpec *ResourceSpec
// The Amazon Resource Name (ARN) of the Lifecycle Configurations attached to the
- // the user profile or domain.
+ // the user profile or domain. To remove a Lifecycle Config, you must set
+ // LifecycleConfigArns to an empty list.
LifecycleConfigArns []string
noSmithyDocumentSerde
@@ -6196,8 +6696,8 @@ type LabelingJobAlgorithmsConfig struct {
type LabelingJobDataAttributes struct {
// Declares that your content is free of personally identifiable information or
- // adult content. Amazon SageMaker may restrict the Amazon Mechanical Turk workers
- // that can view your task based on this information.
+ // adult content. SageMaker may restrict the Amazon Mechanical Turk workers that
+ // can view your task based on this information.
ContentClassifiers []ContentClassifier
noSmithyDocumentSerde
@@ -6277,8 +6777,8 @@ type LabelingJobOutput struct {
// This member is required.
OutputDatasetS3Uri *string
- // The Amazon Resource Name (ARN) for the most recent Amazon SageMaker model
- // trained as part of automated data labeling.
+ // The Amazon Resource Name (ARN) for the most recent SageMaker model trained as
+ // part of automated data labeling.
FinalActiveLearningModelArn *string
noSmithyDocumentSerde
@@ -6477,6 +6977,28 @@ type LambdaStepMetadata struct {
noSmithyDocumentSerde
}
+// Lists a summary of the properties of a lineage group. A lineage group provides a
+// group of shareable lineage entity resources.
+type LineageGroupSummary struct {
+
+ // The creation time of the lineage group summary.
+ CreationTime *time.Time
+
+ // The display name of the lineage group summary.
+ DisplayName *string
+
+ // The last modified time of the lineage group summary.
+ LastModifiedTime *time.Time
+
+ // The Amazon Resource Name (ARN) of the lineage group resource.
+ LineageGroupArn *string
+
+ // The name or Amazon Resource Name (ARN) of the lineage group.
+ LineageGroupName *string
+
+ noSmithyDocumentSerde
+}
+
// Defines an Amazon Cognito or your own OIDC IdP user group that is part of a work
// team.
type MemberDefinition struct {
@@ -6537,6 +7059,11 @@ type MetricDatum struct {
// The dataset split from which the AutoML job produced the metric.
Set MetricSetSource
+ // The name of the standard metric. For definitions of the standard metrics, see
+ // Autopilot candidate metrics
+ // (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-metrics).
+ StandardMetricName AutoMLMetricExtendedEnum
+
// The value of the metric.
Value float32
@@ -6544,9 +7071,9 @@ type MetricDatum struct {
}
// Specifies a metric that the training algorithm writes to stderr or stdout.
-// Amazon SageMakerhyperparameter tuning captures all defined metrics. You specify
-// one metric that a hyperparameter tuning job uses as its objective metric to
-// choose the best training job.
+// SageMakerhyperparameter tuning captures all defined metrics. You specify one
+// metric that a hyperparameter tuning job uses as its objective metric to choose
+// the best training job.
type MetricDefinition struct {
// The name of the metric.
@@ -6652,15 +7179,30 @@ type ModelBiasJobInput struct {
// job invocation.
type ModelClientConfig struct {
- // The maximum number of retries when invocation requests are failing.
+ // The maximum number of retries when invocation requests are failing. The default
+ // value is 3.
InvocationsMaxRetries *int32
- // The timeout value in seconds for an invocation request.
+ // The timeout value in seconds for an invocation request. The default value is
+ // 600.
InvocationsTimeoutInSeconds *int32
noSmithyDocumentSerde
}
+// Defines the model configuration. Includes the specification name and environment
+// parameters.
+type ModelConfiguration struct {
+
+ // Defines the environment parameters that includes key, value types, and values.
+ EnvironmentParameters []EnvironmentParameter
+
+ // The inference specification name in the model package version.
+ InferenceSpecificationName *string
+
+ noSmithyDocumentSerde
+}
+
// Data quality constraints and statistics for a model.
type ModelDataQuality struct {
@@ -6756,6 +7298,88 @@ type ModelExplainabilityJobInput struct {
noSmithyDocumentSerde
}
+// Input object for the model.
+type ModelInput struct {
+
+ // The input configuration object for the model.
+ //
+ // This member is required.
+ DataInputConfig *string
+
+ noSmithyDocumentSerde
+}
+
+// The model latency threshold.
+type ModelLatencyThreshold struct {
+
+ // The model latency percentile threshold.
+ Percentile *string
+
+ // The model latency percentile value in milliseconds.
+ ValueInMilliseconds int32
+
+ noSmithyDocumentSerde
+}
+
+// Part of the search expression. You can specify the name and value (domain, task,
+// framework, framework version, task, and model).
+type ModelMetadataFilter struct {
+
+ // The name of the of the model to filter by.
+ //
+ // This member is required.
+ Name ModelMetadataFilterType
+
+ // The value to filter the model metadata.
+ //
+ // This member is required.
+ Value *string
+
+ noSmithyDocumentSerde
+}
+
+// One or more filters that searches for the specified resource or resources in a
+// search. All resource objects that satisfy the expression's condition are
+// included in the search results
+type ModelMetadataSearchExpression struct {
+
+ // A list of filter objects.
+ Filters []ModelMetadataFilter
+
+ noSmithyDocumentSerde
+}
+
+// A summary of the model metadata.
+type ModelMetadataSummary struct {
+
+ // The machine learning domain of the model.
+ //
+ // This member is required.
+ Domain *string
+
+ // The machine learning framework of the model.
+ //
+ // This member is required.
+ Framework *string
+
+ // The framework version of the model.
+ //
+ // This member is required.
+ FrameworkVersion *string
+
+ // The name of the model.
+ //
+ // This member is required.
+ Model *string
+
+ // The machine learning task of the model.
+ //
+ // This member is required.
+ Task *string
+
+ noSmithyDocumentSerde
+}
+
// Contains metrics captured from a model.
type ModelMetrics struct {
@@ -6777,6 +7401,9 @@ type ModelMetrics struct {
// A versioned model that can be deployed for SageMaker inference.
type ModelPackage struct {
+ // An array of additional Inference Specification objects.
+ AdditionalInferenceSpecifications []AdditionalInferenceSpecificationDefinition
+
// A description provided when the model approval is set.
ApprovalDescription *string
@@ -6788,7 +7415,7 @@ type ModelPackage struct {
CertifyForMarketplace bool
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *UserContext
// The time that the model package was created.
@@ -6797,11 +7424,20 @@ type ModelPackage struct {
// The metadata properties for the model package.
CustomerMetadataProperties map[string]string
+ // The machine learning domain of your model package and its components. Common
+ // machine learning domains include computer vision and natural language
+ // processing.
+ Domain *string
+
+ // Represents the drift check baselines that can be used when the model monitor is
+ // set using the model package.
+ DriftCheckBaselines *DriftCheckBaselines
+
// Defines how to perform inference generation after a training job is run.
InferenceSpecification *InferenceSpecification
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *UserContext
// The last time the model package was modified.
@@ -6859,6 +7495,10 @@ type ModelPackage struct {
// The version number of a versioned model.
ModelPackageVersion *int32
+ // The Amazon Simple Storage Service path where the sample payload are stored. This
+ // path must point to a single gzip compressed tar archive (.tar.gz suffix).
+ SamplePayloadUrl *string
+
// A list of algorithms that were used to create a model package.
SourceAlgorithmSpecification *SourceAlgorithmSpecification
@@ -6868,7 +7508,11 @@ type ModelPackage struct {
// Web Services General Reference Guide.
Tags []Tag
- // Specifies batch transform jobs that Amazon SageMaker runs to validate your model
+ // The machine learning task your model package accomplishes. Common machine
+ // learning tasks include object detection and image classification.
+ Task *string
+
+ // Specifies batch transform jobs that SageMaker runs to validate your model
// package.
ValidationSpecification *ModelPackageValidationSpecification
@@ -6880,8 +7524,8 @@ type ModelPackageContainerDefinition struct {
// The Amazon EC2 Container Registry (Amazon ECR) path where inference code is
// stored. If you are using your own custom algorithm instead of an algorithm
- // provided by Amazon SageMaker, the inference code must meet Amazon SageMaker
- // requirements. Amazon SageMaker supports both registry/repository[:tag] and
+ // provided by SageMaker, the inference code must meet SageMaker requirements.
+ // SageMaker supports both registry/repository[:tag] and
// registry/repository[@digest] image path formats. For more information, see Using
// Your Own Algorithms with Amazon SageMaker
// (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html).
@@ -6897,6 +7541,12 @@ type ModelPackageContainerDefinition struct {
// up to 16 entries in the map.
Environment map[string]string
+ // The machine learning framework of the model package container image.
+ Framework *string
+
+ // The framework version of the Model Package Container Image.
+ FrameworkVersion *string
+
// An MD5 hash of the training algorithm that identifies the Docker image used for
// training.
ImageDigest *string
@@ -6907,6 +7557,14 @@ type ModelPackageContainerDefinition struct {
// same region as the model package.
ModelDataUrl *string
+ // A structure with Model Input details.
+ ModelInput *ModelInput
+
+ // The name of a pre-trained machine learning benchmarked by Amazon SageMaker
+ // Inference Recommender model that matches your model. You can find a list of
+ // benchmarked models by calling ListModelMetadata.
+ NearestModelName *string
+
// The Amazon Web Services Marketplace product ID of the model package.
ProductId *string
@@ -6917,7 +7575,7 @@ type ModelPackageContainerDefinition struct {
type ModelPackageGroup struct {
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *UserContext
// The time that the model group was created.
@@ -7089,12 +7747,12 @@ type ModelPackageValidationProfile struct {
noSmithyDocumentSerde
}
-// Specifies batch transform jobs that Amazon SageMaker runs to validate your model
+// Specifies batch transform jobs that SageMaker runs to validate your model
// package.
type ModelPackageValidationSpecification struct {
// An array of ModelPackageValidationProfile objects, each of which specifies a
- // batch transform job that Amazon SageMaker runs to validate your model package.
+ // batch transform job that SageMaker runs to validate your model package.
//
// This member is required.
ValidationProfiles []ModelPackageValidationProfile
@@ -7793,7 +8451,7 @@ type NotebookInstanceLifecycleHook struct {
noSmithyDocumentSerde
}
-// Provides summary information for an Amazon SageMaker notebook instance.
+// Provides summary information for an SageMaker notebook instance.
type NotebookInstanceSummary struct {
// The Amazon Resource Name (ARN) of the notebook instance.
@@ -7812,7 +8470,7 @@ type NotebookInstanceSummary struct {
// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any
// other Git repository. These repositories are cloned at the same level as the
// default repository of your notebook instance. For more information, see
- // Associating Git Repositories with Amazon SageMaker Notebook Instances
+ // Associating Git Repositories with SageMaker Notebook Instances
// (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
AdditionalCodeRepositories []string
@@ -7826,7 +8484,7 @@ type NotebookInstanceSummary struct {
// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any
// other Git repository. When you open a notebook instance, it opens in the
// directory that contains this repository. For more information, see Associating
- // Git Repositories with Amazon SageMaker Notebook Instances
+ // Git Repositories with SageMaker Notebook Instances
// (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
DefaultCodeRepository *string
@@ -7845,7 +8503,7 @@ type NotebookInstanceSummary struct {
// The status of the notebook instance.
NotebookInstanceStatus NotebookInstanceStatus
- // The URL that you use to connect to the Jupyter instance running in your notebook
+ // The URL that you use to connect to the Jupyter notebook running in your notebook
// instance.
Url *string
@@ -8244,18 +8902,18 @@ type OutputConfig struct {
// artifacts).
type OutputDataConfig struct {
- // Identifies the S3 path where you want Amazon SageMaker to store the model
- // artifacts. For example, s3://bucket-name/key-name-prefix.
+ // Identifies the S3 path where you want SageMaker to store the model artifacts.
+ // For example, s3://bucket-name/key-name-prefix.
//
// This member is required.
S3OutputPath *string
// The Amazon Web Services Key Management Service (Amazon Web Services KMS) key
- // that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon
- // S3 server-side encryption. The KmsKeyId can be any of the following formats:
+ // that SageMaker uses to encrypt the model artifacts at rest using Amazon S3
+ // server-side encryption. The KmsKeyId can be any of the following formats:
//
- // *
- // // KMS Key ID "1234abcd-12ab-34cd-56ef-1234567890ab"
+ // * //
+ // KMS Key ID "1234abcd-12ab-34cd-56ef-1234567890ab"
//
// * // Amazon Resource Name
// (ARN) of a KMS Key
@@ -8268,10 +8926,10 @@ type OutputDataConfig struct {
// Key Alias "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"
//
// If you use a
- // KMS key ID or an alias of your KMS key, the Amazon SageMaker execution role must
+ // KMS key ID or an alias of your KMS key, the SageMaker execution role must
// include permissions to call kms:Encrypt. If you don't provide a KMS key ID,
- // Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account.
- // Amazon SageMaker uses server-side encryption with KMS-managed keys for
+ // SageMaker uses the default KMS key for Amazon S3 for your role's account.
+ // SageMaker uses server-side encryption with KMS-managed keys for
// OutputDataConfig. If you use a bucket policy with an s3:PutObject permission
// that only allows objects with server-side encryption, set the condition key of
// s3:x-amz-server-side-encryption to "aws:kms". For more information, see
@@ -8304,6 +8962,19 @@ type OutputParameter struct {
noSmithyDocumentSerde
}
+// Configuration that controls the parallelism of the pipeline. By default, the
+// parallelism configuration specified applies to all executions of the pipeline
+// unless overridden.
+type ParallelismConfiguration struct {
+
+ // The max number of steps that can be executed in parallel.
+ //
+ // This member is required.
+ MaxParallelExecutionSteps int32
+
+ noSmithyDocumentSerde
+}
+
// Assigns a value to a named Pipeline parameter.
type Parameter struct {
@@ -8428,6 +9099,9 @@ type PendingProductionVariantSummary struct {
// The number of instances associated with the variant.
CurrentInstanceCount *int32
+ // The serverless configuration for the endpoint.
+ CurrentServerlessConfig *ProductionVariantServerlessConfig
+
// The weight associated with the variant.
CurrentWeight *float32
@@ -8440,6 +9114,10 @@ type PendingProductionVariantSummary struct {
// the CreateEndpointConfig operation.
DesiredInstanceCount *int32
+ // The serverless configuration requested for this deployment, as specified in the
+ // endpoint configuration for the endpoint.
+ DesiredServerlessConfig *ProductionVariantServerlessConfig
+
// The requested weight for the variant in this deployment, as specified in the
// endpoint configuration for the endpoint. The value is taken from the request to
// the CreateEndpointConfig operation.
@@ -8455,18 +9133,33 @@ type PendingProductionVariantSummary struct {
noSmithyDocumentSerde
}
+// Defines the traffic pattern.
+type Phase struct {
+
+ // Specifies how long traffic phase should be.
+ DurationInSeconds *int32
+
+ // Specifies how many concurrent users to start with.
+ InitialNumberOfUsers *int32
+
+ // Specified how many new users to spawn in a minute.
+ SpawnRate *int32
+
+ noSmithyDocumentSerde
+}
+
// A SageMaker Model Building Pipeline instance.
type Pipeline struct {
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *UserContext
// The creation time of the pipeline.
CreationTime *time.Time
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *UserContext
// The time that the pipeline was last modified.
@@ -8475,6 +9168,9 @@ type Pipeline struct {
// The time when the pipeline was last run.
LastRunTime *time.Time
+ // The parallelism configuration applied to the pipeline.
+ ParallelismConfiguration *ParallelismConfiguration
+
// The Amazon Resource Name (ARN) of the pipeline.
PipelineArn *string
@@ -8499,11 +9195,31 @@ type Pipeline struct {
noSmithyDocumentSerde
}
+// The location of the pipeline definition stored in Amazon S3.
+type PipelineDefinitionS3Location struct {
+
+ // Name of the S3 bucket.
+ //
+ // This member is required.
+ Bucket *string
+
+ // The object key (or key name) uniquely identifies the object in an S3 bucket.
+ //
+ // This member is required.
+ ObjectKey *string
+
+ // Version Id of the pipeline definition file. If not specified, Amazon SageMaker
+ // will retrieve the latest version.
+ VersionId *string
+
+ noSmithyDocumentSerde
+}
+
// An execution of a pipeline.
type PipelineExecution struct {
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *UserContext
// The creation time of the pipeline execution.
@@ -8513,12 +9229,15 @@ type PipelineExecution struct {
FailureReason *string
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *UserContext
// The time that the pipeline execution was last modified.
LastModifiedTime *time.Time
+ // The parallelism configuration applied to the pipeline execution.
+ ParallelismConfiguration *ParallelismConfiguration
+
// The Amazon Resource Name (ARN) of the pipeline that was executed.
PipelineArn *string
@@ -8546,6 +9265,11 @@ type PipelineExecution struct {
// An execution of a step in a pipeline.
type PipelineExecutionStep struct {
+ // The current attempt of the execution step. For more information, see Retry
+ // Policy for SageMaker Pipelines steps
+ // (https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-retry-policy.html).
+ AttemptCount int32
+
// If this pipeline execution step was cached, details on the cache hit.
CacheHitResult *CacheHitResult
@@ -8562,6 +9286,12 @@ type PipelineExecutionStep struct {
// The time that the step started executing.
StartTime *time.Time
+ // The description of the step.
+ StepDescription *string
+
+ // The display name of the step.
+ StepDisplayName *string
+
// The name of the step that is executed.
StepName *string
@@ -8578,9 +9308,42 @@ type PipelineExecutionStepMetadata struct {
// generated token, and a list of output parameters.
Callback *CallbackStepMetadata
+ // Container for the metadata for a Clarify check step. The configurations and
+ // outcomes of the check step execution. This includes:
+ //
+ // * The type of the check
+ // conducted,
+ //
+ // * The Amazon S3 URIs of baseline constraints and statistics files to
+ // be used for the drift check.
+ //
+ // * The Amazon S3 URIs of newly calculated baseline
+ // constraints and statistics.
+ //
+ // * The model package group name provided.
+ //
+ // * The
+ // Amazon S3 URI of the violation report if violations detected.
+ //
+ // * The Amazon
+ // Resource Name (ARN) of check processing job initiated by the step execution.
+ //
+ // *
+ // The boolean flags indicating if the drift check is skipped.
+ //
+ // * If step property
+ // BaselineUsedForDriftCheck is set the same as CalculatedBaseline.
+ ClarifyCheck *ClarifyCheckStepMetadata
+
// The outcome of the condition evaluation that was run by this step execution.
Condition *ConditionStepMetadata
+ // The configurations and outcomes of an EMR step execution.
+ EMR *EMRStepMetadata
+
+ // The configurations and outcomes of a Fail step execution.
+ Fail *FailStepMetadata
+
// The Amazon Resource Name (ARN) of the Lambda function that was run by this step
// execution and a list of output parameters.
Lambda *LambdaStepMetadata
@@ -8593,6 +9356,33 @@ type PipelineExecutionStepMetadata struct {
// execution.
ProcessingJob *ProcessingJobStepMetadata
+ // The configurations and outcomes of the check step execution. This includes:
+ //
+ // *
+ // The type of the check conducted,
+ //
+ // * The Amazon S3 URIs of baseline constraints
+ // and statistics files to be used for the drift check.
+ //
+ // * The Amazon S3 URIs of
+ // newly calculated baseline constraints and statistics.
+ //
+ // * The model package group
+ // name provided.
+ //
+ // * The Amazon S3 URI of the violation report if violations
+ // detected.
+ //
+ // * The Amazon Resource Name (ARN) of check processing job initiated by
+ // the step execution.
+ //
+ // * The boolean flags indicating if the drift check is
+ // skipped.
+ //
+ // * If step property BaselineUsedForDriftCheck is set the same as
+ // CalculatedBaseline.
+ QualityCheck *QualityCheckStepMetadata
+
// The Amazon Resource Name (ARN) of the model package the model was registered to
// by this step execution.
RegisterModel *RegisterModelStepMetadata
@@ -8624,6 +9414,10 @@ type PipelineExecutionSummary struct {
// The display name of the pipeline execution.
PipelineExecutionDisplayName *string
+ // A message generated by SageMaker Pipelines describing why the pipeline execution
+ // failed.
+ PipelineExecutionFailureReason *string
+
// The status of the pipeline execution.
PipelineExecutionStatus PipelineExecutionStatus
@@ -9042,20 +9836,10 @@ type ProcessingStoppingCondition struct {
}
// Identifies a model that you want to host and the resources chosen to deploy for
-// hosting it. If you are deploying multiple models, tell Amazon SageMaker how to
+// hosting it. If you are deploying multiple models, tell SageMaker how to
// distribute traffic among the models by specifying variant weights.
type ProductionVariant struct {
- // Number of instances to launch initially.
- //
- // This member is required.
- InitialInstanceCount *int32
-
- // The ML compute instance type.
- //
- // This member is required.
- InstanceType ProductionVariantInstanceType
-
// The name of the model that you want to host. This is the name that you specified
// when creating the model.
//
@@ -9077,12 +9861,22 @@ type ProductionVariant struct {
// process crashes.
CoreDumpConfig *ProductionVariantCoreDumpConfig
+ // Number of instances to launch initially.
+ InitialInstanceCount *int32
+
// Determines initial traffic distribution among all of the models that you specify
// in the endpoint configuration. The traffic to a production variant is determined
// by the ratio of the VariantWeight to the sum of all VariantWeight values across
// all ProductionVariants. If unspecified, it defaults to 1.0.
InitialVariantWeight *float32
+ // The ML compute instance type.
+ InstanceType ProductionVariantInstanceType
+
+ // The serverless configuration for an endpoint. Specifies a serverless endpoint
+ // configuration instead of an instance-based endpoint configuration.
+ ServerlessConfig *ProductionVariantServerlessConfig
+
noSmithyDocumentSerde
}
@@ -9096,7 +9890,7 @@ type ProductionVariantCoreDumpConfig struct {
DestinationS3Uri *string
// The Amazon Web Services Key Management Service (Amazon Web Services KMS) key
- // that Amazon SageMaker uses to encrypt the core dump data at rest using Amazon S3
+ // that SageMaker uses to encrypt the core dump data at rest using Amazon S3
// server-side encryption. The KmsKeyId can be any of the following formats:
//
// * //
@@ -9113,10 +9907,10 @@ type ProductionVariantCoreDumpConfig struct {
// Key Alias "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"
//
// If you use a
- // KMS key ID or an alias of your KMS key, the Amazon SageMaker execution role must
+ // KMS key ID or an alias of your KMS key, the SageMaker execution role must
// include permissions to call kms:Encrypt. If you don't provide a KMS key ID,
- // Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account.
- // Amazon SageMaker uses server-side encryption with KMS-managed keys for
+ // SageMaker uses the default KMS key for Amazon S3 for your role's account.
+ // SageMaker uses server-side encryption with KMS-managed keys for
// OutputDataConfig. If you use a bucket policy with an s3:PutObject permission
// that only allows objects with server-side encryption, set the condition key of
// s3:x-amz-server-side-encryption to "aws:kms". For more information, see
@@ -9133,6 +9927,24 @@ type ProductionVariantCoreDumpConfig struct {
noSmithyDocumentSerde
}
+// Specifies the serverless configuration for an endpoint variant.
+type ProductionVariantServerlessConfig struct {
+
+ // The maximum number of concurrent invocations your serverless endpoint can
+ // process.
+ //
+ // This member is required.
+ MaxConcurrency *int32
+
+ // The memory size of your serverless endpoint. Valid values are in 1 GB
+ // increments: 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB, or 6144 MB.
+ //
+ // This member is required.
+ MemorySizeInMB *int32
+
+ noSmithyDocumentSerde
+}
+
// Describes the status of the production variant.
type ProductionVariantStatus struct {
@@ -9180,6 +9992,9 @@ type ProductionVariantSummary struct {
// The number of instances associated with the variant.
CurrentInstanceCount *int32
+ // The serverless configuration for the endpoint.
+ CurrentServerlessConfig *ProductionVariantServerlessConfig
+
// The weight associated with the variant.
CurrentWeight *float32
@@ -9191,6 +10006,9 @@ type ProductionVariantSummary struct {
// request.
DesiredInstanceCount *int32
+ // The serverless configuration requested for the endpoint update.
+ DesiredServerlessConfig *ProductionVariantServerlessConfig
+
// The requested weight, as specified in the UpdateEndpointWeightsAndCapacities
// request.
DesiredWeight *float32
@@ -9321,7 +10139,7 @@ type Project struct {
CreationTime *time.Time
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *UserContext
// A timestamp container for when the project was last modified.
@@ -9658,6 +10476,236 @@ type PublicWorkforceTaskPrice struct {
noSmithyDocumentSerde
}
+// Container for the metadata for a Quality check step. For more information, see
+// the topic on QualityCheck step
+// (https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-quality-check)
+// in the Amazon SageMaker Developer Guide.
+type QualityCheckStepMetadata struct {
+
+ // The Amazon S3 URI of the baseline constraints file used for the drift check.
+ BaselineUsedForDriftCheckConstraints *string
+
+ // The Amazon S3 URI of the baseline statistics file used for the drift check.
+ BaselineUsedForDriftCheckStatistics *string
+
+ // The Amazon S3 URI of the newly calculated baseline constraints file.
+ CalculatedBaselineConstraints *string
+
+ // The Amazon S3 URI of the newly calculated baseline statistics file.
+ CalculatedBaselineStatistics *string
+
+ // The Amazon Resource Name (ARN) of the Quality check processing job that was run
+ // by this step execution.
+ CheckJobArn *string
+
+ // The type of the Quality check step.
+ CheckType *string
+
+ // The model package group name.
+ ModelPackageGroupName *string
+
+ // This flag indicates if a newly calculated baseline can be accessed through step
+ // properties BaselineUsedForDriftCheckConstraints and
+ // BaselineUsedForDriftCheckStatistics. If it is set to False, the previous
+ // baseline of the configured check type must also be available. These can be
+ // accessed through the BaselineUsedForDriftCheckConstraints and
+ // BaselineUsedForDriftCheckStatistics properties.
+ RegisterNewBaseline bool
+
+ // This flag indicates if the drift check against the previous baseline will be
+ // skipped or not. If it is set to False, the previous baseline of the configured
+ // check type must be available.
+ SkipCheck bool
+
+ // The Amazon S3 URI of violation report if violations are detected.
+ ViolationReport *string
+
+ noSmithyDocumentSerde
+}
+
+// A set of filters to narrow the set of lineage entities connected to the
+// StartArn(s) returned by the QueryLineage API action.
+type QueryFilters struct {
+
+ // Filter the lineage entities connected to the StartArn(s) after the create date.
+ CreatedAfter *time.Time
+
+ // Filter the lineage entities connected to the StartArn(s) by created date.
+ CreatedBefore *time.Time
+
+ // Filter the lineage entities connected to the StartArn(s) by the type of the
+ // lineage entity.
+ LineageTypes []LineageType
+
+ // Filter the lineage entities connected to the StartArn(s) after the last modified
+ // date.
+ ModifiedAfter *time.Time
+
+ // Filter the lineage entities connected to the StartArn(s) before the last
+ // modified date.
+ ModifiedBefore *time.Time
+
+ // Filter the lineage entities connected to the StartArn(s) by a set if property
+ // key value pairs. If multiple pairs are provided, an entity is included in the
+ // results if it matches any of the provided pairs.
+ Properties map[string]string
+
+ // Filter the lineage entities connected to the StartArn by type. For example:
+ // DataSet, Model, Endpoint, or ModelDeployment.
+ Types []string
+
+ noSmithyDocumentSerde
+}
+
+// Provides information about the output configuration for the compiled model.
+type RecommendationJobCompiledOutputConfig struct {
+
+ // Identifies the Amazon S3 bucket where you want SageMaker to store the compiled
+ // model artifacts.
+ S3OutputUri *string
+
+ noSmithyDocumentSerde
+}
+
+// The input configuration of the recommendation job.
+type RecommendationJobInputConfig struct {
+
+ // The Amazon Resource Name (ARN) of a versioned model package.
+ //
+ // This member is required.
+ ModelPackageVersionArn *string
+
+ // Specifies the endpoint configuration to use for a job.
+ EndpointConfigurations []EndpointInputConfiguration
+
+ // Specifies the maximum duration of the job, in seconds.>
+ JobDurationInSeconds *int32
+
+ // Defines the resource limit of the job.
+ ResourceLimit *RecommendationJobResourceLimit
+
+ // Specifies the traffic pattern of the job.
+ TrafficPattern *TrafficPattern
+
+ // The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service
+ // (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the
+ // storage volume attached to the ML compute instance that hosts the endpoint. This
+ // key will be passed to SageMaker Hosting for endpoint creation. The SageMaker
+ // execution role must have kms:CreateGrant permission in order to encrypt data on
+ // the storage volume of the endpoints created for inference recommendation. The
+ // inference recommendation job will fail asynchronously during endpoint
+ // configuration creation if the role passed does not have kms:CreateGrant
+ // permission. The KmsKeyId can be any of the following formats:
+ //
+ // * // KMS Key ID
+ // "1234abcd-12ab-34cd-56ef-1234567890ab"
+ //
+ // * // Amazon Resource Name (ARN) of a KMS
+ // Key "arn:aws:kms:::key/"
+ //
+ // * // KMS Key Alias "alias/ExampleAlias"
+ //
+ // * // Amazon
+ // Resource Name (ARN) of a KMS Key Alias "arn:aws:kms:::alias/"
+ //
+ // For more
+ // information about key identifiers, see Key identifiers (KeyID)
+ // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id)
+ // in the Amazon Web Services Key Management Service (Amazon Web Services KMS)
+ // documentation.
+ VolumeKmsKeyId *string
+
+ noSmithyDocumentSerde
+}
+
+// Provides information about the output configuration for the compiled model.
+type RecommendationJobOutputConfig struct {
+
+ // Provides information about the output configuration for the compiled model.
+ CompiledOutputConfig *RecommendationJobCompiledOutputConfig
+
+ // The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service
+ // (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt your output
+ // artifacts with Amazon S3 server-side encryption. The SageMaker execution role
+ // must have kms:GenerateDataKey permission. The KmsKeyId can be any of the
+ // following formats:
+ //
+ // * // KMS Key ID "1234abcd-12ab-34cd-56ef-1234567890ab"
+ //
+ // * //
+ // Amazon Resource Name (ARN) of a KMS Key "arn:aws:kms:::key/"
+ //
+ // * // KMS Key Alias
+ // "alias/ExampleAlias"
+ //
+ // * // Amazon Resource Name (ARN) of a KMS Key Alias
+ // "arn:aws:kms:::alias/"
+ //
+ // For more information about key identifiers, see Key
+ // identifiers (KeyID)
+ // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id)
+ // in the Amazon Web Services Key Management Service (Amazon Web Services KMS)
+ // documentation.
+ KmsKeyId *string
+
+ noSmithyDocumentSerde
+}
+
+// Specifies the maximum number of jobs that can run in parallel and the maximum
+// number of jobs that can run.
+type RecommendationJobResourceLimit struct {
+
+ // Defines the maximum number of load tests.
+ MaxNumberOfTests *int32
+
+ // Defines the maximum number of parallel load tests.
+ MaxParallelOfTests *int32
+
+ noSmithyDocumentSerde
+}
+
+// Specifies conditions for stopping a job. When a job reaches a stopping condition
+// limit, SageMaker ends the job.
+type RecommendationJobStoppingConditions struct {
+
+ // The maximum number of requests per minute expected for the endpoint.
+ MaxInvocations int32
+
+ // The interval of time taken by a model to respond as viewed from SageMaker. The
+ // interval includes the local communication time taken to send the request and to
+ // fetch the response from the container of a model and the time taken to complete
+ // the inference in the container.
+ ModelLatencyThresholds []ModelLatencyThreshold
+
+ noSmithyDocumentSerde
+}
+
+// The metrics of recommendations.
+type RecommendationMetrics struct {
+
+ // Defines the cost per hour for the instance.
+ //
+ // This member is required.
+ CostPerHour float32
+
+ // Defines the cost per inference for the instance .
+ //
+ // This member is required.
+ CostPerInference float32
+
+ // The expected maximum number of requests per minute for the instance.
+ //
+ // This member is required.
+ MaxInvocations int32
+
+ // The expected model latency at maximum invocation per minute for the instance.
+ //
+ // This member is required.
+ ModelLatency int32
+
+ noSmithyDocumentSerde
+}
+
// Configuration for Redshift Dataset Definition input.
type RedshiftDatasetDefinition struct {
@@ -9801,10 +10849,10 @@ type ResourceConfig struct {
// store model artifacts and incremental states. Training algorithms might also use
// the ML storage volume for scratch space. If you want to store the training data
// in the ML storage volume, choose File as the TrainingInputMode in the algorithm
- // specification. You must specify sufficient ML storage for your scenario. Amazon
+ // specification. You must specify sufficient ML storage for your scenario.
// SageMaker supports only the General Purpose SSD (gp2) ML storage volume type.
// Certain Nitro-based instances include local storage with a fixed total size,
- // dependent on the instance type. When using these instances for training, Amazon
+ // dependent on the instance type. When using these instances for training,
// SageMaker mounts the local instance storage instead of Amazon EBS gp2 storage.
// You can't request a VolumeSizeInGB greater than the total size of the local
// instance storage. For a list of instance types that support local instance
@@ -9814,13 +10862,13 @@ type ResourceConfig struct {
// This member is required.
VolumeSizeInGB int32
- // The Amazon Web Services KMS key that Amazon SageMaker uses to encrypt data on
- // the storage volume attached to the ML compute instance(s) that run the training
- // job. Certain Nitro-based instances include local storage, dependent on the
- // instance type. Local storage volumes are encrypted using a hardware module on
- // the instance. You can't request a VolumeKmsKeyId when using an instance type
- // with local storage. For a list of instance types that support local instance
- // storage, see Instance Store Volumes
+ // The Amazon Web Services KMS key that SageMaker uses to encrypt data on the
+ // storage volume attached to the ML compute instance(s) that run the training job.
+ // Certain Nitro-based instances include local storage, dependent on the instance
+ // type. Local storage volumes are encrypted using a hardware module on the
+ // instance. You can't request a VolumeKmsKeyId when using an instance type with
+ // local storage. For a list of instance types that support local instance storage,
+ // see Instance Store Volumes
// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes).
// For more information about local instance storage encryption, see SSD Instance
// Store Volumes
@@ -9860,7 +10908,9 @@ type ResourceLimits struct {
// instance type that the version runs on.
type ResourceSpec struct {
- // The instance type that the image version runs on.
+ // The instance type that the image version runs on. JupyterServer Apps only
+ // support the system value. KernelGateway Apps do not support the system value,
+ // but support all other values for available instance types.
InstanceType AppInstanceType
// The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the
@@ -9904,6 +10954,14 @@ type RetryStrategy struct {
// A collection of settings that apply to an RSessionGateway app.
type RSessionAppSettings struct {
+
+ // A list of custom SageMaker images that are configured to run as a RSession app.
+ CustomImages []CustomImage
+
+ // Specifies the ARN's of a SageMaker image and SageMaker image version, and the
+ // instance type that the version runs on.
+ DefaultResourceSpec *ResourceSpec
+
noSmithyDocumentSerde
}
@@ -9963,10 +11021,10 @@ type RStudioServerProDomainSettingsForUpdate struct {
// Describes the S3 data source.
type S3DataSource struct {
- // If you choose S3Prefix, S3Uri identifies a key name prefix. Amazon SageMaker
- // uses all objects that match the specified key name prefix for model training. If
- // you choose ManifestFile, S3Uri identifies an object that is a manifest file
- // containing a list of object keys that you want Amazon SageMaker to use for model
+ // If you choose S3Prefix, S3Uri identifies a key name prefix. SageMaker uses all
+ // objects that match the specified key name prefix for model training. If you
+ // choose ManifestFile, S3Uri identifies an object that is a manifest file
+ // containing a list of object keys that you want SageMaker to use for model
// training. If you choose AugmentedManifestFile, S3Uri identifies an object that
// is an augmented manifest file in JSON lines format. This file contains the data
// you want to use for model training. AugmentedManifestFile can only be used if
@@ -9994,7 +11052,7 @@ type S3DataSource struct {
// s3://customer_bucket/some/prefix/relative/path/to/custdata-1s3://customer_bucket/some/prefix/relative/path/custdata-2...s3://customer_bucket/some/prefix/relative/path/custdata-N
// The complete set of S3Uri in this manifest is the input data for the channel for
// this data source. The object that each S3Uri points to must be readable by the
- // IAM role that Amazon SageMaker uses to perform tasks on your behalf.
+ // IAM role that SageMaker uses to perform tasks on your behalf.
//
// This member is required.
S3Uri *string
@@ -10003,18 +11061,18 @@ type S3DataSource struct {
// augmented manifest file.
AttributeNames []string
- // If you want Amazon SageMaker to replicate the entire dataset on each ML compute
+ // If you want SageMaker to replicate the entire dataset on each ML compute
// instance that is launched for model training, specify FullyReplicated. If you
- // want Amazon SageMaker to replicate a subset of data on each ML compute instance
- // that is launched for model training, specify ShardedByS3Key. If there are n ML
- // compute instances launched for a training job, each instance gets approximately
- // 1/n of the number of S3 objects. In this case, model training on each machine
- // uses only the subset of training data. Don't choose more ML compute instances
- // for training than available S3 objects. If you do, some nodes won't get any data
- // and you will pay for nodes that aren't getting any training data. This applies
- // in both File and Pipe modes. Keep this in mind when developing algorithms. In
- // distributed training, where you use multiple ML compute EC2 instances, you might
- // choose ShardedByS3Key. If the algorithm requires copying training data to the ML
+ // want SageMaker to replicate a subset of data on each ML compute instance that is
+ // launched for model training, specify ShardedByS3Key. If there are n ML compute
+ // instances launched for a training job, each instance gets approximately 1/n of
+ // the number of S3 objects. In this case, model training on each machine uses only
+ // the subset of training data. Don't choose more ML compute instances for training
+ // than available S3 objects. If you do, some nodes won't get any data and you will
+ // pay for nodes that aren't getting any training data. This applies in both File
+ // and Pipe modes. Keep this in mind when developing algorithms. In distributed
+ // training, where you use multiple ML compute EC2 instances, you might choose
+ // ShardedByS3Key. If the algorithm requires copying training data to the ML
// storage volume (when TrainingInputMode is set to File), this copies 1/n of the
// number of objects.
S3DataDistributionType S3DataDistribution
@@ -10178,9 +11236,8 @@ type SearchRecord struct {
// transitioned through. A training job can be in one of several states, for
// example, starting, downloading, training, or uploading. Within each state, there
// are a number of intermediate states. For example, within the starting state,
-// Amazon SageMaker could be starting the training job or launching the ML
-// instances. These transitional states are referred to as the job's secondary
-// status.
+// SageMaker could be starting the training job or launching the ML instances.
+// These transitional states are referred to as the job's secondary status.
type SecondaryStatusTransition struct {
// A timestamp that shows when the training job transitioned to the current
@@ -10246,29 +11303,29 @@ type SecondaryStatusTransition struct {
// ended.
EndTime *time.Time
- // A detailed description of the progress within a secondary status. Amazon
- // SageMaker provides secondary statuses and status messages that apply to each of
- // them: Starting
+ // A detailed description of the progress within a secondary status. SageMaker
+ // provides secondary statuses and status messages that apply to each of them:
+ // Starting
//
// * Starting the training job.
//
- // * Launching requested ML
- // instances.
+ // * Launching requested ML instances.
//
- // * Insufficient capacity error from EC2 while launching instances,
- // retrying!
+ // *
+ // Insufficient capacity error from EC2 while launching instances, retrying!
//
- // * Launched instance was unhealthy, replacing it!
+ // *
+ // Launched instance was unhealthy, replacing it!
//
- // * Preparing the
- // instances for training.
+ // * Preparing the instances for
+ // training.
//
// Training
//
// * Downloading the training image.
//
- // * Training
- // image download completed. Training in progress.
+ // * Training image
+ // download completed. Training in progress.
//
// Status messages are subject to
// change. Therefore, we recommend not including them in code that programmatically
@@ -10408,13 +11465,13 @@ type ShuffleConfig struct {
}
// Specifies an algorithm that was used to create the model package. The algorithm
-// must be either an algorithm resource in your Amazon SageMaker account or an
-// algorithm in Amazon Web Services Marketplace that you are subscribed to.
+// must be either an algorithm resource in your SageMaker account or an algorithm
+// in Amazon Web Services Marketplace that you are subscribed to.
type SourceAlgorithm struct {
// The name of an algorithm that was used to create the model package. The
- // algorithm must be either an algorithm resource in your Amazon SageMaker account
- // or an algorithm in Amazon Web Services Marketplace that you are subscribed to.
+ // algorithm must be either an algorithm resource in your SageMaker account or an
+ // algorithm in Amazon Web Services Marketplace that you are subscribed to.
//
// This member is required.
AlgorithmName *string
@@ -10459,37 +11516,36 @@ type SourceIpConfig struct {
// Specifies a limit to how long a model training job or model compilation job can
// run. It also specifies how long a managed spot training job has to complete.
-// When the job reaches the time limit, Amazon SageMaker ends the training or
-// compilation job. Use this API to cap model training costs. To stop a training
-// job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job
-// termination for 120 seconds. Algorithms can use this 120-second window to save
-// the model artifacts, so the results of training are not lost. The training
-// algorithms provided by Amazon SageMaker automatically save the intermediate
-// results of a model training job when possible. This attempt to save artifacts is
-// only a best effort case as model might not be in a state from which it can be
-// saved. For example, if training has just started, the model might not be ready
-// to save. When saved, this intermediate data is a valid model artifact. You can
-// use it to create a model with CreateModel. The Neural Topic Model (NTM)
-// currently does not support saving intermediate model artifacts. When training
-// NTMs, make sure that the maximum runtime is sufficient for the training job to
-// complete.
+// When the job reaches the time limit, SageMaker ends the training or compilation
+// job. Use this API to cap model training costs. To stop a training job, SageMaker
+// sends the algorithm the SIGTERM signal, which delays job termination for 120
+// seconds. Algorithms can use this 120-second window to save the model artifacts,
+// so the results of training are not lost. The training algorithms provided by
+// SageMaker automatically save the intermediate results of a model training job
+// when possible. This attempt to save artifacts is only a best effort case as
+// model might not be in a state from which it can be saved. For example, if
+// training has just started, the model might not be ready to save. When saved,
+// this intermediate data is a valid model artifact. You can use it to create a
+// model with CreateModel. The Neural Topic Model (NTM) currently does not support
+// saving intermediate model artifacts. When training NTMs, make sure that the
+// maximum runtime is sufficient for the training job to complete.
type StoppingCondition struct {
// The maximum length of time, in seconds, that a training or compilation job can
- // run. For compilation jobs, if the job does not complete during this time, you
- // will receive a TimeOut error. We recommend starting with 900 seconds and
- // increase as necessary based on your model. For all other jobs, if the job does
- // not complete during this time, Amazon SageMaker ends the job. When RetryStrategy
- // is specified in the job request, MaxRuntimeInSeconds specifies the maximum time
- // for all of the attempts in total, not each individual attempt. The default value
- // is 1 day. The maximum value is 28 days.
+ // run. For compilation jobs, if the job does not complete during this time, a
+ // TimeOut error is generated. We recommend starting with 900 seconds and
+ // increasing as necessary based on your model. For all other jobs, if the job does
+ // not complete during this time, SageMaker ends the job. When RetryStrategy is
+ // specified in the job request, MaxRuntimeInSeconds specifies the maximum time for
+ // all of the attempts in total, not each individual attempt. The default value is
+ // 1 day. The maximum value is 28 days.
MaxRuntimeInSeconds int32
// The maximum length of time, in seconds, that a managed Spot training job has to
// complete. It is the amount of time spent waiting for Spot capacity plus the
// amount of time the job can run. It must be equal to or greater than
- // MaxRuntimeInSeconds. If the job does not complete during this time, Amazon
- // SageMaker ends the job. When RetryStrategy is specified in the job request,
+ // MaxRuntimeInSeconds. If the job does not complete during this time, SageMaker
+ // ends the job. When RetryStrategy is specified in the job request,
// MaxWaitTimeInSeconds specifies the maximum time for all of the attempts in
// total, not each individual attempt.
MaxWaitTimeInSeconds *int32
@@ -10655,6 +11711,18 @@ type TensorBoardOutputConfig struct {
noSmithyDocumentSerde
}
+// Defines the traffic pattern of the load test.
+type TrafficPattern struct {
+
+ // Defines the phases traffic specification.
+ Phases []Phase
+
+ // Defines the traffic patterns.
+ TrafficType TrafficType
+
+ noSmithyDocumentSerde
+}
+
// Defines the traffic routing strategy during an endpoint deployment to shift
// traffic from the old fleet to the new fleet.
type TrafficRoutingConfig struct {
@@ -10780,7 +11848,7 @@ type TrainingJob struct {
ModelArtifacts *ModelArtifacts
// The S3 path where model artifacts that you configured when creating the job are
- // stored. Amazon SageMaker creates subfolders for model artifacts.
+ // stored. SageMaker creates subfolders for model artifacts.
OutputDataConfig *OutputDataConfig
// Resources, including ML compute instances and ML storage volumes, that are
@@ -10797,7 +11865,7 @@ type TrainingJob struct {
// Provides detailed information about the state of the training job. For detailed
// information about the secondary status of the training job, see StatusMessage
- // under SecondaryStatusTransition. Amazon SageMaker provides primary statuses and
+ // under SecondaryStatusTransition. SageMaker provides primary statuses and
// secondary statuses that apply to each of them: InProgress
//
// * Starting - Starting
@@ -10853,11 +11921,10 @@ type TrainingJob struct {
// Specifies a limit to how long a model training job can run. It also specifies
// how long a managed Spot training job has to complete. When the job reaches the
- // time limit, Amazon SageMaker ends the training job. Use this API to cap model
- // training costs. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM
- // signal, which delays job termination for 120 seconds. Algorithms can use this
- // 120-second window to save the model artifacts, so the results of training are
- // not lost.
+ // time limit, SageMaker ends the training job. Use this API to cap model training
+ // costs. To stop a job, SageMaker sends the algorithm the SIGTERM signal, which
+ // delays job termination for 120 seconds. Algorithms can use this 120-second
+ // window to save the model artifacts, so the results of training are not lost.
StoppingCondition *StoppingCondition
// An array of key-value pairs. You can use tags to categorize your Amazon Web
@@ -10872,8 +11939,8 @@ type TrainingJob struct {
// Indicates the time when the training job ends on training instances. You are
// billed for the time interval between the value of TrainingStartTime and this
// time. For successful jobs and stopped jobs, this is the time after model
- // artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker
- // detects a job failure.
+ // artifacts are uploaded. For failed jobs, this is the time when SageMaker detects
+ // a job failure.
TrainingEndTime *time.Time
// The Amazon Resource Name (ARN) of the training job.
@@ -10932,8 +11999,8 @@ type TrainingJobDefinition struct {
// This member is required.
InputDataConfig []Channel
- // the path to the S3 bucket where you want to store model artifacts. Amazon
- // SageMaker creates subfolders for the artifacts.
+ // the path to the S3 bucket where you want to store model artifacts. SageMaker
+ // creates subfolders for the artifacts.
//
// This member is required.
OutputDataConfig *OutputDataConfig
@@ -10946,10 +12013,10 @@ type TrainingJobDefinition struct {
// Specifies a limit to how long a model training job can run. It also specifies
// how long a managed Spot training job has to complete. When the job reaches the
- // time limit, Amazon SageMaker ends the training job. Use this API to cap model
- // training costs. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM
- // signal, which delays job termination for 120 seconds. Algorithms can use this
- // 120-second window to save the model artifacts.
+ // time limit, SageMaker ends the training job. Use this API to cap model training
+ // costs. To stop a job, SageMaker sends the algorithm the SIGTERM signal, which
+ // delays job termination for 120 seconds. Algorithms can use this 120-second
+ // window to save the model artifacts.
//
// This member is required.
StoppingCondition *StoppingCondition
@@ -11428,9 +12495,10 @@ type TransformOutput struct {
// role's account. For more information, see KMS-Managed Encryption Keys
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the
// Amazon Simple Storage Service Developer Guide. The KMS key policy must grant
- // permission to the IAM role that you specify in your CreateModel request. For
- // more information, see Using Key Policies in Amazon Web Services KMS
- // (http://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) in the
+ // permission to the IAM role that you specify in your CreateModel
+ // (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)
+ // request. For more information, see Using Key Policies in Amazon Web Services KMS
+ // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) in the
// Amazon Web Services Key Management Service Developer Guide.
KmsKeyId *string
@@ -11537,7 +12605,7 @@ type Trial struct {
ExperimentName *string
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *UserContext
// Who last modified the trial.
@@ -11586,12 +12654,15 @@ type TrialComponent struct {
InputArtifacts map[string]TrialComponentArtifact
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
LastModifiedBy *UserContext
// When the component was last modified.
LastModifiedTime *time.Time
+ // The Amazon Resource Name (ARN) of the lineage group resource.
+ LineageGroupArn *string
+
// Metadata properties of the tracking entity, trial, or trial component.
MetadataProperties *MetadataProperties
@@ -11722,7 +12793,7 @@ func (*TrialComponentParameterValueMemberStringValue) isTrialComponentParameterV
type TrialComponentSimpleSummary struct {
// Information about the user who created or modified an experiment, trial, trial
- // component, or project.
+ // component, lineage group, or project.
CreatedBy *UserContext
// When the component was created.
@@ -11995,7 +13066,7 @@ type USD struct {
}
// Information about the user who created or modified an experiment, trial, trial
-// component, or project.
+// component, lineage group, or project.
type UserContext struct {
// The domain associated with the user.
@@ -12100,6 +13171,22 @@ type VariantProperty struct {
noSmithyDocumentSerde
}
+// A lineage entity connected to the starting entity(ies).
+type Vertex struct {
+
+ // The Amazon Resource Name (ARN) of the lineage entity resource.
+ Arn *string
+
+ // The type of resource of the lineage entity.
+ LineageType LineageType
+
+ // The type of the lineage entity resource. For example: DataSet, Model, Endpoint,
+ // etc...
+ Type *string
+
+ noSmithyDocumentSerde
+}
+
// Specifies a VPC that your training jobs and hosted models have access to.
// Control access to and from your training and model containers by configuring the
// VPC. For more information, see Protect Endpoints by Using an Amazon Virtual
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/validators.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/validators.go
index 9d835df..f5b0a32 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/validators.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sagemaker/validators.go
@@ -530,6 +530,26 @@ func (m *validateOpCreateImageVersion) HandleInitialize(ctx context.Context, in
return next.HandleInitialize(ctx, in)
}
+type validateOpCreateInferenceRecommendationsJob struct {
+}
+
+func (*validateOpCreateInferenceRecommendationsJob) ID() string {
+ return "OperationInputValidation"
+}
+
+func (m *validateOpCreateInferenceRecommendationsJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
+ out middleware.InitializeOutput, metadata middleware.Metadata, err error,
+) {
+ input, ok := in.Parameters.(*CreateInferenceRecommendationsJobInput)
+ if !ok {
+ return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters)
+ }
+ if err := validateOpCreateInferenceRecommendationsJobInput(input); err != nil {
+ return out, metadata, err
+ }
+ return next.HandleInitialize(ctx, in)
+}
+
type validateOpCreateLabelingJob struct {
}
@@ -2230,6 +2250,26 @@ func (m *validateOpDescribeImageVersion) HandleInitialize(ctx context.Context, i
return next.HandleInitialize(ctx, in)
}
+type validateOpDescribeInferenceRecommendationsJob struct {
+}
+
+func (*validateOpDescribeInferenceRecommendationsJob) ID() string {
+ return "OperationInputValidation"
+}
+
+func (m *validateOpDescribeInferenceRecommendationsJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
+ out middleware.InitializeOutput, metadata middleware.Metadata, err error,
+) {
+ input, ok := in.Parameters.(*DescribeInferenceRecommendationsJobInput)
+ if !ok {
+ return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters)
+ }
+ if err := validateOpDescribeInferenceRecommendationsJobInput(input); err != nil {
+ return out, metadata, err
+ }
+ return next.HandleInitialize(ctx, in)
+}
+
type validateOpDescribeLabelingJob struct {
}
@@ -2250,6 +2290,26 @@ func (m *validateOpDescribeLabelingJob) HandleInitialize(ctx context.Context, in
return next.HandleInitialize(ctx, in)
}
+type validateOpDescribeLineageGroup struct {
+}
+
+func (*validateOpDescribeLineageGroup) ID() string {
+ return "OperationInputValidation"
+}
+
+func (m *validateOpDescribeLineageGroup) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
+ out middleware.InitializeOutput, metadata middleware.Metadata, err error,
+) {
+ input, ok := in.Parameters.(*DescribeLineageGroupInput)
+ if !ok {
+ return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters)
+ }
+ if err := validateOpDescribeLineageGroupInput(input); err != nil {
+ return out, metadata, err
+ }
+ return next.HandleInitialize(ctx, in)
+}
+
type validateOpDescribeModelBiasJobDefinition struct {
}
@@ -2750,6 +2810,26 @@ func (m *validateOpGetDeviceFleetReport) HandleInitialize(ctx context.Context, i
return next.HandleInitialize(ctx, in)
}
+type validateOpGetLineageGroupPolicy struct {
+}
+
+func (*validateOpGetLineageGroupPolicy) ID() string {
+ return "OperationInputValidation"
+}
+
+func (m *validateOpGetLineageGroupPolicy) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
+ out middleware.InitializeOutput, metadata middleware.Metadata, err error,
+) {
+ input, ok := in.Parameters.(*GetLineageGroupPolicyInput)
+ if !ok {
+ return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters)
+ }
+ if err := validateOpGetLineageGroupPolicyInput(input); err != nil {
+ return out, metadata, err
+ }
+ return next.HandleInitialize(ctx, in)
+}
+
type validateOpGetModelPackageGroupPolicy struct {
}
@@ -2850,6 +2930,26 @@ func (m *validateOpListLabelingJobsForWorkteam) HandleInitialize(ctx context.Con
return next.HandleInitialize(ctx, in)
}
+type validateOpListModelMetadata struct {
+}
+
+func (*validateOpListModelMetadata) ID() string {
+ return "OperationInputValidation"
+}
+
+func (m *validateOpListModelMetadata) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
+ out middleware.InitializeOutput, metadata middleware.Metadata, err error,
+) {
+ input, ok := in.Parameters.(*ListModelMetadataInput)
+ if !ok {
+ return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters)
+ }
+ if err := validateOpListModelMetadataInput(input); err != nil {
+ return out, metadata, err
+ }
+ return next.HandleInitialize(ctx, in)
+}
+
type validateOpListPipelineExecutions struct {
}
@@ -2950,6 +3050,26 @@ func (m *validateOpPutModelPackageGroupPolicy) HandleInitialize(ctx context.Cont
return next.HandleInitialize(ctx, in)
}
+type validateOpQueryLineage struct {
+}
+
+func (*validateOpQueryLineage) ID() string {
+ return "OperationInputValidation"
+}
+
+func (m *validateOpQueryLineage) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
+ out middleware.InitializeOutput, metadata middleware.Metadata, err error,
+) {
+ input, ok := in.Parameters.(*QueryLineageInput)
+ if !ok {
+ return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters)
+ }
+ if err := validateOpQueryLineageInput(input); err != nil {
+ return out, metadata, err
+ }
+ return next.HandleInitialize(ctx, in)
+}
+
type validateOpRegisterDevices struct {
}
@@ -3210,6 +3330,26 @@ func (m *validateOpStopHyperParameterTuningJob) HandleInitialize(ctx context.Con
return next.HandleInitialize(ctx, in)
}
+type validateOpStopInferenceRecommendationsJob struct {
+}
+
+func (*validateOpStopInferenceRecommendationsJob) ID() string {
+ return "OperationInputValidation"
+}
+
+func (m *validateOpStopInferenceRecommendationsJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
+ out middleware.InitializeOutput, metadata middleware.Metadata, err error,
+) {
+ input, ok := in.Parameters.(*StopInferenceRecommendationsJobInput)
+ if !ok {
+ return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters)
+ }
+ if err := validateOpStopInferenceRecommendationsJobInput(input); err != nil {
+ return out, metadata, err
+ }
+ return next.HandleInitialize(ctx, in)
+}
+
type validateOpStopLabelingJob struct {
}
@@ -3954,6 +4094,10 @@ func addOpCreateImageVersionValidationMiddleware(stack *middleware.Stack) error
return stack.Initialize.Add(&validateOpCreateImageVersion{}, middleware.After)
}
+func addOpCreateInferenceRecommendationsJobValidationMiddleware(stack *middleware.Stack) error {
+ return stack.Initialize.Add(&validateOpCreateInferenceRecommendationsJob{}, middleware.After)
+}
+
func addOpCreateLabelingJobValidationMiddleware(stack *middleware.Stack) error {
return stack.Initialize.Add(&validateOpCreateLabelingJob{}, middleware.After)
}
@@ -4294,10 +4438,18 @@ func addOpDescribeImageVersionValidationMiddleware(stack *middleware.Stack) erro
return stack.Initialize.Add(&validateOpDescribeImageVersion{}, middleware.After)
}
+func addOpDescribeInferenceRecommendationsJobValidationMiddleware(stack *middleware.Stack) error {
+ return stack.Initialize.Add(&validateOpDescribeInferenceRecommendationsJob{}, middleware.After)
+}
+
func addOpDescribeLabelingJobValidationMiddleware(stack *middleware.Stack) error {
return stack.Initialize.Add(&validateOpDescribeLabelingJob{}, middleware.After)
}
+func addOpDescribeLineageGroupValidationMiddleware(stack *middleware.Stack) error {
+ return stack.Initialize.Add(&validateOpDescribeLineageGroup{}, middleware.After)
+}
+
func addOpDescribeModelBiasJobDefinitionValidationMiddleware(stack *middleware.Stack) error {
return stack.Initialize.Add(&validateOpDescribeModelBiasJobDefinition{}, middleware.After)
}
@@ -4398,6 +4550,10 @@ func addOpGetDeviceFleetReportValidationMiddleware(stack *middleware.Stack) erro
return stack.Initialize.Add(&validateOpGetDeviceFleetReport{}, middleware.After)
}
+func addOpGetLineageGroupPolicyValidationMiddleware(stack *middleware.Stack) error {
+ return stack.Initialize.Add(&validateOpGetLineageGroupPolicy{}, middleware.After)
+}
+
func addOpGetModelPackageGroupPolicyValidationMiddleware(stack *middleware.Stack) error {
return stack.Initialize.Add(&validateOpGetModelPackageGroupPolicy{}, middleware.After)
}
@@ -4418,6 +4574,10 @@ func addOpListLabelingJobsForWorkteamValidationMiddleware(stack *middleware.Stac
return stack.Initialize.Add(&validateOpListLabelingJobsForWorkteam{}, middleware.After)
}
+func addOpListModelMetadataValidationMiddleware(stack *middleware.Stack) error {
+ return stack.Initialize.Add(&validateOpListModelMetadata{}, middleware.After)
+}
+
func addOpListPipelineExecutionsValidationMiddleware(stack *middleware.Stack) error {
return stack.Initialize.Add(&validateOpListPipelineExecutions{}, middleware.After)
}
@@ -4438,6 +4598,10 @@ func addOpPutModelPackageGroupPolicyValidationMiddleware(stack *middleware.Stack
return stack.Initialize.Add(&validateOpPutModelPackageGroupPolicy{}, middleware.After)
}
+func addOpQueryLineageValidationMiddleware(stack *middleware.Stack) error {
+ return stack.Initialize.Add(&validateOpQueryLineage{}, middleware.After)
+}
+
func addOpRegisterDevicesValidationMiddleware(stack *middleware.Stack) error {
return stack.Initialize.Add(&validateOpRegisterDevices{}, middleware.After)
}
@@ -4490,6 +4654,10 @@ func addOpStopHyperParameterTuningJobValidationMiddleware(stack *middleware.Stac
return stack.Initialize.Add(&validateOpStopHyperParameterTuningJob{}, middleware.After)
}
+func addOpStopInferenceRecommendationsJobValidationMiddleware(stack *middleware.Stack) error {
+ return stack.Initialize.Add(&validateOpStopInferenceRecommendationsJob{}, middleware.After)
+}
+
func addOpStopLabelingJobValidationMiddleware(stack *middleware.Stack) error {
return stack.Initialize.Add(&validateOpStopLabelingJob{}, middleware.After)
}
@@ -4633,6 +4801,45 @@ func validateActionSource(v *types.ActionSource) error {
}
}
+func validateAdditionalInferenceSpecificationDefinition(v *types.AdditionalInferenceSpecificationDefinition) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "AdditionalInferenceSpecificationDefinition"}
+ if v.Name == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("Name"))
+ }
+ if v.Containers == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("Containers"))
+ } else if v.Containers != nil {
+ if err := validateModelPackageContainerDefinitionList(v.Containers); err != nil {
+ invalidParams.AddNested("Containers", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
+func validateAdditionalInferenceSpecifications(v []types.AdditionalInferenceSpecificationDefinition) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "AdditionalInferenceSpecifications"}
+ for i := range v {
+ if err := validateAdditionalInferenceSpecificationDefinition(&v[i]); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateAlgorithmSpecification(v *types.AlgorithmSpecification) error {
if v == nil {
return nil
@@ -5015,6 +5222,16 @@ func validateBias(v *types.Bias) error {
invalidParams.AddNested("Report", err.(smithy.InvalidParamsError))
}
}
+ if v.PreTrainingReport != nil {
+ if err := validateMetricsSource(v.PreTrainingReport); err != nil {
+ invalidParams.AddNested("PreTrainingReport", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.PostTrainingReport != nil {
+ if err := validateMetricsSource(v.PostTrainingReport); err != nil {
+ invalidParams.AddNested("PostTrainingReport", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -5091,6 +5308,24 @@ func validateCaptureOptionList(v []types.CaptureOption) error {
}
}
+func validateCategoricalParameter(v *types.CategoricalParameter) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "CategoricalParameter"}
+ if v.Name == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("Name"))
+ }
+ if v.Value == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("Value"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateCategoricalParameterRange(v *types.CategoricalParameterRange) error {
if v == nil {
return nil
@@ -5141,6 +5376,23 @@ func validateCategoricalParameterRangeSpecification(v *types.CategoricalParamete
}
}
+func validateCategoricalParameters(v []types.CategoricalParameter) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "CategoricalParameters"}
+ for i := range v {
+ if err := validateCategoricalParameter(&v[i]); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateChannel(v *types.Channel) error {
if v == nil {
return nil
@@ -5691,6 +5943,131 @@ func validateDomainSettingsForUpdate(v *types.DomainSettingsForUpdate) error {
}
}
+func validateDriftCheckBaselines(v *types.DriftCheckBaselines) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "DriftCheckBaselines"}
+ if v.Bias != nil {
+ if err := validateDriftCheckBias(v.Bias); err != nil {
+ invalidParams.AddNested("Bias", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.Explainability != nil {
+ if err := validateDriftCheckExplainability(v.Explainability); err != nil {
+ invalidParams.AddNested("Explainability", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.ModelQuality != nil {
+ if err := validateDriftCheckModelQuality(v.ModelQuality); err != nil {
+ invalidParams.AddNested("ModelQuality", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.ModelDataQuality != nil {
+ if err := validateDriftCheckModelDataQuality(v.ModelDataQuality); err != nil {
+ invalidParams.AddNested("ModelDataQuality", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
+func validateDriftCheckBias(v *types.DriftCheckBias) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "DriftCheckBias"}
+ if v.ConfigFile != nil {
+ if err := validateFileSource(v.ConfigFile); err != nil {
+ invalidParams.AddNested("ConfigFile", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.PreTrainingConstraints != nil {
+ if err := validateMetricsSource(v.PreTrainingConstraints); err != nil {
+ invalidParams.AddNested("PreTrainingConstraints", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.PostTrainingConstraints != nil {
+ if err := validateMetricsSource(v.PostTrainingConstraints); err != nil {
+ invalidParams.AddNested("PostTrainingConstraints", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
+func validateDriftCheckExplainability(v *types.DriftCheckExplainability) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "DriftCheckExplainability"}
+ if v.Constraints != nil {
+ if err := validateMetricsSource(v.Constraints); err != nil {
+ invalidParams.AddNested("Constraints", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.ConfigFile != nil {
+ if err := validateFileSource(v.ConfigFile); err != nil {
+ invalidParams.AddNested("ConfigFile", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
+func validateDriftCheckModelDataQuality(v *types.DriftCheckModelDataQuality) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "DriftCheckModelDataQuality"}
+ if v.Statistics != nil {
+ if err := validateMetricsSource(v.Statistics); err != nil {
+ invalidParams.AddNested("Statistics", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.Constraints != nil {
+ if err := validateMetricsSource(v.Constraints); err != nil {
+ invalidParams.AddNested("Constraints", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
+func validateDriftCheckModelQuality(v *types.DriftCheckModelQuality) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "DriftCheckModelQuality"}
+ if v.Statistics != nil {
+ if err := validateMetricsSource(v.Statistics); err != nil {
+ invalidParams.AddNested("Statistics", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.Constraints != nil {
+ if err := validateMetricsSource(v.Constraints); err != nil {
+ invalidParams.AddNested("Constraints", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateEdgeOutputConfig(v *types.EdgeOutputConfig) error {
if v == nil {
return nil
@@ -5724,6 +6101,60 @@ func validateEndpointInput(v *types.EndpointInput) error {
}
}
+func validateEndpointInputConfiguration(v *types.EndpointInputConfiguration) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "EndpointInputConfiguration"}
+ if len(v.InstanceType) == 0 {
+ invalidParams.Add(smithy.NewErrParamRequired("InstanceType"))
+ }
+ if v.EnvironmentParameterRanges != nil {
+ if err := validateEnvironmentParameterRanges(v.EnvironmentParameterRanges); err != nil {
+ invalidParams.AddNested("EnvironmentParameterRanges", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
+func validateEndpointInputConfigurations(v []types.EndpointInputConfiguration) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "EndpointInputConfigurations"}
+ for i := range v {
+ if err := validateEndpointInputConfiguration(&v[i]); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
+func validateEnvironmentParameterRanges(v *types.EnvironmentParameterRanges) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "EnvironmentParameterRanges"}
+ if v.CategoricalParameterRanges != nil {
+ if err := validateCategoricalParameters(v.CategoricalParameterRanges); err != nil {
+ invalidParams.AddNested("CategoricalParameterRanges", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateExplainability(v *types.Explainability) error {
if v == nil {
return nil
@@ -5741,6 +6172,21 @@ func validateExplainability(v *types.Explainability) error {
}
}
+func validateFileSource(v *types.FileSource) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "FileSource"}
+ if v.S3Uri == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("S3Uri"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateFileSystemDataSource(v *types.FileSystemDataSource) error {
if v == nil {
return nil
@@ -6277,6 +6723,21 @@ func validateInputDataConfig(v []types.Channel) error {
}
}
+func validateInstanceMetadataServiceConfiguration(v *types.InstanceMetadataServiceConfiguration) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "InstanceMetadataServiceConfiguration"}
+ if v.MinimumInstanceMetadataServiceVersion == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("MinimumInstanceMetadataServiceVersion"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateIntegerParameterRange(v *types.IntegerParameterRange) error {
if v == nil {
return nil
@@ -6693,6 +7154,73 @@ func validateModelExplainabilityJobInput(v *types.ModelExplainabilityJobInput) e
}
}
+func validateModelInput(v *types.ModelInput) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "ModelInput"}
+ if v.DataInputConfig == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("DataInputConfig"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
+func validateModelMetadataFilter(v *types.ModelMetadataFilter) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "ModelMetadataFilter"}
+ if len(v.Name) == 0 {
+ invalidParams.Add(smithy.NewErrParamRequired("Name"))
+ }
+ if v.Value == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("Value"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
+func validateModelMetadataFilters(v []types.ModelMetadataFilter) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "ModelMetadataFilters"}
+ for i := range v {
+ if err := validateModelMetadataFilter(&v[i]); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
+func validateModelMetadataSearchExpression(v *types.ModelMetadataSearchExpression) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "ModelMetadataSearchExpression"}
+ if v.Filters != nil {
+ if err := validateModelMetadataFilters(v.Filters); err != nil {
+ invalidParams.AddNested("Filters", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateModelMetrics(v *types.ModelMetrics) error {
if v == nil {
return nil
@@ -6733,6 +7261,11 @@ func validateModelPackageContainerDefinition(v *types.ModelPackageContainerDefin
if v.Image == nil {
invalidParams.Add(smithy.NewErrParamRequired("Image"))
}
+ if v.ModelInput != nil {
+ if err := validateModelInput(v.ModelInput); err != nil {
+ invalidParams.AddNested("ModelInput", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -7364,6 +7897,18 @@ func validateOutputParameterList(v []types.OutputParameter) error {
}
}
+func validateParallelismConfiguration(v *types.ParallelismConfiguration) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "ParallelismConfiguration"}
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateParameter(v *types.Parameter) error {
if v == nil {
return nil
@@ -7453,6 +7998,24 @@ func validateParameterRanges(v *types.ParameterRanges) error {
}
}
+func validatePipelineDefinitionS3Location(v *types.PipelineDefinitionS3Location) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "PipelineDefinitionS3Location"}
+ if v.Bucket == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("Bucket"))
+ }
+ if v.ObjectKey == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("ObjectKey"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateProcessingClusterConfig(v *types.ProcessingClusterConfig) error {
if v == nil {
return nil
@@ -7673,17 +8236,16 @@ func validateProductionVariant(v *types.ProductionVariant) error {
if v.ModelName == nil {
invalidParams.Add(smithy.NewErrParamRequired("ModelName"))
}
- if v.InitialInstanceCount == nil {
- invalidParams.Add(smithy.NewErrParamRequired("InitialInstanceCount"))
- }
- if len(v.InstanceType) == 0 {
- invalidParams.Add(smithy.NewErrParamRequired("InstanceType"))
- }
if v.CoreDumpConfig != nil {
if err := validateProductionVariantCoreDumpConfig(v.CoreDumpConfig); err != nil {
invalidParams.AddNested("CoreDumpConfig", err.(smithy.InvalidParamsError))
}
}
+ if v.ServerlessConfig != nil {
+ if err := validateProductionVariantServerlessConfig(v.ServerlessConfig); err != nil {
+ invalidParams.AddNested("ServerlessConfig", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -7723,6 +8285,24 @@ func validateProductionVariantList(v []types.ProductionVariant) error {
}
}
+func validateProductionVariantServerlessConfig(v *types.ProductionVariantServerlessConfig) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "ProductionVariantServerlessConfig"}
+ if v.MemorySizeInMB == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("MemorySizeInMB"))
+ }
+ if v.MaxConcurrency == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("MaxConcurrency"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateProfilerConfig(v *types.ProfilerConfig) error {
if v == nil {
return nil
@@ -7788,6 +8368,26 @@ func validatePropertyNameQuery(v *types.PropertyNameQuery) error {
}
}
+func validateRecommendationJobInputConfig(v *types.RecommendationJobInputConfig) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "RecommendationJobInputConfig"}
+ if v.ModelPackageVersionArn == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("ModelPackageVersionArn"))
+ }
+ if v.EndpointConfigurations != nil {
+ if err := validateEndpointInputConfigurations(v.EndpointConfigurations); err != nil {
+ invalidParams.AddNested("EndpointConfigurations", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateRedshiftDatasetDefinition(v *types.RedshiftDatasetDefinition) error {
if v == nil {
return nil
@@ -7890,6 +8490,23 @@ func validateRetryStrategy(v *types.RetryStrategy) error {
}
}
+func validateRSessionAppSettings(v *types.RSessionAppSettings) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "RSessionAppSettings"}
+ if v.CustomImages != nil {
+ if err := validateCustomImages(v.CustomImages); err != nil {
+ invalidParams.AddNested("CustomImages", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateRStudioServerProDomainSettings(v *types.RStudioServerProDomainSettings) error {
if v == nil {
return nil
@@ -8492,6 +9109,11 @@ func validateUserSettings(v *types.UserSettings) error {
invalidParams.AddNested("KernelGatewayAppSettings", err.(smithy.InvalidParamsError))
}
}
+ if v.RSessionAppSettings != nil {
+ if err := validateRSessionAppSettings(v.RSessionAppSettings); err != nil {
+ invalidParams.AddNested("RSessionAppSettings", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -8855,9 +9477,7 @@ func validateOpCreateCompilationJobInput(v *CreateCompilationJobInput) error {
if v.RoleArn == nil {
invalidParams.Add(smithy.NewErrParamRequired("RoleArn"))
}
- if v.InputConfig == nil {
- invalidParams.Add(smithy.NewErrParamRequired("InputConfig"))
- } else if v.InputConfig != nil {
+ if v.InputConfig != nil {
if err := validateInputConfig(v.InputConfig); err != nil {
invalidParams.AddNested("InputConfig", err.(smithy.InvalidParamsError))
}
@@ -9366,6 +9986,39 @@ func validateOpCreateImageVersionInput(v *CreateImageVersionInput) error {
}
}
+func validateOpCreateInferenceRecommendationsJobInput(v *CreateInferenceRecommendationsJobInput) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "CreateInferenceRecommendationsJobInput"}
+ if v.JobName == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("JobName"))
+ }
+ if len(v.JobType) == 0 {
+ invalidParams.Add(smithy.NewErrParamRequired("JobType"))
+ }
+ if v.RoleArn == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("RoleArn"))
+ }
+ if v.InputConfig == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("InputConfig"))
+ } else if v.InputConfig != nil {
+ if err := validateRecommendationJobInputConfig(v.InputConfig); err != nil {
+ invalidParams.AddNested("InputConfig", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.Tags != nil {
+ if err := validateTagList(v.Tags); err != nil {
+ invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateOpCreateLabelingJobInput(v *CreateLabelingJobInput) error {
if v == nil {
return nil
@@ -9633,6 +10286,16 @@ func validateOpCreateModelPackageInput(v *CreateModelPackageInput) error {
invalidParams.AddNested("ModelMetrics", err.(smithy.InvalidParamsError))
}
}
+ if v.DriftCheckBaselines != nil {
+ if err := validateDriftCheckBaselines(v.DriftCheckBaselines); err != nil {
+ invalidParams.AddNested("DriftCheckBaselines", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.AdditionalInferenceSpecifications != nil {
+ if err := validateAdditionalInferenceSpecifications(v.AdditionalInferenceSpecifications); err != nil {
+ invalidParams.AddNested("AdditionalInferenceSpecifications", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -9747,6 +10410,11 @@ func validateOpCreateNotebookInstanceInput(v *CreateNotebookInstanceInput) error
invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError))
}
}
+ if v.InstanceMetadataServiceConfiguration != nil {
+ if err := validateInstanceMetadataServiceConfiguration(v.InstanceMetadataServiceConfiguration); err != nil {
+ invalidParams.AddNested("InstanceMetadataServiceConfiguration", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -9777,8 +10445,10 @@ func validateOpCreatePipelineInput(v *CreatePipelineInput) error {
if v.PipelineName == nil {
invalidParams.Add(smithy.NewErrParamRequired("PipelineName"))
}
- if v.PipelineDefinition == nil {
- invalidParams.Add(smithy.NewErrParamRequired("PipelineDefinition"))
+ if v.PipelineDefinitionS3Location != nil {
+ if err := validatePipelineDefinitionS3Location(v.PipelineDefinitionS3Location); err != nil {
+ invalidParams.AddNested("PipelineDefinitionS3Location", err.(smithy.InvalidParamsError))
+ }
}
if v.ClientRequestToken == nil {
invalidParams.Add(smithy.NewErrParamRequired("ClientRequestToken"))
@@ -9791,6 +10461,11 @@ func validateOpCreatePipelineInput(v *CreatePipelineInput) error {
invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError))
}
}
+ if v.ParallelismConfiguration != nil {
+ if err := validateParallelismConfiguration(v.ParallelismConfiguration); err != nil {
+ invalidParams.AddNested("ParallelismConfiguration", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -11194,6 +11869,21 @@ func validateOpDescribeImageVersionInput(v *DescribeImageVersionInput) error {
}
}
+func validateOpDescribeInferenceRecommendationsJobInput(v *DescribeInferenceRecommendationsJobInput) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "DescribeInferenceRecommendationsJobInput"}
+ if v.JobName == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("JobName"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateOpDescribeLabelingJobInput(v *DescribeLabelingJobInput) error {
if v == nil {
return nil
@@ -11209,6 +11899,21 @@ func validateOpDescribeLabelingJobInput(v *DescribeLabelingJobInput) error {
}
}
+func validateOpDescribeLineageGroupInput(v *DescribeLineageGroupInput) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "DescribeLineageGroupInput"}
+ if v.LineageGroupName == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("LineageGroupName"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateOpDescribeModelBiasJobDefinitionInput(v *DescribeModelBiasJobDefinitionInput) error {
if v == nil {
return nil
@@ -11590,6 +12295,21 @@ func validateOpGetDeviceFleetReportInput(v *GetDeviceFleetReportInput) error {
}
}
+func validateOpGetLineageGroupPolicyInput(v *GetLineageGroupPolicyInput) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "GetLineageGroupPolicyInput"}
+ if v.LineageGroupName == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("LineageGroupName"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateOpGetModelPackageGroupPolicyInput(v *GetModelPackageGroupPolicyInput) error {
if v == nil {
return nil
@@ -11670,6 +12390,23 @@ func validateOpListLabelingJobsForWorkteamInput(v *ListLabelingJobsForWorkteamIn
}
}
+func validateOpListModelMetadataInput(v *ListModelMetadataInput) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "ListModelMetadataInput"}
+ if v.SearchExpression != nil {
+ if err := validateModelMetadataSearchExpression(v.SearchExpression); err != nil {
+ invalidParams.AddNested("SearchExpression", err.(smithy.InvalidParamsError))
+ }
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateOpListPipelineExecutionsInput(v *ListPipelineExecutionsInput) error {
if v == nil {
return nil
@@ -11748,6 +12485,21 @@ func validateOpPutModelPackageGroupPolicyInput(v *PutModelPackageGroupPolicyInpu
}
}
+func validateOpQueryLineageInput(v *QueryLineageInput) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "QueryLineageInput"}
+ if v.StartArns == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("StartArns"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateOpRegisterDevicesInput(v *RegisterDevicesInput) error {
if v == nil {
return nil
@@ -11813,6 +12565,11 @@ func validateOpRetryPipelineExecutionInput(v *RetryPipelineExecutionInput) error
if v.ClientRequestToken == nil {
invalidParams.Add(smithy.NewErrParamRequired("ClientRequestToken"))
}
+ if v.ParallelismConfiguration != nil {
+ if err := validateParallelismConfiguration(v.ParallelismConfiguration); err != nil {
+ invalidParams.AddNested("ParallelismConfiguration", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -11921,6 +12678,11 @@ func validateOpStartPipelineExecutionInput(v *StartPipelineExecutionInput) error
if v.ClientRequestToken == nil {
invalidParams.Add(smithy.NewErrParamRequired("ClientRequestToken"))
}
+ if v.ParallelismConfiguration != nil {
+ if err := validateParallelismConfiguration(v.ParallelismConfiguration); err != nil {
+ invalidParams.AddNested("ParallelismConfiguration", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -11988,6 +12750,21 @@ func validateOpStopHyperParameterTuningJobInput(v *StopHyperParameterTuningJobIn
}
}
+func validateOpStopInferenceRecommendationsJobInput(v *StopInferenceRecommendationsJobInput) error {
+ if v == nil {
+ return nil
+ }
+ invalidParams := smithy.InvalidParamsError{Context: "StopInferenceRecommendationsJobInput"}
+ if v.JobName == nil {
+ invalidParams.Add(smithy.NewErrParamRequired("JobName"))
+ }
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ } else {
+ return nil
+ }
+}
+
func validateOpStopLabelingJobInput(v *StopLabelingJobInput) error {
if v == nil {
return nil
@@ -12333,6 +13110,11 @@ func validateOpUpdateModelPackageInput(v *UpdateModelPackageInput) error {
if v.ModelPackageArn == nil {
invalidParams.Add(smithy.NewErrParamRequired("ModelPackageArn"))
}
+ if v.AdditionalInferenceSpecificationsToAdd != nil {
+ if err := validateAdditionalInferenceSpecifications(v.AdditionalInferenceSpecificationsToAdd); err != nil {
+ invalidParams.AddNested("AdditionalInferenceSpecificationsToAdd", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -12370,6 +13152,11 @@ func validateOpUpdateNotebookInstanceInput(v *UpdateNotebookInstanceInput) error
if v.NotebookInstanceName == nil {
invalidParams.Add(smithy.NewErrParamRequired("NotebookInstanceName"))
}
+ if v.InstanceMetadataServiceConfiguration != nil {
+ if err := validateInstanceMetadataServiceConfiguration(v.InstanceMetadataServiceConfiguration); err != nil {
+ invalidParams.AddNested("InstanceMetadataServiceConfiguration", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -12400,6 +13187,11 @@ func validateOpUpdatePipelineExecutionInput(v *UpdatePipelineExecutionInput) err
if v.PipelineExecutionArn == nil {
invalidParams.Add(smithy.NewErrParamRequired("PipelineExecutionArn"))
}
+ if v.ParallelismConfiguration != nil {
+ if err := validateParallelismConfiguration(v.ParallelismConfiguration); err != nil {
+ invalidParams.AddNested("ParallelismConfiguration", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
@@ -12415,6 +13207,16 @@ func validateOpUpdatePipelineInput(v *UpdatePipelineInput) error {
if v.PipelineName == nil {
invalidParams.Add(smithy.NewErrParamRequired("PipelineName"))
}
+ if v.PipelineDefinitionS3Location != nil {
+ if err := validatePipelineDefinitionS3Location(v.PipelineDefinitionS3Location); err != nil {
+ invalidParams.AddNested("PipelineDefinitionS3Location", err.(smithy.InvalidParamsError))
+ }
+ }
+ if v.ParallelismConfiguration != nil {
+ if err := validateParallelismConfiguration(v.ParallelismConfiguration); err != nil {
+ invalidParams.AddNested("ParallelismConfiguration", err.(smithy.InvalidParamsError))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
} else {
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md
index df4871c..37995d2 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md
@@ -1,3 +1,71 @@
+# v1.11.8 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.7 (2022-05-26)
+
+* No change notes available for this release.
+
+# v1.11.6 (2022-05-25)
+
+* No change notes available for this release.
+
+# v1.11.5 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.4 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.3 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.2 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.1 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.10.0 (2022-02-24)
+
+* **Feature**: API client updated
+* **Feature**: Adds RetryMaxAttempts and RetryMod to API client Options. This allows the API clients' default Retryer to be configured from the shared configuration files or environment variables. Adding a new Retry mode of `Adaptive`. `Adaptive` retry mode is an experimental mode, adding client rate limiting when throttles reponses are received from an API. See [retry.AdaptiveMode](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws/retry#AdaptiveMode) for more details, and configuration options.
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.9.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Documentation**: Updated API models
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.8.0 (2022-01-07)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.7.0 (2021-12-21)
+
+* **Feature**: API Paginators now support specifying the initial starting token, and support stopping on empty string tokens.
+
+# v1.6.2 (2021-12-02)
+
+* **Bug Fix**: Fixes a bug that prevented aws.EndpointResolverWithOptions from being used by the service client. ([#1514](https://github.com/aws/aws-sdk-go-v2/pull/1514))
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.6.1 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v1.6.0 (2021-11-06)
* **Feature**: The SDK now supports configuration of FIPS and DualStack endpoints using environment variables, shared configuration, or programmatically.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_client.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_client.go
index bd50395..7bb0698 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_client.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_client.go
@@ -5,6 +5,7 @@ package sso
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
+ "github.com/aws/aws-sdk-go-v2/aws/defaults"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/retry"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
@@ -15,6 +16,7 @@ import (
"github.com/aws/smithy-go/logging"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
+ "net"
"net/http"
"time"
)
@@ -35,6 +37,8 @@ func New(options Options, optFns ...func(*Options)) *Client {
resolveDefaultLogger(&options)
+ setResolvedDefaultsMode(&options)
+
resolveRetryer(&options)
resolveHTTPClient(&options)
@@ -66,6 +70,10 @@ type Options struct {
// The credentials object to use when signing requests.
Credentials aws.CredentialsProvider
+ // The configuration DefaultsMode that the SDK should use when constructing the
+ // clients initial default settings.
+ DefaultsMode aws.DefaultsMode
+
// The endpoint options to be used when attempting to resolve an endpoint.
EndpointOptions EndpointResolverOptions
@@ -81,10 +89,42 @@ type Options struct {
// The region to send requests to. (Required)
Region string
+ // RetryMaxAttempts specifies the maximum number attempts an API client will call
+ // an operation that fails with a retryable error. A value of 0 is ignored, and
+ // will not be used to configure the API client created default retryer, or modify
+ // per operation call's retry max attempts. When creating a new API Clients this
+ // member will only be used if the Retryer Options member is nil. This value will
+ // be ignored if Retryer is not nil. If specified in an operation call's functional
+ // options with a value that is different than the constructed client's Options,
+ // the Client's Retryer will be wrapped to use the operation's specific
+ // RetryMaxAttempts value.
+ RetryMaxAttempts int
+
+ // RetryMode specifies the retry mode the API client will be created with, if
+ // Retryer option is not also specified. When creating a new API Clients this
+ // member will only be used if the Retryer Options member is nil. This value will
+ // be ignored if Retryer is not nil. Currently does not support per operation call
+ // overrides, may in the future.
+ RetryMode aws.RetryMode
+
// Retryer guides how HTTP requests should be retried in case of recoverable
- // failures. When nil the API client will use a default retryer.
+ // failures. When nil the API client will use a default retryer. The kind of
+ // default retry created by the API client can be changed with the RetryMode
+ // option.
Retryer aws.Retryer
+ // The RuntimeEnvironment configuration, only populated if the DefaultsMode is set
+ // to DefaultsModeAuto and is initialized using config.LoadDefaultConfig. You
+ // should not populate this structure programmatically, or rely on the values here
+ // within your applications.
+ RuntimeEnvironment aws.RuntimeEnvironment
+
+ // The initial DefaultsMode used when the client options were constructed. If the
+ // DefaultsMode was set to aws.DefaultsModeAuto this will store what the resolved
+ // value was at that point in time. Currently does not support per operation call
+ // overrides, may in the future.
+ resolvedDefaultsMode aws.DefaultsMode
+
// The HTTP client to invoke API calls with. Defaults to client's default HTTP
// implementation if nil.
HTTPClient HTTPClient
@@ -115,6 +155,7 @@ func (o Options) Copy() Options {
to := o
to.APIOptions = make([]func(*middleware.Stack) error, len(o.APIOptions))
copy(to.APIOptions, o.APIOptions)
+
return to
}
func (c *Client) invokeOperation(ctx context.Context, opID string, params interface{}, optFns []func(*Options), stackFns ...func(*middleware.Stack, Options) error) (result interface{}, metadata middleware.Metadata, err error) {
@@ -125,6 +166,8 @@ func (c *Client) invokeOperation(ctx context.Context, opID string, params interf
fn(&options)
}
+ finalizeRetryMaxAttemptOptions(&options, *c)
+
finalizeClientEndpointResolverOptions(&options)
for _, fn := range stackFns {
@@ -164,17 +207,36 @@ func addSetLoggerMiddleware(stack *middleware.Stack, o Options) error {
return middleware.AddSetLoggerMiddleware(stack, o.Logger)
}
+func setResolvedDefaultsMode(o *Options) {
+ if len(o.resolvedDefaultsMode) > 0 {
+ return
+ }
+
+ var mode aws.DefaultsMode
+ mode.SetFromString(string(o.DefaultsMode))
+
+ if mode == aws.DefaultsModeAuto {
+ mode = defaults.ResolveDefaultsModeAuto(o.Region, o.RuntimeEnvironment)
+ }
+
+ o.resolvedDefaultsMode = mode
+}
+
// NewFromConfig returns a new client from the provided config.
func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
opts := Options{
- Region: cfg.Region,
- HTTPClient: cfg.HTTPClient,
- Credentials: cfg.Credentials,
- APIOptions: cfg.APIOptions,
- Logger: cfg.Logger,
- ClientLogMode: cfg.ClientLogMode,
+ Region: cfg.Region,
+ DefaultsMode: cfg.DefaultsMode,
+ RuntimeEnvironment: cfg.RuntimeEnvironment,
+ HTTPClient: cfg.HTTPClient,
+ Credentials: cfg.Credentials,
+ APIOptions: cfg.APIOptions,
+ Logger: cfg.Logger,
+ ClientLogMode: cfg.ClientLogMode,
}
resolveAWSRetryerProvider(cfg, &opts)
+ resolveAWSRetryMaxAttempts(cfg, &opts)
+ resolveAWSRetryMode(cfg, &opts)
resolveAWSEndpointResolver(cfg, &opts)
resolveUseDualStackEndpoint(cfg, &opts)
resolveUseFIPSEndpoint(cfg, &opts)
@@ -182,17 +244,71 @@ func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
}
func resolveHTTPClient(o *Options) {
+ var buildable *awshttp.BuildableClient
+
if o.HTTPClient != nil {
- return
+ var ok bool
+ buildable, ok = o.HTTPClient.(*awshttp.BuildableClient)
+ if !ok {
+ return
+ }
+ } else {
+ buildable = awshttp.NewBuildableClient()
}
- o.HTTPClient = awshttp.NewBuildableClient()
+
+ modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode)
+ if err == nil {
+ buildable = buildable.WithDialerOptions(func(dialer *net.Dialer) {
+ if dialerTimeout, ok := modeConfig.GetConnectTimeout(); ok {
+ dialer.Timeout = dialerTimeout
+ }
+ })
+
+ buildable = buildable.WithTransportOptions(func(transport *http.Transport) {
+ if tlsHandshakeTimeout, ok := modeConfig.GetTLSNegotiationTimeout(); ok {
+ transport.TLSHandshakeTimeout = tlsHandshakeTimeout
+ }
+ })
+ }
+
+ o.HTTPClient = buildable
}
func resolveRetryer(o *Options) {
if o.Retryer != nil {
return
}
- o.Retryer = retry.NewStandard()
+
+ if len(o.RetryMode) == 0 {
+ modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode)
+ if err == nil {
+ o.RetryMode = modeConfig.RetryMode
+ }
+ }
+ if len(o.RetryMode) == 0 {
+ o.RetryMode = aws.RetryModeStandard
+ }
+
+ var standardOptions []func(*retry.StandardOptions)
+ if v := o.RetryMaxAttempts; v != 0 {
+ standardOptions = append(standardOptions, func(so *retry.StandardOptions) {
+ so.MaxAttempts = v
+ })
+ }
+
+ switch o.RetryMode {
+ case aws.RetryModeAdaptive:
+ var adaptiveOptions []func(*retry.AdaptiveModeOptions)
+ if len(standardOptions) != 0 {
+ adaptiveOptions = append(adaptiveOptions, func(ao *retry.AdaptiveModeOptions) {
+ ao.StandardOptions = append(ao.StandardOptions, standardOptions...)
+ })
+ }
+ o.Retryer = retry.NewAdaptiveMode(adaptiveOptions...)
+
+ default:
+ o.Retryer = retry.NewStandard(standardOptions...)
+ }
}
func resolveAWSRetryerProvider(cfg aws.Config, o *Options) {
@@ -202,8 +318,29 @@ func resolveAWSRetryerProvider(cfg aws.Config, o *Options) {
o.Retryer = cfg.Retryer()
}
+func resolveAWSRetryMode(cfg aws.Config, o *Options) {
+ if len(cfg.RetryMode) == 0 {
+ return
+ }
+ o.RetryMode = cfg.RetryMode
+}
+func resolveAWSRetryMaxAttempts(cfg aws.Config, o *Options) {
+ if cfg.RetryMaxAttempts == 0 {
+ return
+ }
+ o.RetryMaxAttempts = cfg.RetryMaxAttempts
+}
+
+func finalizeRetryMaxAttemptOptions(o *Options, client Client) {
+ if v := o.RetryMaxAttempts; v == 0 || v == client.options.RetryMaxAttempts {
+ return
+ }
+
+ o.Retryer = retry.AddWithMaxAttempts(o.Retryer, o.RetryMaxAttempts)
+}
+
func resolveAWSEndpointResolver(cfg aws.Config, o *Options) {
- if cfg.EndpointResolver == nil {
+ if cfg.EndpointResolver == nil && cfg.EndpointResolverWithOptions == nil {
return
}
o.EndpointResolver = withEndpointResolver(cfg.EndpointResolver, cfg.EndpointResolverWithOptions, NewDefaultEndpointResolver())
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccountRoles.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccountRoles.go
index 3d07877..1923c4a 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccountRoles.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccountRoles.go
@@ -171,12 +171,13 @@ func NewListAccountRolesPaginator(client ListAccountRolesAPIClient, params *List
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListAccountRolesPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListAccountRoles page.
@@ -203,7 +204,10 @@ func (p *ListAccountRolesPaginator) NextPage(ctx context.Context, optFns ...func
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccounts.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccounts.go
index 0b32de2..c76f6ca 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccounts.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccounts.go
@@ -168,12 +168,13 @@ func NewListAccountsPaginator(client ListAccountsAPIClient, params *ListAccounts
client: client,
params: params,
firstPage: true,
+ nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *ListAccountsPaginator) HasMorePages() bool {
- return p.firstPage || p.nextToken != nil
+ return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next ListAccounts page.
@@ -200,7 +201,10 @@ func (p *ListAccountsPaginator) NextPage(ctx context.Context, optFns ...func(*Op
prevToken := p.nextToken
p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken {
+ if p.options.StopOnDuplicateToken &&
+ prevToken != nil &&
+ p.nextToken != nil &&
+ *prevToken == *p.nextToken {
p.nextToken = nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/generated.json b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/generated.json
index 9122952..5be0e34 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/generated.json
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/generated.json
@@ -7,6 +7,7 @@
},
"files": [
"api_client.go",
+ "api_client_test.go",
"api_op_GetRoleCredentials.go",
"api_op_ListAccountRoles.go",
"api_op_ListAccounts.go",
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go
index f61fe1e..ba73144 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go
@@ -3,4 +3,4 @@
package sso
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.6.0"
+const goModuleVersion = "1.11.8"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints/endpoints.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints/endpoints.go
index 712a3c1..0cbce75 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints/endpoints.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints/endpoints.go
@@ -151,6 +151,14 @@ var defaultPartitions = endpoints.Partitions{
Region: "ap-northeast-2",
},
},
+ endpoints.EndpointKey{
+ Region: "ap-northeast-3",
+ }: endpoints.Endpoint{
+ Hostname: "portal.sso.ap-northeast-3.amazonaws.com",
+ CredentialScope: endpoints.CredentialScope{
+ Region: "ap-northeast-3",
+ },
+ },
endpoints.EndpointKey{
Region: "ap-south-1",
}: endpoints.Endpoint{
@@ -369,6 +377,14 @@ var defaultPartitions = endpoints.Partitions{
RegionRegex: partitionRegexp.AwsUsGov,
IsRegionalized: true,
Endpoints: endpoints.Endpoints{
+ endpoints.EndpointKey{
+ Region: "us-gov-east-1",
+ }: endpoints.Endpoint{
+ Hostname: "portal.sso.us-gov-east-1.amazonaws.com",
+ CredentialScope: endpoints.CredentialScope{
+ Region: "us-gov-east-1",
+ },
+ },
endpoints.EndpointKey{
Region: "us-gov-west-1",
}: endpoints.Endpoint{
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md
index a2319d0..433e39c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md
@@ -1,3 +1,71 @@
+# v1.16.7 (2022-06-07)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.16.6 (2022-05-17)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.16.5 (2022-05-16)
+
+* **Documentation**: Documentation updates for AWS Security Token Service.
+
+# v1.16.4 (2022-04-25)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.16.3 (2022-03-30)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.16.2 (2022-03-24)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.16.1 (2022-03-23)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.16.0 (2022-03-08)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Documentation**: Updated service client model to latest release.
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.15.0 (2022-02-24)
+
+* **Feature**: API client updated
+* **Feature**: Adds RetryMaxAttempts and RetryMod to API client Options. This allows the API clients' default Retryer to be configured from the shared configuration files or environment variables. Adding a new Retry mode of `Adaptive`. `Adaptive` retry mode is an experimental mode, adding client rate limiting when throttles reponses are received from an API. See [retry.AdaptiveMode](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws/retry#AdaptiveMode) for more details, and configuration options.
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.14.0 (2022-01-14)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.13.0 (2022-01-07)
+
+* **Feature**: Updated `github.com/aws/smithy-go` to latest version
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.12.0 (2021-12-21)
+
+* **Feature**: Updated to latest service endpoints
+
+# v1.11.1 (2021-12-02)
+
+* **Bug Fix**: Fixes a bug that prevented aws.EndpointResolverWithOptions from being used by the service client. ([#1514](https://github.com/aws/aws-sdk-go-v2/pull/1514))
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.11.0 (2021-11-30)
+
+* **Feature**: API client updated
+
+# v1.10.1 (2021-11-19)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
# v1.10.0 (2021-11-12)
* **Feature**: Service clients now support custom endpoints that have an initial URI path defined.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_client.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_client.go
index 1c022f9..4bff1df 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_client.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_client.go
@@ -5,6 +5,7 @@ package sts
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
+ "github.com/aws/aws-sdk-go-v2/aws/defaults"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/protocol/query"
"github.com/aws/aws-sdk-go-v2/aws/retry"
@@ -17,6 +18,7 @@ import (
"github.com/aws/smithy-go/logging"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
+ "net"
"net/http"
"time"
)
@@ -38,6 +40,8 @@ func New(options Options, optFns ...func(*Options)) *Client {
resolveDefaultLogger(&options)
+ setResolvedDefaultsMode(&options)
+
resolveRetryer(&options)
resolveHTTPClient(&options)
@@ -69,6 +73,10 @@ type Options struct {
// The credentials object to use when signing requests.
Credentials aws.CredentialsProvider
+ // The configuration DefaultsMode that the SDK should use when constructing the
+ // clients initial default settings.
+ DefaultsMode aws.DefaultsMode
+
// The endpoint options to be used when attempting to resolve an endpoint.
EndpointOptions EndpointResolverOptions
@@ -84,10 +92,42 @@ type Options struct {
// The region to send requests to. (Required)
Region string
+ // RetryMaxAttempts specifies the maximum number attempts an API client will call
+ // an operation that fails with a retryable error. A value of 0 is ignored, and
+ // will not be used to configure the API client created default retryer, or modify
+ // per operation call's retry max attempts. When creating a new API Clients this
+ // member will only be used if the Retryer Options member is nil. This value will
+ // be ignored if Retryer is not nil. If specified in an operation call's functional
+ // options with a value that is different than the constructed client's Options,
+ // the Client's Retryer will be wrapped to use the operation's specific
+ // RetryMaxAttempts value.
+ RetryMaxAttempts int
+
+ // RetryMode specifies the retry mode the API client will be created with, if
+ // Retryer option is not also specified. When creating a new API Clients this
+ // member will only be used if the Retryer Options member is nil. This value will
+ // be ignored if Retryer is not nil. Currently does not support per operation call
+ // overrides, may in the future.
+ RetryMode aws.RetryMode
+
// Retryer guides how HTTP requests should be retried in case of recoverable
- // failures. When nil the API client will use a default retryer.
+ // failures. When nil the API client will use a default retryer. The kind of
+ // default retry created by the API client can be changed with the RetryMode
+ // option.
Retryer aws.Retryer
+ // The RuntimeEnvironment configuration, only populated if the DefaultsMode is set
+ // to DefaultsModeAuto and is initialized using config.LoadDefaultConfig. You
+ // should not populate this structure programmatically, or rely on the values here
+ // within your applications.
+ RuntimeEnvironment aws.RuntimeEnvironment
+
+ // The initial DefaultsMode used when the client options were constructed. If the
+ // DefaultsMode was set to aws.DefaultsModeAuto this will store what the resolved
+ // value was at that point in time. Currently does not support per operation call
+ // overrides, may in the future.
+ resolvedDefaultsMode aws.DefaultsMode
+
// The HTTP client to invoke API calls with. Defaults to client's default HTTP
// implementation if nil.
HTTPClient HTTPClient
@@ -118,6 +158,7 @@ func (o Options) Copy() Options {
to := o
to.APIOptions = make([]func(*middleware.Stack) error, len(o.APIOptions))
copy(to.APIOptions, o.APIOptions)
+
return to
}
func (c *Client) invokeOperation(ctx context.Context, opID string, params interface{}, optFns []func(*Options), stackFns ...func(*middleware.Stack, Options) error) (result interface{}, metadata middleware.Metadata, err error) {
@@ -128,6 +169,8 @@ func (c *Client) invokeOperation(ctx context.Context, opID string, params interf
fn(&options)
}
+ finalizeRetryMaxAttemptOptions(&options, *c)
+
finalizeClientEndpointResolverOptions(&options)
for _, fn := range stackFns {
@@ -167,17 +210,36 @@ func addSetLoggerMiddleware(stack *middleware.Stack, o Options) error {
return middleware.AddSetLoggerMiddleware(stack, o.Logger)
}
+func setResolvedDefaultsMode(o *Options) {
+ if len(o.resolvedDefaultsMode) > 0 {
+ return
+ }
+
+ var mode aws.DefaultsMode
+ mode.SetFromString(string(o.DefaultsMode))
+
+ if mode == aws.DefaultsModeAuto {
+ mode = defaults.ResolveDefaultsModeAuto(o.Region, o.RuntimeEnvironment)
+ }
+
+ o.resolvedDefaultsMode = mode
+}
+
// NewFromConfig returns a new client from the provided config.
func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
opts := Options{
- Region: cfg.Region,
- HTTPClient: cfg.HTTPClient,
- Credentials: cfg.Credentials,
- APIOptions: cfg.APIOptions,
- Logger: cfg.Logger,
- ClientLogMode: cfg.ClientLogMode,
+ Region: cfg.Region,
+ DefaultsMode: cfg.DefaultsMode,
+ RuntimeEnvironment: cfg.RuntimeEnvironment,
+ HTTPClient: cfg.HTTPClient,
+ Credentials: cfg.Credentials,
+ APIOptions: cfg.APIOptions,
+ Logger: cfg.Logger,
+ ClientLogMode: cfg.ClientLogMode,
}
resolveAWSRetryerProvider(cfg, &opts)
+ resolveAWSRetryMaxAttempts(cfg, &opts)
+ resolveAWSRetryMode(cfg, &opts)
resolveAWSEndpointResolver(cfg, &opts)
resolveUseDualStackEndpoint(cfg, &opts)
resolveUseFIPSEndpoint(cfg, &opts)
@@ -185,17 +247,71 @@ func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
}
func resolveHTTPClient(o *Options) {
+ var buildable *awshttp.BuildableClient
+
if o.HTTPClient != nil {
- return
+ var ok bool
+ buildable, ok = o.HTTPClient.(*awshttp.BuildableClient)
+ if !ok {
+ return
+ }
+ } else {
+ buildable = awshttp.NewBuildableClient()
}
- o.HTTPClient = awshttp.NewBuildableClient()
+
+ modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode)
+ if err == nil {
+ buildable = buildable.WithDialerOptions(func(dialer *net.Dialer) {
+ if dialerTimeout, ok := modeConfig.GetConnectTimeout(); ok {
+ dialer.Timeout = dialerTimeout
+ }
+ })
+
+ buildable = buildable.WithTransportOptions(func(transport *http.Transport) {
+ if tlsHandshakeTimeout, ok := modeConfig.GetTLSNegotiationTimeout(); ok {
+ transport.TLSHandshakeTimeout = tlsHandshakeTimeout
+ }
+ })
+ }
+
+ o.HTTPClient = buildable
}
func resolveRetryer(o *Options) {
if o.Retryer != nil {
return
}
- o.Retryer = retry.NewStandard()
+
+ if len(o.RetryMode) == 0 {
+ modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode)
+ if err == nil {
+ o.RetryMode = modeConfig.RetryMode
+ }
+ }
+ if len(o.RetryMode) == 0 {
+ o.RetryMode = aws.RetryModeStandard
+ }
+
+ var standardOptions []func(*retry.StandardOptions)
+ if v := o.RetryMaxAttempts; v != 0 {
+ standardOptions = append(standardOptions, func(so *retry.StandardOptions) {
+ so.MaxAttempts = v
+ })
+ }
+
+ switch o.RetryMode {
+ case aws.RetryModeAdaptive:
+ var adaptiveOptions []func(*retry.AdaptiveModeOptions)
+ if len(standardOptions) != 0 {
+ adaptiveOptions = append(adaptiveOptions, func(ao *retry.AdaptiveModeOptions) {
+ ao.StandardOptions = append(ao.StandardOptions, standardOptions...)
+ })
+ }
+ o.Retryer = retry.NewAdaptiveMode(adaptiveOptions...)
+
+ default:
+ o.Retryer = retry.NewStandard(standardOptions...)
+ }
}
func resolveAWSRetryerProvider(cfg aws.Config, o *Options) {
@@ -205,8 +321,29 @@ func resolveAWSRetryerProvider(cfg aws.Config, o *Options) {
o.Retryer = cfg.Retryer()
}
+func resolveAWSRetryMode(cfg aws.Config, o *Options) {
+ if len(cfg.RetryMode) == 0 {
+ return
+ }
+ o.RetryMode = cfg.RetryMode
+}
+func resolveAWSRetryMaxAttempts(cfg aws.Config, o *Options) {
+ if cfg.RetryMaxAttempts == 0 {
+ return
+ }
+ o.RetryMaxAttempts = cfg.RetryMaxAttempts
+}
+
+func finalizeRetryMaxAttemptOptions(o *Options, client Client) {
+ if v := o.RetryMaxAttempts; v == 0 || v == client.options.RetryMaxAttempts {
+ return
+ }
+
+ o.Retryer = retry.AddWithMaxAttempts(o.Retryer, o.RetryMaxAttempts)
+}
+
func resolveAWSEndpointResolver(cfg aws.Config, o *Options) {
- if cfg.EndpointResolver == nil {
+ if cfg.EndpointResolver == nil && cfg.EndpointResolverWithOptions == nil {
return
}
o.EndpointResolver = withEndpointResolver(cfg.EndpointResolver, cfg.EndpointResolverWithOptions, NewDefaultEndpointResolver())
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRole.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRole.go
index 08dbe47..7d00b6b 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRole.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRole.go
@@ -19,13 +19,13 @@ import (
// that produce temporary credentials, see Requesting Temporary Security
// Credentials
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
-// and Comparing the STS API operations
+// and Comparing the Amazon Web Services STS API operations
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
// in the IAM User Guide. Permissions The temporary security credentials created by
// AssumeRole can be used to make API calls to any Amazon Web Services service with
-// the following exception: You cannot call the STS GetFederationToken or
-// GetSessionToken API operations. (Optional) You can pass inline or managed
-// session policies
+// the following exception: You cannot call the Amazon Web Services STS
+// GetFederationToken or GetSessionToken API operations. (Optional) You can pass
+// inline or managed session policies
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
// to this operation. You can pass a single JSON policy document to use as an
// inline session policy. You can also specify up to 10 managed policies to use as
@@ -39,25 +39,30 @@ import (
// identity-based policy of the role that is being assumed. For more information,
// see Session Policies
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
-// in the IAM User Guide. To assume a role from a different account, your account
-// must be trusted by the role. The trust relationship is defined in the role's
-// trust policy when the role is created. That trust policy states which accounts
-// are allowed to delegate that access to users in the account. A user who wants to
-// access a role in a different account must also have permissions that are
-// delegated from the user account administrator. The administrator must attach a
-// policy that allows the user to call AssumeRole for the ARN of the role in the
-// other account. If the user is in the same account as the role, then you can do
-// either of the following:
+// in the IAM User Guide. When you create a role, you create two policies: A role
+// trust policy that specifies who can assume the role and a permissions policy
+// that specifies what can be done with the role. You specify the trusted principal
+// who is allowed to assume the role in the role trust policy. To assume a role
+// from a different account, your Amazon Web Services account must be trusted by
+// the role. The trust relationship is defined in the role's trust policy when the
+// role is created. That trust policy states which accounts are allowed to delegate
+// that access to users in the account. A user who wants to access a role in a
+// different account must also have permissions that are delegated from the user
+// account administrator. The administrator must attach a policy that allows the
+// user to call AssumeRole for the ARN of the role in the other account. To allow a
+// user to assume a role in the same account, you can do either of the
+// following:
//
-// * Attach a policy to the user (identical to the
-// previous user in a different account).
+// * Attach a policy to the user that allows the user to call
+// AssumeRole (as long as the role's trust policy trusts the account).
//
-// * Add the user as a principal directly
-// in the role's trust policy.
+// * Add the
+// user as a principal directly in the role's trust policy.
//
-// In this case, the trust policy acts as an IAM
-// resource-based policy. Users in the same account as the role do not need
-// explicit permission to assume the role. For more information about trust
+// You can do either
+// because the role’s trust policy acts as an IAM resource-based policy. When a
+// resource-based policy grants access to a principal in the same account, no
+// additional identity-based policy is required. For more information about trust
// policies and resource-based policies, see IAM Policies
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) in the
// IAM User Guide. Tags (Optional) You can pass tag key-value pairs to your
@@ -125,14 +130,21 @@ type AssumeRoleInput struct {
// This member is required.
RoleSessionName *string
- // The duration, in seconds, of the role session. The value specified can can range
- // from 900 seconds (15 minutes) up to the maximum session duration that is set for
- // the role. The maximum session duration setting can have a value from 1 hour to
- // 12 hours. If you specify a value higher than this setting or the administrator
+ // The duration, in seconds, of the role session. The value specified can range
+ // from 900 seconds (15 minutes) up to the maximum session duration set for the
+ // role. The maximum session duration setting can have a value from 1 hour to 12
+ // hours. If you specify a value higher than this setting or the administrator
// setting (whichever is lower), the operation fails. For example, if you specify a
// session duration of 12 hours, but your administrator set the maximum session
- // duration to 6 hours, your operation fails. To learn how to view the maximum
- // value for your role, see View the Maximum Session Duration Setting for a Role
+ // duration to 6 hours, your operation fails. Role chaining limits your Amazon Web
+ // Services CLI or Amazon Web Services API role session to a maximum of one hour.
+ // When you use the AssumeRole API operation to assume a role, you can specify the
+ // duration of your role session with the DurationSeconds parameter. You can
+ // specify a parameter value of up to 43200 seconds (12 hours), depending on the
+ // maximum session duration setting for your role. However, if you assume a role
+ // using role chaining and provide a DurationSeconds parameter value greater than
+ // one hour, the operation fails. To learn how to view the maximum value for your
+ // role, see View the Maximum Session Duration Setting for a Role
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session)
// in the IAM User Guide. By default, the value is set to 3600 seconds. The
// DurationSeconds parameter is separate from the duration of a console session
@@ -140,7 +152,7 @@ type AssumeRoleInput struct {
// federation endpoint for a console sign-in token takes a SessionDuration
// parameter that specifies the maximum length of the console session. For more
// information, see Creating a URL that Enables Federated Users to Access the
- // Management Console
+ // Amazon Web Services Management Console
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html)
// in the IAM User Guide.
DurationSeconds *int32
@@ -237,7 +249,7 @@ type AssumeRoleInput struct {
// A list of session tags that you want to pass. Each session tag consists of a key
// name and an associated value. For more information about session tags, see
- // Tagging STS Sessions
+ // Tagging Amazon Web Services STS Sessions
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) in the
// IAM User Guide. This parameter is optional. You can pass up to 50 session tags.
// The plaintext session tag keys can’t exceed 128 characters, and the values can’t
@@ -261,7 +273,7 @@ type AssumeRoleInput struct {
// session. If you pass a session tag with the same key as an inherited tag, the
// operation fails. To view the inherited tags for a session, see the CloudTrail
// logs. For more information, see Viewing Session Tags in CloudTrail
- // (https://docs.aws.amazon.com/IAM/latest/UserGuide/session-tags.html#id_session-tags_ctlogs)
+ // (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_ctlogs)
// in the IAM User Guide.
Tags []types.Tag
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithSAML.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithSAML.go
index f0ac207..e12315e 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithSAML.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithSAML.go
@@ -17,7 +17,7 @@ import (
// For a comparison of AssumeRoleWithSAML with the other API operations that
// produce temporary credentials, see Requesting Temporary Security Credentials
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
-// and Comparing the STS API operations
+// and Comparing the Amazon Web Services STS API operations
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
// in the IAM User Guide. The temporary security credentials returned by this
// operation consist of an access key ID, a secret access key, and a security
@@ -174,7 +174,7 @@ type AssumeRoleWithSAMLInput struct {
// federation endpoint for a console sign-in token takes a SessionDuration
// parameter that specifies the maximum length of the console session. For more
// information, see Creating a URL that Enables Federated Users to Access the
- // Management Console
+ // Amazon Web Services Management Console
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html)
// in the IAM User Guide.
DurationSeconds *int32
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithWebIdentity.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithWebIdentity.go
index 99c26b2..2e8b51c 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithWebIdentity.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithWebIdentity.go
@@ -12,10 +12,12 @@ import (
// Returns a set of temporary security credentials for users who have been
// authenticated in a mobile or web application with a web identity provider.
-// Example providers include Amazon Cognito, Login with Amazon, Facebook, Google,
-// or any OpenID Connect-compatible identity provider. For mobile applications, we
-// recommend that you use Amazon Cognito. You can use Amazon Cognito with the
-// Amazon Web Services SDK for iOS Developer Guide
+// Example providers include the OAuth 2.0 providers Login with Amazon and
+// Facebook, or any OpenID Connect-compatible identity provider such as Google or
+// Amazon Cognito federated identities
+// (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html).
+// For mobile applications, we recommend that you use Amazon Cognito. You can use
+// Amazon Cognito with the Amazon Web Services SDK for iOS Developer Guide
// (http://aws.amazon.com/sdkforios/) and the Amazon Web Services SDK for Android
// Developer Guide (http://aws.amazon.com/sdkforandroid/) to uniquely identify a
// user. You can also supply the user with a consistent identity throughout the
@@ -36,7 +38,7 @@ import (
// AssumeRoleWithWebIdentity with the other API operations that produce temporary
// credentials, see Requesting Temporary Security Credentials
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
-// and Comparing the STS API operations
+// and Comparing the Amazon Web Services STS API operations
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
// in the IAM User Guide. The temporary security credentials returned by this API
// consist of an access key ID, a secret access key, and a security token.
@@ -193,7 +195,7 @@ type AssumeRoleWithWebIdentityInput struct {
// federation endpoint for a console sign-in token takes a SessionDuration
// parameter that specifies the maximum length of the console session. For more
// information, see Creating a URL that Enables Federated Users to Access the
- // Management Console
+ // Amazon Web Services Management Console
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html)
// in the IAM User Guide.
DurationSeconds *int32
@@ -244,11 +246,11 @@ type AssumeRoleWithWebIdentityInput struct {
// in the IAM User Guide.
PolicyArns []types.PolicyDescriptorType
- // The fully qualified host component of the domain name of the identity provider.
- // Specify this value only for OAuth 2.0 access tokens. Currently www.amazon.com
- // and graph.facebook.com are the only supported identity providers for OAuth 2.0
- // access tokens. Do not include URL schemes and port numbers. Do not specify this
- // value for OpenID Connect ID tokens.
+ // The fully qualified host component of the domain name of the OAuth 2.0 identity
+ // provider. Do not specify this value for an OpenID Connect identity provider.
+ // Currently www.amazon.com and graph.facebook.com are the only supported identity
+ // providers for OAuth 2.0 access tokens. Do not include URL schemes and port
+ // numbers. Do not specify this value for OpenID Connect ID tokens.
ProviderId *string
noSmithyDocumentSerde
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_DecodeAuthorizationMessage.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_DecodeAuthorizationMessage.go
index 81718f5..b7a637d 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_DecodeAuthorizationMessage.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_DecodeAuthorizationMessage.go
@@ -19,16 +19,18 @@ import (
// certain Amazon Web Services operations return an encoded authorization message.
// The documentation for an individual operation indicates whether that operation
// returns an encoded message in addition to returning an HTTP code. The message is
-// encoded because the details of the authorization status can constitute
-// privileged information that the user who requested the operation should not see.
-// To decode an authorization status message, a user must be granted permissions
-// via an IAM policy to request the DecodeAuthorizationMessage
-// (sts:DecodeAuthorizationMessage) action. The decoded message includes the
-// following type of information:
+// encoded because the details of the authorization status can contain privileged
+// information that the user who requested the operation should not see. To decode
+// an authorization status message, a user must be granted permissions through an
+// IAM policy
+// (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) to
+// request the DecodeAuthorizationMessage (sts:DecodeAuthorizationMessage) action.
+// The decoded message includes the following type of information:
//
-// * Whether the request was denied due to an
-// explicit deny or due to the absence of an explicit allow. For more information,
-// see Determining Whether a Request is Allowed or Denied
+// * Whether the
+// request was denied due to an explicit deny or due to the absence of an explicit
+// allow. For more information, see Determining Whether a Request is Allowed or
+// Denied
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow)
// in the IAM User Guide.
//
@@ -71,7 +73,7 @@ type DecodeAuthorizationMessageInput struct {
// Web Services request.
type DecodeAuthorizationMessageOutput struct {
- // An XML document that contains the decoded message.
+ // The API returns a response with the decoded message.
DecodedMessage *string
// Metadata pertaining to the operation's result.
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetFederationToken.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetFederationToken.go
index b52d77c..01a3d41 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetFederationToken.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetFederationToken.go
@@ -21,7 +21,7 @@ import (
// GetFederationToken with the other API operations that produce temporary
// credentials, see Requesting Temporary Security Credentials
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
-// and Comparing the STS API operations
+// and Comparing the Amazon Web Services STS API operations
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
// in the IAM User Guide. You can create a mobile-based or browser-based app that
// can authenticate users using a web identity provider like Login with Amazon,
@@ -40,16 +40,16 @@ import (
// IAM User Guide. Session duration The temporary credentials are valid for the
// specified duration, from 900 seconds (15 minutes) up to a maximum of 129,600
// seconds (36 hours). The default session duration is 43,200 seconds (12 hours).
-// Temporary credentials that are obtained by using Amazon Web Services account
-// root user credentials have a maximum duration of 3,600 seconds (1 hour).
-// Permissions You can use the temporary credentials created by GetFederationToken
-// in any Amazon Web Services service except the following:
+// Temporary credentials obtained by using the Amazon Web Services account root
+// user credentials have a maximum duration of 3,600 seconds (1 hour). Permissions
+// You can use the temporary credentials created by GetFederationToken in any
+// Amazon Web Services service except the following:
+//
+// * You cannot call any IAM
+// operations using the CLI or the Amazon Web Services API.
//
// * You cannot call any
-// IAM operations using the CLI or the Amazon Web Services API.
-//
-// * You cannot call
-// any STS operations except GetCallerIdentity.
+// STS operations except GetCallerIdentity.
//
// You must pass an inline or managed
// session policy
@@ -85,56 +85,8 @@ import (
// or AssumeRoleWithWebIdentity. For more information, see Federation Through a
// Web-based Identity Provider
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity)
-// in the IAM User Guide. You can also call GetFederationToken using the security
-// credentials of an Amazon Web Services account root user, but we do not recommend
-// it. Instead, we recommend that you create an IAM user for the purpose of the
-// proxy application. Then attach a policy to the IAM user that limits federated
-// users to only the actions and resources that they need to access. For more
-// information, see IAM Best Practices
-// (https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) in the
-// IAM User Guide. Session duration The temporary credentials are valid for the
-// specified duration, from 900 seconds (15 minutes) up to a maximum of 129,600
-// seconds (36 hours). The default session duration is 43,200 seconds (12 hours).
-// Temporary credentials that are obtained by using Amazon Web Services account
-// root user credentials have a maximum duration of 3,600 seconds (1 hour).
-// Permissions You can use the temporary credentials created by GetFederationToken
-// in any Amazon Web Services service except the following:
-//
-// * You cannot call any
-// IAM operations using the CLI or the Amazon Web Services API.
-//
-// * You cannot call
-// any STS operations except GetCallerIdentity.
-//
-// You must pass an inline or managed
-// session policy
-// (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
-// to this operation. You can pass a single JSON policy document to use as an
-// inline session policy. You can also specify up to 10 managed policies to use as
-// managed session policies. The plain text that you use for both inline and
-// managed session policies can't exceed 2,048 characters. Though the session
-// policy parameters are optional, if you do not pass a policy, then the resulting
-// federated user session has no permissions. When you pass session policies, the
-// session permissions are the intersection of the IAM user policies and the
-// session policies that you pass. This gives you a way to further restrict the
-// permissions for a federated user. You cannot use session policies to grant more
-// permissions than those that are defined in the permissions policy of the IAM
-// user. For more information, see Session Policies
-// (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
-// in the IAM User Guide. For information about using GetFederationToken to create
-// temporary security credentials, see GetFederationToken—Federation Through a
-// Custom Identity Broker
-// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken).
-// You can use the credentials to access a resource that has a resource-based
-// policy. If that policy specifically references the federated user session in the
-// Principal element of the policy, the session has the permissions allowed by the
-// policy. These permissions are granted in addition to the permissions granted by
-// the session policies. Tags (Optional) You can pass tag key-value pairs to your
-// session. These are called session tags. For more information about session tags,
-// see Passing Session Tags in STS
-// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) in the
-// IAM User Guide. An administrator must grant you the permissions necessary to
-// pass session tags. The administrator can also create granular permissions to
+// in the IAM User Guide. An administrator must grant you the permissions necessary
+// to pass session tags. The administrator can also create granular permissions to
// allow you to pass only specific session tags. For more information, see
// Tutorial: Using Tags for Attribute-Based Access Control
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetSessionToken.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetSessionToken.go
index 61d0da7..bfde516 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetSessionToken.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetSessionToken.go
@@ -24,8 +24,13 @@ import (
// operations that produce temporary credentials, see Requesting Temporary Security
// Credentials
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
-// and Comparing the STS API operations
+// and Comparing the Amazon Web Services STS API operations
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
+// in the IAM User Guide. No permissions are required for users to perform this
+// operation. The purpose of the sts:GetSessionToken operation is to authenticate
+// the user using MFA. You cannot use policies to control authentication
+// operations. For more information, see Permissions for GetSessionToken
+// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getsessiontoken.html)
// in the IAM User Guide. Session Duration The GetSessionToken operation must be
// called by using the long-term Amazon Web Services security credentials of the
// Amazon Web Services account root user or an IAM user. Credentials that are
@@ -90,11 +95,11 @@ type GetSessionTokenInput struct {
// policy that requires MFA authentication. The value is either the serial number
// for a hardware device (such as GAHT12345678) or an Amazon Resource Name (ARN)
// for a virtual device (such as arn:aws:iam::123456789012:mfa/user). You can find
- // the device for an IAM user by going to the Management Console and viewing the
- // user's security credentials. The regex used to validate this parameter is a
- // string of characters consisting of upper- and lower-case alphanumeric characters
- // with no spaces. You can also include underscores or any of the following
- // characters: =,.@:/-
+ // the device for an IAM user by going to the Amazon Web Services Management
+ // Console and viewing the user's security credentials. The regex used to validate
+ // this parameter is a string of characters consisting of upper- and lower-case
+ // alphanumeric characters with no spaces. You can also include underscores or any
+ // of the following characters: =,.@:/-
SerialNumber *string
// The value provided by the MFA device, if MFA is required. If any policy requires
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/generated.json b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/generated.json
index 9aca91b..86341bb 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/generated.json
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/generated.json
@@ -8,6 +8,7 @@
},
"files": [
"api_client.go",
+ "api_client_test.go",
"api_op_AssumeRole.go",
"api_op_AssumeRoleWithSAML.go",
"api_op_AssumeRoleWithWebIdentity.go",
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go
index 066004b..f169e95 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go
@@ -3,4 +3,4 @@
package sts
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.10.0"
+const goModuleVersion = "1.16.7"
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints/endpoints.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints/endpoints.go
index c6ff65b..28ed441 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints/endpoints.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints/endpoints.go
@@ -159,6 +159,9 @@ var defaultPartitions = endpoints.Partitions{
endpoints.EndpointKey{
Region: "ap-southeast-2",
}: endpoints.Endpoint{},
+ endpoints.EndpointKey{
+ Region: "ap-southeast-3",
+ }: endpoints.Endpoint{},
endpoints.EndpointKey{
Region: "aws-global",
}: endpoints.Endpoint{
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/errors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/errors.go
index fec4e40..b109fe5 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/errors.go
@@ -148,7 +148,7 @@ func (e *MalformedPolicyDocumentException) ErrorFault() smithy.ErrorFault { retu
// IAM User Guide. You could receive this error even though you meet other defined
// session policy and session tag limits. For more information, see IAM and STS
// Entity Character Limits
-// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
+// (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-limits-entity-length)
// in the IAM User Guide.
type PackedPolicyTooLargeException struct {
Message *string
diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/types.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/types.go
index 5bcc356..86e5099 100644
--- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/types.go
+++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/types.go
@@ -94,7 +94,8 @@ type PolicyDescriptorType struct {
// You can pass custom key-value pair attributes when you assume a role or federate
// a user. These are called session tags. You can then use the session tags to
-// control access to resources. For more information, see Tagging STS Sessions
+// control access to resources. For more information, see Tagging Amazon Web
+// Services STS Sessions
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) in the
// IAM User Guide.
type Tag struct {
diff --git a/vendor/github.com/aws/smithy-go/CHANGELOG.md b/vendor/github.com/aws/smithy-go/CHANGELOG.md
index 9460675..01a237d 100644
--- a/vendor/github.com/aws/smithy-go/CHANGELOG.md
+++ b/vendor/github.com/aws/smithy-go/CHANGELOG.md
@@ -1,3 +1,37 @@
+# Release (v1.11.3)
+
+## Module Highlights
+* `github.com/aws/smithy-go`: v1.11.3
+ * **Dependency Update**: Updates smithy-go unit test dependency go-cmp to 0.5.8.
+
+# Release (v1.11.2)
+
+* No change notes available for this release.
+
+# Release (v1.11.1)
+
+## Module Highlights
+* `github.com/aws/smithy-go`: v1.11.1
+ * **Bug Fix**: Updates the smithy-go HTTP Request to correctly handle building the request to an http.Request. Related to [aws/aws-sdk-go-v2#1583](https://github.com/aws/aws-sdk-go-v2/issues/1583)
+
+# Release (v1.11.0)
+
+## Module Highlights
+* `github.com/aws/smithy-go`: v1.11.0
+ * **Feature**: Updates deserialization of header list to supported quoted strings
+
+# Release (v1.10.0)
+
+## Module Highlights
+* `github.com/aws/smithy-go`: v1.10.0
+ * **Feature**: Add `ptr.Duration`, `ptr.ToDuration`, `ptr.DurationSlice`, `ptr.ToDurationSlice`, `ptr.DurationMap`, and `ptr.ToDurationMap` functions for the `time.Duration` type.
+
+# Release (v1.9.1)
+
+## Module Highlights
+* `github.com/aws/smithy-go`: v1.9.1
+ * **Documentation**: Fixes various typos in Go package documentation.
+
# Release (v1.9.0)
## Module Highlights
diff --git a/vendor/github.com/aws/smithy-go/Makefile b/vendor/github.com/aws/smithy-go/Makefile
index 8794878..b8c6574 100644
--- a/vendor/github.com/aws/smithy-go/Makefile
+++ b/vendor/github.com/aws/smithy-go/Makefile
@@ -1,3 +1,4 @@
+PRE_RELEASE_VERSION ?=
RELEASE_MANIFEST_FILE ?=
RELEASE_CHGLOG_DESC_FILE ?=
@@ -5,6 +6,7 @@ RELEASE_CHGLOG_DESC_FILE ?=
REPOTOOLS_VERSION ?= latest
REPOTOOLS_MODULE = github.com/awslabs/aws-go-multi-module-repository-tools
REPOTOOLS_CMD_CALCULATE_RELEASE = ${REPOTOOLS_MODULE}/cmd/calculaterelease@${REPOTOOLS_VERSION}
+REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS ?=
REPOTOOLS_CMD_UPDATE_REQUIRES = ${REPOTOOLS_MODULE}/cmd/updaterequires@${REPOTOOLS_VERSION}
REPOTOOLS_CMD_UPDATE_MODULE_METADATA = ${REPOTOOLS_MODULE}/cmd/updatemodulemeta@${REPOTOOLS_VERSION}
REPOTOOLS_CMD_GENERATE_CHANGELOG = ${REPOTOOLS_MODULE}/cmd/generatechangelog@${REPOTOOLS_VERSION}
@@ -12,6 +14,10 @@ REPOTOOLS_CMD_CHANGELOG = ${REPOTOOLS_MODULE}/cmd/changelog@${REPOTOOLS_VERSION}
REPOTOOLS_CMD_TAG_RELEASE = ${REPOTOOLS_MODULE}/cmd/tagrelease@${REPOTOOLS_VERSION}
REPOTOOLS_CMD_MODULE_VERSION = ${REPOTOOLS_MODULE}/cmd/moduleversion@${REPOTOOLS_VERSION}
+ifneq ($(PRE_RELEASE_VERSION),)
+ REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS += -preview=${PRE_RELEASE_VERSION}
+endif
+
smithy-publish-local:
cd codegen && ./gradlew publishToMavenLocal
@@ -27,7 +33,7 @@ smithy-clean:
.PHONY: preview-release pre-release-validation release
preview-release:
- go run ${REPOTOOLS_CMD_CALCULATE_RELEASE}
+ go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} ${REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS}
pre-release-validation:
@if [[ -z "${RELEASE_MANIFEST_FILE}" ]]; then \
@@ -38,7 +44,7 @@ pre-release-validation:
fi
release: pre-release-validation
- go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} -o ${RELEASE_MANIFEST_FILE}
+ go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} -o ${RELEASE_MANIFEST_FILE} ${REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS}
go run ${REPOTOOLS_CMD_UPDATE_REQUIRES} -release ${RELEASE_MANIFEST_FILE}
go run ${REPOTOOLS_CMD_UPDATE_MODULE_METADATA} -release ${RELEASE_MANIFEST_FILE}
go run ${REPOTOOLS_CMD_GENERATE_CHANGELOG} -release ${RELEASE_MANIFEST_FILE} -o ${RELEASE_CHGLOG_DESC_FILE}
diff --git a/vendor/github.com/aws/smithy-go/document/document.go b/vendor/github.com/aws/smithy-go/document/document.go
index df7d601..8f852d9 100644
--- a/vendor/github.com/aws/smithy-go/document/document.go
+++ b/vendor/github.com/aws/smithy-go/document/document.go
@@ -36,7 +36,7 @@ import (
// - document field tag is "-"
// - document field tag specifies "omitempty", and is a zero value.
//
-// Pointer and interfaces values are encoded as the value pointed to or
+// Pointer and interface values are encoded as the value pointed to or
// contained in the interface. A nil value encodes as a null
// value unless `omitempty` struct tag is provided.
//
@@ -46,7 +46,7 @@ import (
// time.Time is not supported and will cause the Marshaler to return an error. These values should be represented
// by your application as a string or numerical representation.
//
-// Errors that occur when marshaling will stop the marshaller, and return the error.
+// Errors that occur when marshaling will stop the marshaler, and return the error.
//
// Marshal cannot represent cyclic data structures and will not handle them.
// Passing cyclic structures to Marshal will result in an infinite recursion.
@@ -54,14 +54,14 @@ type Marshaler interface {
MarshalSmithyDocument() ([]byte, error)
}
-// Unmarshaler is an interface for a type that unmarshalls a document from its protocol-specific representation, and
+// Unmarshaler is an interface for a type that unmarshals a document from its protocol-specific representation, and
// stores the result into the value pointed by v. If v is nil or not a pointer then InvalidUnmarshalError will be
// returned.
//
// Unmarshaler supports the same encodings produced by a document Marshaler. This includes support for the `document`
-// struct field tag for controlling how struct fields are unmarshalled.
+// struct field tag for controlling how struct fields are unmarshaled.
//
-// Both generic interface{} and concrete types are valid unmarshal destination types. When unmarshalling a document
+// Both generic interface{} and concrete types are valid unmarshal destination types. When unmarshaling a document
// into an empty interface the Unmarshaler will store one of these values:
// bool, for boolean values
// document.Number, for arbitrary-precision numbers (int64, float64, big.Int, big.Float)
@@ -70,7 +70,7 @@ type Marshaler interface {
// map[string]interface{}, for objects
// nil, for null values
//
-// When unmarshalling, any error that occurs will halt the unmarshal and return the error.
+// When unmarshaling, any error that occurs will halt the unmarshal and return the error.
type Unmarshaler interface {
UnmarshalSmithyDocument(v interface{}) error
}
@@ -79,7 +79,7 @@ type noSerde interface {
noSmithyDocumentSerde()
}
-// NoSerde is a sentinel value to indicate that a given type should not be marshaled or unmarshalled
+// NoSerde is a sentinel value to indicate that a given type should not be marshaled or unmarshaled
// into a protocol document.
type NoSerde struct{}
@@ -93,7 +93,7 @@ func IsNoSerde(x interface{}) bool {
return ok
}
-// Number is a arbitrary precision numerical value
+// Number is an arbitrary precision numerical value
type Number string
// Int64 returns the number as a string.
@@ -110,7 +110,7 @@ func (n Number) intOfBitSize(bitSize int) (int64, error) {
return strconv.ParseInt(string(n), 10, bitSize)
}
-// Uint64 returns the number as an uint64.
+// Uint64 returns the number as a uint64.
func (n Number) Uint64() (uint64, error) {
return n.uintOfBitSize(64)
}
diff --git a/vendor/github.com/aws/smithy-go/document/errors.go b/vendor/github.com/aws/smithy-go/document/errors.go
index f40168d..046a7a7 100644
--- a/vendor/github.com/aws/smithy-go/document/errors.go
+++ b/vendor/github.com/aws/smithy-go/document/errors.go
@@ -5,8 +5,8 @@ import (
"reflect"
)
-// UnmarshalTypeError is an error type representing aa error
-// unmarshalling a Smithy document to a Go value type. This is different
+// UnmarshalTypeError is an error type representing an error
+// unmarshaling a Smithy document to a Go value type. This is different
// from UnmarshalError in that it does not wrap an underlying error type.
type UnmarshalTypeError struct {
Value string
@@ -14,20 +14,20 @@ type UnmarshalTypeError struct {
}
// Error returns the string representation of the error.
-// satisfying the error interface
+// Satisfying the error interface.
func (e *UnmarshalTypeError) Error() string {
return fmt.Sprintf("unmarshal failed, cannot unmarshal %s into Go value type %s",
e.Value, e.Type.String())
}
// An InvalidUnmarshalError is an error type representing an invalid type
-// encountered while unmarshalling a Smithy document to a Go value type.
+// encountered while unmarshaling a Smithy document to a Go value type.
type InvalidUnmarshalError struct {
Type reflect.Type
}
// Error returns the string representation of the error.
-// satisfying the error interface
+// Satisfying the error interface.
func (e *InvalidUnmarshalError) Error() string {
var msg string
if e.Type == nil {
@@ -41,7 +41,7 @@ func (e *InvalidUnmarshalError) Error() string {
return fmt.Sprintf("unmarshal failed, %s", msg)
}
-// An UnmarshalError wraps an error that occurred while unmarshalling a
+// An UnmarshalError wraps an error that occurred while unmarshaling a
// Smithy document into a Go type. This is different from
// UnmarshalTypeError in that it wraps the underlying error that occurred.
type UnmarshalError struct {
@@ -50,13 +50,13 @@ type UnmarshalError struct {
Type reflect.Type
}
-// Unwrap returns the underlying unmarshalling error
+// Unwrap returns the underlying unmarshaling error
func (e *UnmarshalError) Unwrap() error {
return e.Err
}
-// Error returns the string representation of the error satisfying the error
-// interface.
+// Error returns the string representation of the error.
+// Satisfying the error interface.
func (e *UnmarshalError) Error() string {
return fmt.Sprintf("unmarshal failed, cannot unmarshal %q into %s, %v",
e.Value, e.Type.String(), e.Err)
@@ -69,7 +69,7 @@ type InvalidMarshalError struct {
}
// Error returns the string representation of the error.
-// satisfying the error interface
+// Satisfying the error interface.
func (e *InvalidMarshalError) Error() string {
return fmt.Sprintf("marshal failed, %s", e.Message)
}
diff --git a/vendor/github.com/aws/smithy-go/encoding/httpbinding/encode.go b/vendor/github.com/aws/smithy-go/encoding/httpbinding/encode.go
index 9b3eec4..96abd07 100644
--- a/vendor/github.com/aws/smithy-go/encoding/httpbinding/encode.go
+++ b/vendor/github.com/aws/smithy-go/encoding/httpbinding/encode.go
@@ -50,7 +50,7 @@ func NewEncoder(path, query string, headers http.Header) (*Encoder, error) {
// Due net/http requiring `Content-Length` to be specified on the http.Request#ContentLength directly. Encode
// will look for whether the header is present, and if so will remove it and set the respective value on http.Request.
//
-// Returns any error if one occurred during encoding.
+// Returns any error occurring during encoding.
func (e *Encoder) Encode(req *http.Request) (*http.Request, error) {
req.URL.Path, req.URL.RawPath = string(e.path), string(e.rawPath)
req.URL.RawQuery = e.query.Encode()
@@ -80,7 +80,7 @@ func (e *Encoder) SetHeader(key string) HeaderValue {
return newHeaderValue(e.header, key, false)
}
-// Headers returns a Header used encoding headers with the given prefix
+// Headers returns a Header used for encoding headers with the given prefix
func (e *Encoder) Headers(prefix string) Headers {
return Headers{
header: e.header,
@@ -110,7 +110,7 @@ func (e *Encoder) AddQuery(key string) QueryValue {
}
// HasQuery returns if a query with the key specified exists with one or
-// more value.
+// more values.
func (e *Encoder) HasQuery(key string) bool {
return len(e.query.Get(key)) != 0
}
diff --git a/vendor/github.com/aws/smithy-go/encoding/httpbinding/uri.go b/vendor/github.com/aws/smithy-go/encoding/httpbinding/uri.go
index 64e4012..f04e119 100644
--- a/vendor/github.com/aws/smithy-go/encoding/httpbinding/uri.go
+++ b/vendor/github.com/aws/smithy-go/encoding/httpbinding/uri.go
@@ -20,6 +20,9 @@ func newURIValue(path *[]byte, rawPath *[]byte, buffer *[]byte, key string) URIV
func (u URIValue) modifyURI(value string) (err error) {
*u.path, *u.buffer, err = replacePathElement(*u.path, *u.buffer, u.key, value, false)
+ if err != nil {
+ return err
+ }
*u.rawPath, *u.buffer, err = replacePathElement(*u.rawPath, *u.buffer, u.key, value, true)
return err
}
diff --git a/vendor/github.com/aws/smithy-go/encoding/json/array.go b/vendor/github.com/aws/smithy-go/encoding/json/array.go
index f740ca7..7a232f6 100644
--- a/vendor/github.com/aws/smithy-go/encoding/json/array.go
+++ b/vendor/github.com/aws/smithy-go/encoding/json/array.go
@@ -4,7 +4,7 @@ import (
"bytes"
)
-// Array represent the encoding of a JSON Array
+// Array represents the encoding of a JSON Array
type Array struct {
w *bytes.Buffer
writeComma bool
diff --git a/vendor/github.com/aws/smithy-go/encoding/json/decoder_util.go b/vendor/github.com/aws/smithy-go/encoding/json/decoder_util.go
index 5dce43e..7050c85 100644
--- a/vendor/github.com/aws/smithy-go/encoding/json/decoder_util.go
+++ b/vendor/github.com/aws/smithy-go/encoding/json/decoder_util.go
@@ -7,8 +7,8 @@ import (
"io"
)
-// DiscardUnknownField discards unknown fields from decoder body.
-// This function is useful while deserializing json body with additional
+// DiscardUnknownField discards unknown fields from a decoder body.
+// This function is useful while deserializing a JSON body with additional
// unknown information that should be discarded.
func DiscardUnknownField(decoder *json.Decoder) error {
// This deliberately does not share logic with CollectUnknownField, even
diff --git a/vendor/github.com/aws/smithy-go/errors.go b/vendor/github.com/aws/smithy-go/errors.go
index a397cf6..d6948d0 100644
--- a/vendor/github.com/aws/smithy-go/errors.go
+++ b/vendor/github.com/aws/smithy-go/errors.go
@@ -60,7 +60,7 @@ func (e *OperationError) Error() string {
return fmt.Sprintf("operation error %s: %s, %v", e.ServiceID, e.OperationName, e.Err)
}
-// DeserializationError provides a wrapper for and error that occurs during
+// DeserializationError provides a wrapper for an error that occurs during
// deserialization.
type DeserializationError struct {
Err error // original error
diff --git a/vendor/github.com/aws/smithy-go/go_module_metadata.go b/vendor/github.com/aws/smithy-go/go_module_metadata.go
index d26316a..5342422 100644
--- a/vendor/github.com/aws/smithy-go/go_module_metadata.go
+++ b/vendor/github.com/aws/smithy-go/go_module_metadata.go
@@ -3,4 +3,4 @@
package smithy
// goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.9.0"
+const goModuleVersion = "1.11.3"
diff --git a/vendor/github.com/aws/smithy-go/io/ringbuffer.go b/vendor/github.com/aws/smithy-go/io/ringbuffer.go
index 1ca1101..06b476a 100644
--- a/vendor/github.com/aws/smithy-go/io/ringbuffer.go
+++ b/vendor/github.com/aws/smithy-go/io/ringbuffer.go
@@ -24,7 +24,7 @@ func NewRingBuffer(slice []byte) *RingBuffer {
return &ringBuf
}
-// Write method inserts the elements in a byte slice, and returns the number of bytes written along with an error.
+// Write method inserts the elements in a byte slice, and returns the number of bytes written along with any error.
func (r *RingBuffer) Write(p []byte) (int, error) {
for _, b := range p {
// check if end points to invalid index, we need to circle back
@@ -49,7 +49,7 @@ func (r *RingBuffer) Write(p []byte) (int, error) {
}
// Read copies the data on the ring buffer into the byte slice provided to the method.
-// Returns the read count along with Error encountered while reading
+// Returns the read count along with any error encountered while reading.
func (r *RingBuffer) Read(p []byte) (int, error) {
// readCount keeps track of the number of bytes read
var readCount int
diff --git a/vendor/github.com/aws/smithy-go/logging/logger.go b/vendor/github.com/aws/smithy-go/logging/logger.go
index 70b3876..2071924 100644
--- a/vendor/github.com/aws/smithy-go/logging/logger.go
+++ b/vendor/github.com/aws/smithy-go/logging/logger.go
@@ -6,7 +6,7 @@ import (
"log"
)
-// Classification the log entry's classification name
+// Classification is the type of the log entry's classification name.
type Classification string
// Set of standard classifications that can be used by clients and middleware
diff --git a/vendor/github.com/aws/smithy-go/middleware/doc.go b/vendor/github.com/aws/smithy-go/middleware/doc.go
index c4bc958..9858928 100644
--- a/vendor/github.com/aws/smithy-go/middleware/doc.go
+++ b/vendor/github.com/aws/smithy-go/middleware/doc.go
@@ -1,4 +1,4 @@
-// Package middleware provide transport agnostic middleware for decorating SDK
+// Package middleware provides transport agnostic middleware for decorating SDK
// handlers.
//
// The Smithy middleware stack provides ordered behavior to be invoked on an
@@ -24,7 +24,7 @@
// order by the Stack. These steps represent fixed points in the middleware stack
// for organizing specific behavior, such as serialize and build. A Stack Step is
// composed of zero or more middleware that are specific to that step. A step may
-// define its on set of input/output parameters the generic input/output
+// define its own set of input/output parameters the generic input/output
// parameters are cast from. A step calls its middleware recursively, before
// calling the next step in the stack returning the result or error of the step
// middleware decorating the underlying handler.
@@ -39,7 +39,7 @@
// HTTP's Content-Length header, or body checksum). Decorations and
// modifications to the message should be copied to all message attempts.
//
-// * Finalize: Preforms final preparations needed before sending the message. The
+// * Finalize: Performs final preparations needed before sending the message. The
// message should already be complete by this stage, and is only alternated to
// meet the expectations of the recipient, (e.g. Retry and AWS SigV4 request
// signing).
@@ -51,8 +51,8 @@
// Adding Middleware to a Stack Step
//
// Middleware can be added to a step front or back, or relative, by name, to an
-// existing middleware in that stack. If a middleware does not have a name a
-// unique name will be generated at the middleware is added to the step.
+// existing middleware in that stack. If a middleware does not have a name, a
+// unique name will be generated at the middleware and be added to the step.
//
// // Create middleware stack
// stack := middleware.NewStack()
diff --git a/vendor/github.com/aws/smithy-go/middleware/metadata.go b/vendor/github.com/aws/smithy-go/middleware/metadata.go
index 2bff53c..7bb7dbc 100644
--- a/vendor/github.com/aws/smithy-go/middleware/metadata.go
+++ b/vendor/github.com/aws/smithy-go/middleware/metadata.go
@@ -42,7 +42,7 @@ func (m Metadata) Clone() Metadata {
// that key it will be replaced with the new value.
//
// Set method must be called as an addressable value, or pointer. If Set is not
-// called as a addressable value or pointer, the key value pair being set may
+// called as an addressable value or pointer, the key value pair being set may
// be lost.
//
// Panics if the key type is not comparable.
@@ -53,7 +53,7 @@ func (m *Metadata) Set(key, value interface{}) {
m.values[key] = value
}
-// Has returns if the key exists in the metadata.
+// Has returns whether the key exists in the metadata.
//
// Panics if the key type is not comparable.
func (m Metadata) Has(key interface{}) bool {
diff --git a/vendor/github.com/aws/smithy-go/middleware/ordered_group.go b/vendor/github.com/aws/smithy-go/middleware/ordered_group.go
index 144a7fa..4b19530 100644
--- a/vendor/github.com/aws/smithy-go/middleware/ordered_group.go
+++ b/vendor/github.com/aws/smithy-go/middleware/ordered_group.go
@@ -48,7 +48,7 @@ func (g *orderedIDs) Add(m ider, pos RelativePosition) error {
return nil
}
-// Insert injects the item relative to an existing item id. Return error if
+// Insert injects the item relative to an existing item id. Returns an error if
// the original item does not exist, or the item being added already exists.
func (g *orderedIDs) Insert(m ider, relativeTo string, pos RelativePosition) error {
if len(m.ID()) == 0 {
@@ -66,13 +66,13 @@ func (g *orderedIDs) Insert(m ider, relativeTo string, pos RelativePosition) err
return nil
}
-// Get returns the ider identified by id. If ider is not present, returns false
+// Get returns the ider identified by id. If ider is not present, returns false.
func (g *orderedIDs) Get(id string) (ider, bool) {
v, ok := g.items[id]
return v, ok
}
-// Swap removes the item by id, replacing it with the new item. Returns error
+// Swap removes the item by id, replacing it with the new item. Returns an error
// if the original item doesn't exist.
func (g *orderedIDs) Swap(id string, m ider) (ider, error) {
if len(id) == 0 {
@@ -96,7 +96,7 @@ func (g *orderedIDs) Swap(id string, m ider) (ider, error) {
return removed, nil
}
-// Remove removes the item by id. Returns error if the item
+// Remove removes the item by id. Returns an error if the item
// doesn't exist.
func (g *orderedIDs) Remove(id string) (ider, error) {
if len(id) == 0 {
@@ -147,7 +147,7 @@ func newRelativeOrder() *relativeOrder {
}
}
-// Add inserts a item into the order relative to the position provided.
+// Add inserts an item into the order relative to the position provided.
func (s *relativeOrder) Add(pos RelativePosition, ids ...string) error {
if len(ids) == 0 {
return nil
@@ -173,7 +173,7 @@ func (s *relativeOrder) Add(pos RelativePosition, ids ...string) error {
return nil
}
-// Insert injects a item before or after the relative item. Returns
+// Insert injects an item before or after the relative item. Returns
// an error if the relative item does not exist.
func (s *relativeOrder) Insert(relativeTo string, pos RelativePosition, ids ...string) error {
if len(ids) == 0 {
@@ -195,7 +195,7 @@ func (s *relativeOrder) Insert(relativeTo string, pos RelativePosition, ids ...s
}
// Swap will replace the item id with the to item. Returns an
-// error if the original item id does not exist. Allows swapping out a
+// error if the original item id does not exist. Allows swapping out an
// item for another item with the same id.
func (s *relativeOrder) Swap(id, to string) error {
i, ok := s.has(id)
diff --git a/vendor/github.com/aws/smithy-go/middleware/stack.go b/vendor/github.com/aws/smithy-go/middleware/stack.go
index ae3d82e..45ccb5b 100644
--- a/vendor/github.com/aws/smithy-go/middleware/stack.go
+++ b/vendor/github.com/aws/smithy-go/middleware/stack.go
@@ -7,7 +7,7 @@ import (
)
// Stack provides protocol and transport agnostic set of middleware split into
-// distinct steps. Steps have specific transitions between them, that is
+// distinct steps. Steps have specific transitions between them, that are
// managed by the individual step.
//
// Steps are composed as middleware around the underlying handler in the
@@ -15,7 +15,7 @@ import (
//
// Initialize -> Serialize -> Build -> Finalize -> Deserialize -> Handler
//
-// Any middleware within the chain may chose to stop and return an error or
+// Any middleware within the chain may choose to stop and return an error or
// response. Since the middleware decorate the handler like a call stack, each
// middleware will receive the result of the next middleware in the chain.
// Middleware that does not need to react to an input, or result must forward
@@ -23,7 +23,7 @@ import (
//
// Initialize <- Serialize -> Build -> Finalize <- Deserialize <- Handler
type Stack struct {
- // Initialize Prepares the input, and sets any default parameters as
+ // Initialize prepares the input, and sets any default parameters as
// needed, (e.g. idempotency token, and presigned URLs).
//
// Takes Input Parameters, and returns result or error.
@@ -31,7 +31,7 @@ type Stack struct {
// Receives result or error from Serialize step.
Initialize *InitializeStep
- // Serializes the prepared input into a data structure that can be consumed
+ // Serialize serializes the prepared input into a data structure that can be consumed
// by the target transport's message, (e.g. REST-JSON serialization)
//
// Converts Input Parameters into a Request, and returns the result or error.
@@ -39,7 +39,7 @@ type Stack struct {
// Receives result or error from Build step.
Serialize *SerializeStep
- // Adds additional metadata to the serialized transport message,
+ // Build adds additional metadata to the serialized transport message
// (e.g. HTTP's Content-Length header, or body checksum). Decorations and
// modifications to the message should be copied to all message attempts.
//
@@ -48,9 +48,9 @@ type Stack struct {
// Receives result or error from Finalize step.
Build *BuildStep
- // Preforms final preparations needed before sending the message. The
+ // Finalize performs final preparations needed before sending the message. The
// message should already be complete by this stage, and is only alternated
- // to meet the expectations of the recipient, (e.g. Retry and AWS SigV4
+ // to meet the expectations of the recipient (e.g. Retry and AWS SigV4
// request signing)
//
// Takes Request, and returns result or error.
@@ -58,7 +58,7 @@ type Stack struct {
// Receives result or error from Deserialize step.
Finalize *FinalizeStep
- // Reacts to the handler's response returned by the recipient of the request
+ // Deserialize reacts to the handler's response returned by the recipient of the request
// message. Deserializes the response into a structured type or error above
// stacks can react to.
//
diff --git a/vendor/github.com/aws/smithy-go/middleware/stack_values.go b/vendor/github.com/aws/smithy-go/middleware/stack_values.go
index 21b736a..ef96009 100644
--- a/vendor/github.com/aws/smithy-go/middleware/stack_values.go
+++ b/vendor/github.com/aws/smithy-go/middleware/stack_values.go
@@ -6,7 +6,7 @@ import (
"strings"
)
-// WithStackValue adds a key value pair to the context that are intended to be
+// WithStackValue adds a key value pair to the context that is intended to be
// scoped to a stack. Use ClearStackValues to get a new context with all stack
// values cleared.
func WithStackValue(ctx context.Context, key, value interface{}) context.Context {
diff --git a/vendor/github.com/aws/smithy-go/middleware/step_build.go b/vendor/github.com/aws/smithy-go/middleware/step_build.go
index b91e095..7e1d94c 100644
--- a/vendor/github.com/aws/smithy-go/middleware/step_build.go
+++ b/vendor/github.com/aws/smithy-go/middleware/step_build.go
@@ -70,12 +70,12 @@ func (s buildMiddlewareFunc) HandleBuild(ctx context.Context, in BuildInput, nex
var _ BuildMiddleware = (buildMiddlewareFunc{})
// BuildStep provides the ordered grouping of BuildMiddleware to be invoked on
-// an handler.
+// a handler.
type BuildStep struct {
ids *orderedIDs
}
-// NewBuildStep returns an BuildStep ready to have middleware for
+// NewBuildStep returns a BuildStep ready to have middleware for
// initialization added to it.
func NewBuildStep() *BuildStep {
return &BuildStep{
@@ -131,14 +131,14 @@ func (s *BuildStep) Add(m BuildMiddleware, pos RelativePosition) error {
}
// Insert injects the middleware relative to an existing middleware id.
-// Return error if the original middleware does not exist, or the middleware
+// Returns an error if the original middleware does not exist, or the middleware
// being added already exists.
func (s *BuildStep) Insert(m BuildMiddleware, relativeTo string, pos RelativePosition) error {
return s.ids.Insert(m, relativeTo, pos)
}
// Swap removes the middleware by id, replacing it with the new middleware.
-// Returns the middleware removed, or error if the middleware to be removed
+// Returns the middleware removed, or an error if the middleware to be removed
// doesn't exist.
func (s *BuildStep) Swap(id string, m BuildMiddleware) (BuildMiddleware, error) {
removed, err := s.ids.Swap(id, m)
diff --git a/vendor/github.com/aws/smithy-go/middleware/step_deserialize.go b/vendor/github.com/aws/smithy-go/middleware/step_deserialize.go
index 0d46e6b..4486072 100644
--- a/vendor/github.com/aws/smithy-go/middleware/step_deserialize.go
+++ b/vendor/github.com/aws/smithy-go/middleware/step_deserialize.go
@@ -12,7 +12,7 @@ type DeserializeInput struct {
}
// DeserializeOutput provides the result returned by the next
-// DeserializeHandler. The DeserializeMiddleware should deserailize the
+// DeserializeHandler. The DeserializeMiddleware should deserialize the
// RawResponse into a Result that can be consumed by middleware higher up in
// the stack.
type DeserializeOutput struct {
@@ -32,11 +32,11 @@ type DeserializeHandler interface {
// serialize step. Delegates to the next DeserializeHandler for further
// processing.
type DeserializeMiddleware interface {
- // Unique ID for the middleware in the DeserializeStep. The step does not
+ // ID returns a unique ID for the middleware in the DeserializeStep. The step does not
// allow duplicate IDs.
ID() string
- // Invokes the middleware behavior which must delegate to the next handler
+ // HandleDeserialize invokes the middleware behavior which must delegate to the next handler
// for the middleware chain to continue. The method must return a result or
// error to its caller.
HandleDeserialize(ctx context.Context, in DeserializeInput, next DeserializeHandler) (
@@ -76,12 +76,12 @@ func (s deserializeMiddlewareFunc) HandleDeserialize(ctx context.Context, in Des
var _ DeserializeMiddleware = (deserializeMiddlewareFunc{})
// DeserializeStep provides the ordered grouping of DeserializeMiddleware to be
-// invoked on an handler.
+// invoked on a handler.
type DeserializeStep struct {
ids *orderedIDs
}
-// NewDeserializeStep returns an DeserializeStep ready to have middleware for
+// NewDeserializeStep returns a DeserializeStep ready to have middleware for
// initialization added to it.
func NewDeserializeStep() *DeserializeStep {
return &DeserializeStep{
@@ -91,7 +91,7 @@ func NewDeserializeStep() *DeserializeStep {
var _ Middleware = (*DeserializeStep)(nil)
-// ID returns the unique id of the step as a middleware.
+// ID returns the unique ID of the step as a middleware.
func (s *DeserializeStep) ID() string {
return "Deserialize stack step"
}
@@ -136,8 +136,8 @@ func (s *DeserializeStep) Add(m DeserializeMiddleware, pos RelativePosition) err
return s.ids.Add(m, pos)
}
-// Insert injects the middleware relative to an existing middleware id.
-// Return error if the original middleware does not exist, or the middleware
+// Insert injects the middleware relative to an existing middleware ID.
+// Returns error if the original middleware does not exist, or the middleware
// being added already exists.
func (s *DeserializeStep) Insert(m DeserializeMiddleware, relativeTo string, pos RelativePosition) error {
return s.ids.Insert(m, relativeTo, pos)
@@ -182,7 +182,7 @@ type deserializeWrapHandler struct {
var _ DeserializeHandler = (*deserializeWrapHandler)(nil)
-// Implements DeserializeHandler, converts types and delegates to underlying
+// HandleDeserialize implements DeserializeHandler, converts types and delegates to underlying
// generic handler.
func (w deserializeWrapHandler) HandleDeserialize(ctx context.Context, in DeserializeInput) (
out DeserializeOutput, metadata Metadata, err error,
diff --git a/vendor/github.com/aws/smithy-go/middleware/step_finalize.go b/vendor/github.com/aws/smithy-go/middleware/step_finalize.go
index 88e79de..065e388 100644
--- a/vendor/github.com/aws/smithy-go/middleware/step_finalize.go
+++ b/vendor/github.com/aws/smithy-go/middleware/step_finalize.go
@@ -26,11 +26,11 @@ type FinalizeHandler interface {
// serialize step. Delegates to the next FinalizeHandler for further
// processing.
type FinalizeMiddleware interface {
- // Unique ID for the middleware in the FinalizeStep. The step does not
+ // ID returns a unique ID for the middleware in the FinalizeStep. The step does not
// allow duplicate IDs.
ID() string
- // Invokes the middleware behavior which must delegate to the next handler
+ // HandleFinalize invokes the middleware behavior which must delegate to the next handler
// for the middleware chain to continue. The method must return a result or
// error to its caller.
HandleFinalize(ctx context.Context, in FinalizeInput, next FinalizeHandler) (
@@ -70,12 +70,12 @@ func (s finalizeMiddlewareFunc) HandleFinalize(ctx context.Context, in FinalizeI
var _ FinalizeMiddleware = (finalizeMiddlewareFunc{})
// FinalizeStep provides the ordered grouping of FinalizeMiddleware to be
-// invoked on an handler.
+// invoked on a handler.
type FinalizeStep struct {
ids *orderedIDs
}
-// NewFinalizeStep returns an FinalizeStep ready to have middleware for
+// NewFinalizeStep returns a FinalizeStep ready to have middleware for
// initialization added to it.
func NewFinalizeStep() *FinalizeStep {
return &FinalizeStep{
@@ -130,8 +130,8 @@ func (s *FinalizeStep) Add(m FinalizeMiddleware, pos RelativePosition) error {
return s.ids.Add(m, pos)
}
-// Insert injects the middleware relative to an existing middleware id.
-// Return error if the original middleware does not exist, or the middleware
+// Insert injects the middleware relative to an existing middleware ID.
+// Returns error if the original middleware does not exist, or the middleware
// being added already exists.
func (s *FinalizeStep) Insert(m FinalizeMiddleware, relativeTo string, pos RelativePosition) error {
return s.ids.Insert(m, relativeTo, pos)
@@ -176,7 +176,7 @@ type finalizeWrapHandler struct {
var _ FinalizeHandler = (*finalizeWrapHandler)(nil)
-// Implements FinalizeHandler, converts types and delegates to underlying
+// HandleFinalize implements FinalizeHandler, converts types and delegates to underlying
// generic handler.
func (w finalizeWrapHandler) HandleFinalize(ctx context.Context, in FinalizeInput) (
out FinalizeOutput, metadata Metadata, err error,
diff --git a/vendor/github.com/aws/smithy-go/middleware/step_initialize.go b/vendor/github.com/aws/smithy-go/middleware/step_initialize.go
index 3980bce..fe35914 100644
--- a/vendor/github.com/aws/smithy-go/middleware/step_initialize.go
+++ b/vendor/github.com/aws/smithy-go/middleware/step_initialize.go
@@ -26,11 +26,11 @@ type InitializeHandler interface {
// initialize step. Delegates to the next InitializeHandler for further
// processing.
type InitializeMiddleware interface {
- // Unique ID for the middleware in the InitializeStep. The step does not
+ // ID returns a unique ID for the middleware in the InitializeStep. The step does not
// allow duplicate IDs.
ID() string
- // Invokes the middleware behavior which must delegate to the next handler
+ // HandleInitialize invokes the middleware behavior which must delegate to the next handler
// for the middleware chain to continue. The method must return a result or
// error to its caller.
HandleInitialize(ctx context.Context, in InitializeInput, next InitializeHandler) (
@@ -70,7 +70,7 @@ func (s initializeMiddlewareFunc) HandleInitialize(ctx context.Context, in Initi
var _ InitializeMiddleware = (initializeMiddlewareFunc{})
// InitializeStep provides the ordered grouping of InitializeMiddleware to be
-// invoked on an handler.
+// invoked on a handler.
type InitializeStep struct {
ids *orderedIDs
}
@@ -85,7 +85,7 @@ func NewInitializeStep() *InitializeStep {
var _ Middleware = (*InitializeStep)(nil)
-// ID returns the unique id of the step as a middleware.
+// ID returns the unique ID of the step as a middleware.
func (s *InitializeStep) ID() string {
return "Initialize stack step"
}
@@ -130,8 +130,8 @@ func (s *InitializeStep) Add(m InitializeMiddleware, pos RelativePosition) error
return s.ids.Add(m, pos)
}
-// Insert injects the middleware relative to an existing middleware id.
-// Return error if the original middleware does not exist, or the middleware
+// Insert injects the middleware relative to an existing middleware ID.
+// Returns error if the original middleware does not exist, or the middleware
// being added already exists.
func (s *InitializeStep) Insert(m InitializeMiddleware, relativeTo string, pos RelativePosition) error {
return s.ids.Insert(m, relativeTo, pos)
@@ -176,7 +176,7 @@ type initializeWrapHandler struct {
var _ InitializeHandler = (*initializeWrapHandler)(nil)
-// Implements InitializeHandler, converts types and delegates to underlying
+// HandleInitialize implements InitializeHandler, converts types and delegates to underlying
// generic handler.
func (w initializeWrapHandler) HandleInitialize(ctx context.Context, in InitializeInput) (
out InitializeOutput, metadata Metadata, err error,
diff --git a/vendor/github.com/aws/smithy-go/middleware/step_serialize.go b/vendor/github.com/aws/smithy-go/middleware/step_serialize.go
index 1e25bbc..114bafc 100644
--- a/vendor/github.com/aws/smithy-go/middleware/step_serialize.go
+++ b/vendor/github.com/aws/smithy-go/middleware/step_serialize.go
@@ -29,11 +29,11 @@ type SerializeHandler interface {
// serialize step. Delegates to the next SerializeHandler for further
// processing.
type SerializeMiddleware interface {
- // Unique ID for the middleware in the SerializeStep. The step does not
+ // ID returns a unique ID for the middleware in the SerializeStep. The step does not
// allow duplicate IDs.
ID() string
- // Invokes the middleware behavior which must delegate to the next handler
+ // HandleSerialize invokes the middleware behavior which must delegate to the next handler
// for the middleware chain to continue. The method must return a result or
// error to its caller.
HandleSerialize(ctx context.Context, in SerializeInput, next SerializeHandler) (
@@ -73,13 +73,13 @@ func (s serializeMiddlewareFunc) HandleSerialize(ctx context.Context, in Seriali
var _ SerializeMiddleware = (serializeMiddlewareFunc{})
// SerializeStep provides the ordered grouping of SerializeMiddleware to be
-// invoked on an handler.
+// invoked on a handler.
type SerializeStep struct {
newRequest func() interface{}
ids *orderedIDs
}
-// NewSerializeStep returns an SerializeStep ready to have middleware for
+// NewSerializeStep returns a SerializeStep ready to have middleware for
// initialization added to it. The newRequest func parameter is used to
// initialize the transport specific request for the stack SerializeStep to
// serialize the input parameters into.
@@ -92,7 +92,7 @@ func NewSerializeStep(newRequest func() interface{}) *SerializeStep {
var _ Middleware = (*SerializeStep)(nil)
-// ID returns the unique id of the step as a middleware.
+// ID returns the unique ID of the step as a middleware.
func (s *SerializeStep) ID() string {
return "Serialize stack step"
}
@@ -138,8 +138,8 @@ func (s *SerializeStep) Add(m SerializeMiddleware, pos RelativePosition) error {
return s.ids.Add(m, pos)
}
-// Insert injects the middleware relative to an existing middleware id.
-// Return error if the original middleware does not exist, or the middleware
+// Insert injects the middleware relative to an existing middleware ID.
+// Returns error if the original middleware does not exist, or the middleware
// being added already exists.
func (s *SerializeStep) Insert(m SerializeMiddleware, relativeTo string, pos RelativePosition) error {
return s.ids.Insert(m, relativeTo, pos)
diff --git a/vendor/github.com/aws/smithy-go/ptr/from_ptr.go b/vendor/github.com/aws/smithy-go/ptr/from_ptr.go
index 5d5a9b3..a2845bb 100644
--- a/vendor/github.com/aws/smithy-go/ptr/from_ptr.go
+++ b/vendor/github.com/aws/smithy-go/ptr/from_ptr.go
@@ -564,3 +564,38 @@ func ToTimeMap(vs map[string]*time.Time) map[string]time.Time {
return ps
}
+
+// ToDuration returns time.Duration value dereferenced if the passed
+// in pointer was not nil. Returns a time.Duration zero value if the
+// pointer was nil.
+func ToDuration(p *time.Duration) (v time.Duration) {
+ if p == nil {
+ return v
+ }
+
+ return *p
+}
+
+// ToDurationSlice returns a slice of time.Duration values, that are
+// dereferenced if the passed in pointer was not nil. Returns a time.Duration
+// zero value if the pointer was nil.
+func ToDurationSlice(vs []*time.Duration) []time.Duration {
+ ps := make([]time.Duration, len(vs))
+ for i, v := range vs {
+ ps[i] = ToDuration(v)
+ }
+
+ return ps
+}
+
+// ToDurationMap returns a map of time.Duration values, that are
+// dereferenced if the passed in pointer was not nil. The time.Duration
+// zero value is used if the pointer was nil.
+func ToDurationMap(vs map[string]*time.Duration) map[string]time.Duration {
+ ps := make(map[string]time.Duration, len(vs))
+ for k, v := range vs {
+ ps[k] = ToDuration(v)
+ }
+
+ return ps
+}
diff --git a/vendor/github.com/aws/smithy-go/ptr/gen_scalars.go b/vendor/github.com/aws/smithy-go/ptr/gen_scalars.go
index 0c5352c..97f0101 100644
--- a/vendor/github.com/aws/smithy-go/ptr/gen_scalars.go
+++ b/vendor/github.com/aws/smithy-go/ptr/gen_scalars.go
@@ -23,6 +23,7 @@ func GetScalars() Scalars {
{Type: "float32"},
{Type: "float64"},
{Type: "Time", Import: &Import{Path: "time"}},
+ {Type: "Duration", Import: &Import{Path: "time"}},
}
}
diff --git a/vendor/github.com/aws/smithy-go/ptr/to_ptr.go b/vendor/github.com/aws/smithy-go/ptr/to_ptr.go
index a57d130..0bfbbec 100644
--- a/vendor/github.com/aws/smithy-go/ptr/to_ptr.go
+++ b/vendor/github.com/aws/smithy-go/ptr/to_ptr.go
@@ -468,3 +468,32 @@ func TimeMap(vs map[string]time.Time) map[string]*time.Time {
return ps
}
+
+// Duration returns a pointer value for the time.Duration value passed in.
+func Duration(v time.Duration) *time.Duration {
+ return &v
+}
+
+// DurationSlice returns a slice of time.Duration pointers from the values
+// passed in.
+func DurationSlice(vs []time.Duration) []*time.Duration {
+ ps := make([]*time.Duration, len(vs))
+ for i, v := range vs {
+ vv := v
+ ps[i] = &vv
+ }
+
+ return ps
+}
+
+// DurationMap returns a map of time.Duration pointers from the values
+// passed in.
+func DurationMap(vs map[string]time.Duration) map[string]*time.Duration {
+ ps := make(map[string]*time.Duration, len(vs))
+ for k, v := range vs {
+ vv := v
+ ps[k] = &vv
+ }
+
+ return ps
+}
diff --git a/vendor/github.com/aws/smithy-go/rand/rand.go b/vendor/github.com/aws/smithy-go/rand/rand.go
index 4dc176d..9c479f6 100644
--- a/vendor/github.com/aws/smithy-go/rand/rand.go
+++ b/vendor/github.com/aws/smithy-go/rand/rand.go
@@ -25,7 +25,7 @@ func Int63n(reader io.Reader, max int64) (int64, error) {
}
// CryptoRandInt63n returns a random int64 between zero and value of max
-//obtained from the crypto rand source.
+// obtained from the crypto rand source.
func CryptoRandInt63n(max int64) (int64, error) {
return Int63n(Reader, max)
}
diff --git a/vendor/github.com/aws/smithy-go/sync/error.go b/vendor/github.com/aws/smithy-go/sync/error.go
index 247ac64..6292076 100644
--- a/vendor/github.com/aws/smithy-go/sync/error.go
+++ b/vendor/github.com/aws/smithy-go/sync/error.go
@@ -51,4 +51,3 @@ func (e *OnceErr) SetError(err error) {
func (e *OnceErr) ErrorSet() <-chan struct{} {
return e.ch
}
-
diff --git a/vendor/github.com/aws/smithy-go/time/time.go b/vendor/github.com/aws/smithy-go/time/time.go
index a9634ba..b552a09 100644
--- a/vendor/github.com/aws/smithy-go/time/time.go
+++ b/vendor/github.com/aws/smithy-go/time/time.go
@@ -24,14 +24,14 @@ const (
var millisecondFloat = big.NewFloat(1e3)
-// FormatDateTime format value as a date-time, (RFC3339 section 5.6)
+// FormatDateTime formats value as a date-time, (RFC3339 section 5.6)
//
// Example: 1985-04-12T23:20:50.52Z
func FormatDateTime(value time.Time) string {
return value.UTC().Format(dateTimeFormatOutput)
}
-// ParseDateTime parse a string as a date-time, (RFC3339 section 5.6)
+// ParseDateTime parses a string as a date-time, (RFC3339 section 5.6)
//
// Example: 1985-04-12T23:20:50.52Z
func ParseDateTime(value string) (time.Time, error) {
@@ -43,14 +43,14 @@ func ParseDateTime(value string) (time.Time, error) {
)
}
-// FormatHTTPDate format value as a http-date, (RFC 7231#section-7.1.1.1 IMF-fixdate)
+// FormatHTTPDate formats value as a http-date, (RFC 7231#section-7.1.1.1 IMF-fixdate)
//
// Example: Tue, 29 Apr 2014 18:30:38 GMT
func FormatHTTPDate(value time.Time) string {
return value.UTC().Format(httpDateFormat)
}
-// ParseHTTPDate parse a string as a http-date, (RFC 7231#section-7.1.1.1 IMF-fixdate)
+// ParseHTTPDate parses a string as a http-date, (RFC 7231#section-7.1.1.1 IMF-fixdate)
//
// Example: Tue, 29 Apr 2014 18:30:38 GMT
func ParseHTTPDate(value string) (time.Time, error) {
@@ -116,8 +116,8 @@ type parseError struct {
Err error
}
-// SleepWithContext will wait for the timer duration to expire, or the context
-// is canceled. Which ever happens first. If the context is canceled the
+// SleepWithContext will wait for the timer duration to expire, or until the context
+// is canceled. Whichever happens first. If the context is canceled the
// Context's error will be returned.
func SleepWithContext(ctx context.Context, dur time.Duration) error {
t := time.NewTimer(dur)
diff --git a/vendor/github.com/aws/smithy-go/transport/http/checksum_middleware.go b/vendor/github.com/aws/smithy-go/transport/http/checksum_middleware.go
index 7b1cd56..bc4ad6e 100644
--- a/vendor/github.com/aws/smithy-go/transport/http/checksum_middleware.go
+++ b/vendor/github.com/aws/smithy-go/transport/http/checksum_middleware.go
@@ -21,7 +21,7 @@ func AddContentChecksumMiddleware(stack *middleware.Stack) error {
return stack.Build.Add(&contentMD5Checksum{}, middleware.Before)
}
-// ID the identifier for the checksum middleware
+// ID returns the identifier for the checksum middleware
func (m *contentMD5Checksum) ID() string { return "ContentChecksum" }
// HandleBuild adds behavior to compute md5 checksum and add content-md5 header
@@ -45,6 +45,11 @@ func (m *contentMD5Checksum) HandleBuild(
stream := req.GetStream()
// compute checksum if payload is explicit
if stream != nil {
+ if !req.IsStreamSeekable() {
+ return out, metadata, fmt.Errorf(
+ "unseekable stream is not supported for computing md5 checksum")
+ }
+
v, err := computeMD5Checksum(stream)
if err != nil {
return out, metadata, fmt.Errorf("error computing md5 checksum, %w", err)
diff --git a/vendor/github.com/aws/smithy-go/transport/http/client.go b/vendor/github.com/aws/smithy-go/transport/http/client.go
index 55b5a95..e691c69 100644
--- a/vendor/github.com/aws/smithy-go/transport/http/client.go
+++ b/vendor/github.com/aws/smithy-go/transport/http/client.go
@@ -14,7 +14,7 @@ type ClientDo interface {
Do(*http.Request) (*http.Response, error)
}
-// ClientDoFunc provides a helper to wrap an function as an HTTP client for
+// ClientDoFunc provides a helper to wrap a function as an HTTP client for
// round tripping requests.
type ClientDoFunc func(*http.Request) (*http.Response, error)
@@ -37,7 +37,7 @@ func NewClientHandler(client ClientDo) ClientHandler {
}
// Handle implements the middleware Handler interface, that will invoke the
-// underlying HTTP client. Requires the input to be an Smithy *Request. Returns
+// underlying HTTP client. Requires the input to be a Smithy *Request. Returns
// a smithy *Response, or error if the request failed.
func (c ClientHandler) Handle(ctx context.Context, input interface{}) (
out interface{}, metadata middleware.Metadata, err error,
@@ -91,7 +91,7 @@ type RequestSendError struct {
Err error
}
-// ConnectionError return that the error is related to not being able to send
+// ConnectionError returns that the error is related to not being able to send
// the request, or receive a response from the service.
func (e *RequestSendError) ConnectionError() bool {
return true
@@ -106,7 +106,7 @@ func (e *RequestSendError) Error() string {
return fmt.Sprintf("request send failed, %v", e.Err)
}
-// NopClient provides a client that ignores the request, and returns a empty
+// NopClient provides a client that ignores the request, and returns an empty
// successful HTTP response value.
type NopClient struct{}
diff --git a/vendor/github.com/aws/smithy-go/transport/http/headerlist.go b/vendor/github.com/aws/smithy-go/transport/http/headerlist.go
index e232211..cbc9deb 100644
--- a/vendor/github.com/aws/smithy-go/transport/http/headerlist.go
+++ b/vendor/github.com/aws/smithy-go/transport/http/headerlist.go
@@ -2,53 +2,125 @@ package http
import (
"fmt"
+ "strconv"
"strings"
+ "unicode"
)
func splitHeaderListValues(vs []string, splitFn func(string) ([]string, error)) ([]string, error) {
- for i := 0; i < len(vs); i++ {
- if len(vs[i]) == 0 {
- continue
- }
+ values := make([]string, 0, len(vs))
+ for i := 0; i < len(vs); i++ {
parts, err := splitFn(vs[i])
if err != nil {
return nil, err
}
- if len(parts) < 2 {
- continue
- }
-
- tmp := make([]string, len(vs)+len(parts)-1)
- copy(tmp, vs[:i])
-
- for j, p := range parts {
- tmp[i+j] = strings.TrimSpace(p)
- }
-
- copy(tmp[i+len(parts):], vs[i+1:])
-
- vs = tmp
- i += len(parts) - 1
+ values = append(values, parts...)
}
- return vs, nil
+ return values, nil
}
// SplitHeaderListValues attempts to split the elements of the slice by commas,
// and return a list of all values separated. Returns error if unable to
// separate the values.
func SplitHeaderListValues(vs []string) ([]string, error) {
- return splitHeaderListValues(vs, commaSplit)
+ return splitHeaderListValues(vs, quotedCommaSplit)
}
-func commaSplit(v string) ([]string, error) {
- return strings.Split(v, ","), nil
+func quotedCommaSplit(v string) (parts []string, err error) {
+ v = strings.TrimSpace(v)
+
+ expectMore := true
+ for i := 0; i < len(v); i++ {
+ if unicode.IsSpace(rune(v[i])) {
+ continue
+ }
+ expectMore = false
+
+ // leading space in part is ignored.
+ // Start of value must be non-space, or quote.
+ //
+ // - If quote, enter quoted mode, find next non-escaped quote to
+ // terminate the value.
+ // - Otherwise, find next comma to terminate value.
+
+ remaining := v[i:]
+
+ var value string
+ var valueLen int
+ if remaining[0] == '"' {
+ //------------------------------
+ // Quoted value
+ //------------------------------
+ var j int
+ var skipQuote bool
+ for j += 1; j < len(remaining); j++ {
+ if remaining[j] == '\\' || (remaining[j] != '\\' && skipQuote) {
+ skipQuote = !skipQuote
+ continue
+ }
+ if remaining[j] == '"' {
+ break
+ }
+ }
+ if j == len(remaining) || j == 1 {
+ return nil, fmt.Errorf("value %v missing closing double quote",
+ remaining)
+ }
+ valueLen = j + 1
+
+ tail := remaining[valueLen:]
+ var k int
+ for ; k < len(tail); k++ {
+ if !unicode.IsSpace(rune(tail[k])) && tail[k] != ',' {
+ return nil, fmt.Errorf("value %v has non-space trailing characters",
+ remaining)
+ }
+ if tail[k] == ',' {
+ expectMore = true
+ break
+ }
+ }
+ value = remaining[:valueLen]
+ value, err = strconv.Unquote(value)
+ if err != nil {
+ return nil, fmt.Errorf("failed to unquote value %v, %w", value, err)
+ }
+
+ // Pad valueLen to include trailing space(s) so `i` is updated correctly.
+ valueLen += k
+
+ } else {
+ //------------------------------
+ // Unquoted value
+ //------------------------------
+
+ // Index of the next comma is the length of the value, or end of string.
+ valueLen = strings.Index(remaining, ",")
+ if valueLen != -1 {
+ expectMore = true
+ } else {
+ valueLen = len(remaining)
+ }
+ value = strings.TrimSpace(remaining[:valueLen])
+ }
+
+ i += valueLen
+ parts = append(parts, value)
+
+ }
+
+ if expectMore {
+ parts = append(parts, "")
+ }
+
+ return parts, nil
}
// SplitHTTPDateTimestampHeaderListValues attempts to split the HTTP-Date
// timestamp values in the slice by commas, and return a list of all values
-// separated. The split is aware of HTTP-Date timestamp format, and will skip
+// separated. The split is aware of the HTTP-Date timestamp format, and will skip
// comma within the timestamp value. Returns an error if unable to split the
// timestamp values.
func SplitHTTPDateTimestampHeaderListValues(vs []string) ([]string, error) {
@@ -56,10 +128,10 @@ func SplitHTTPDateTimestampHeaderListValues(vs []string) ([]string, error) {
}
func splitHTTPDateHeaderValue(v string) ([]string, error) {
- if n := strings.Count(v, ","); n == 1 {
- // Skip values with only a single HTTPDate value
- return nil, nil
- } else if n == 0 || n%2 == 0 {
+ if n := strings.Count(v, ","); n <= 1 {
+ // Nothing to do if only contains a no, or single HTTPDate value
+ return []string{v}, nil
+ } else if n%2 == 0 {
return nil, fmt.Errorf("invalid timestamp HTTPDate header comma separations, %q", v)
}
@@ -71,7 +143,7 @@ func splitHTTPDateHeaderValue(v string) ([]string, error) {
if v[i] == ',' {
if doSplit {
doSplit = false
- parts = append(parts, v[j:i])
+ parts = append(parts, strings.TrimSpace(v[j:i]))
j = i + 1
} else {
// Skip the first comma in the timestamp value since that
@@ -82,8 +154,9 @@ func splitHTTPDateHeaderValue(v string) ([]string, error) {
}
}
}
+ // Add final part
if j < len(v) {
- parts = append(parts, v[j:])
+ parts = append(parts, strings.TrimSpace(v[j:]))
}
return parts, nil
diff --git a/vendor/github.com/aws/smithy-go/transport/http/host.go b/vendor/github.com/aws/smithy-go/transport/http/host.go
index cbfbed5..6b290fe 100644
--- a/vendor/github.com/aws/smithy-go/transport/http/host.go
+++ b/vendor/github.com/aws/smithy-go/transport/http/host.go
@@ -56,7 +56,7 @@ func ValidateEndpointHost(host string) error {
return nil
}
-// ValidPortNumber return if the port is valid RFC 3986 port
+// ValidPortNumber returns whether the port is valid RFC 3986 port.
func ValidPortNumber(port string) bool {
i, err := strconv.Atoi(port)
if err != nil {
@@ -69,7 +69,7 @@ func ValidPortNumber(port string) bool {
return true
}
-// ValidHostLabel returns if the label is a valid RFC 3986 host label.
+// ValidHostLabel returns whether the label is a valid RFC 3986 host abel.
func ValidHostLabel(label string) bool {
if l := len(label); l == 0 || l > 63 {
return false
diff --git a/vendor/github.com/aws/smithy-go/transport/http/md5_checksum.go b/vendor/github.com/aws/smithy-go/transport/http/md5_checksum.go
index 8e4acb8..5d6a4b2 100644
--- a/vendor/github.com/aws/smithy-go/transport/http/md5_checksum.go
+++ b/vendor/github.com/aws/smithy-go/transport/http/md5_checksum.go
@@ -7,7 +7,7 @@ import (
"io"
)
-// computeMD5Checksum computes base64 md5 checksum of an io.Reader contents.
+// computeMD5Checksum computes base64 md5 checksum of an io.Reader's contents.
// Returns the byte slice of md5 checksum and an error.
func computeMD5Checksum(r io.Reader) ([]byte, error) {
h := md5.New()
diff --git a/vendor/github.com/aws/smithy-go/transport/http/middleware_content_length.go b/vendor/github.com/aws/smithy-go/transport/http/middleware_content_length.go
index a566876..9969389 100644
--- a/vendor/github.com/aws/smithy-go/transport/http/middleware_content_length.go
+++ b/vendor/github.com/aws/smithy-go/transport/http/middleware_content_length.go
@@ -18,7 +18,7 @@ func AddComputeContentLengthMiddleware(stack *middleware.Stack) error {
return stack.Build.Add(&ComputeContentLength{}, middleware.After)
}
-// ID the identifier for the ComputeContentLength
+// ID returns the identifier for the ComputeContentLength.
func (m *ComputeContentLength) ID() string { return "ComputeContentLength" }
// HandleBuild adds the length of the serialized request to the HTTP header
@@ -44,12 +44,6 @@ func (m *ComputeContentLength) HandleBuild(
"failed getting length of request stream, %w", err)
} else if ok {
req.ContentLength = n
- if n == 0 {
- // If the content length could be determined, and the body is empty
- // the stream must be cleared to prevent unexpected chunk encoding.
- req, _ = req.SetStream(nil)
- in.Request = req
- }
}
return next.HandleBuild(ctx, in)
@@ -65,7 +59,7 @@ func ValidateContentLengthHeader(stack *middleware.Stack) error {
return stack.Build.Add(&validateContentLength{}, middleware.After)
}
-// ID the identifier for the ComputeContentLength
+// ID returns the identifier for the ComputeContentLength.
func (m *validateContentLength) ID() string { return "ValidateContentLength" }
// HandleBuild adds the length of the serialized request to the HTTP header
diff --git a/vendor/github.com/aws/smithy-go/transport/http/middleware_metadata.go b/vendor/github.com/aws/smithy-go/transport/http/middleware_metadata.go
index 443ecec..d6079b2 100644
--- a/vendor/github.com/aws/smithy-go/transport/http/middleware_metadata.go
+++ b/vendor/github.com/aws/smithy-go/transport/http/middleware_metadata.go
@@ -11,7 +11,7 @@ type (
hostPrefixDisableKey struct{}
)
-// GetHostnameImmutable retrieves if the endpoint hostname should be considered
+// GetHostnameImmutable retrieves whether the endpoint hostname should be considered
// immutable or not.
//
// Scoped to stack values. Use middleware#ClearStackValues to clear all stack
@@ -21,7 +21,7 @@ func GetHostnameImmutable(ctx context.Context) (v bool) {
return v
}
-// SetHostnameImmutable sets or modifies if the request's endpoint hostname
+// SetHostnameImmutable sets or modifies whether the request's endpoint hostname
// should be considered immutable or not.
//
// Scoped to stack values. Use middleware#ClearStackValues to clear all stack
@@ -30,7 +30,7 @@ func SetHostnameImmutable(ctx context.Context, value bool) context.Context {
return middleware.WithStackValue(ctx, hostnameImmutableKey{}, value)
}
-// IsEndpointHostPrefixDisabled retrieves if the hostname prefixing is
+// IsEndpointHostPrefixDisabled retrieves whether the hostname prefixing is
// disabled.
//
// Scoped to stack values. Use middleware#ClearStackValues to clear all stack
@@ -40,8 +40,8 @@ func IsEndpointHostPrefixDisabled(ctx context.Context) (v bool) {
return v
}
-// DisableEndpointHostPrefix sets or modifies if the request's endpoint host
-// prefixing to be disabled. If value is set to true, endpoint host prefixing
+// DisableEndpointHostPrefix sets or modifies whether the request's endpoint host
+// prefixing should be disabled. If value is true, endpoint host prefixing
// will be disabled.
//
// Scoped to stack values. Use middleware#ClearStackValues to clear all stack
diff --git a/vendor/github.com/aws/smithy-go/transport/http/request.go b/vendor/github.com/aws/smithy-go/transport/http/request.go
index 6edc2de..ffac684 100644
--- a/vendor/github.com/aws/smithy-go/transport/http/request.go
+++ b/vendor/github.com/aws/smithy-go/transport/http/request.go
@@ -20,7 +20,7 @@ type Request struct {
streamStartPos int64
}
-// NewStackRequest returns an initialized request ready to populated with the
+// NewStackRequest returns an initialized request ready to be populated with the
// HTTP request details. Returns empty interface so the function can be used as
// a parameter to the Smithy middleware Stack constructor.
func NewStackRequest() interface{} {
@@ -45,19 +45,23 @@ func (r *Request) Clone() *Request {
// to the request and ok set. If the length cannot be determined, an error will
// be returned.
func (r *Request) StreamLength() (size int64, ok bool, err error) {
- if r.stream == nil {
+ return streamLength(r.stream, r.isStreamSeekable, r.streamStartPos)
+}
+
+func streamLength(stream io.Reader, seekable bool, startPos int64) (size int64, ok bool, err error) {
+ if stream == nil {
return 0, true, nil
}
- if l, ok := r.stream.(interface{ Len() int }); ok {
+ if l, ok := stream.(interface{ Len() int }); ok {
return int64(l.Len()), true, nil
}
- if !r.isStreamSeekable {
+ if !seekable {
return 0, false, nil
}
- s := r.stream.(io.Seeker)
+ s := stream.(io.Seeker)
endOffset, err := s.Seek(0, io.SeekEnd)
if err != nil {
return 0, false, err
@@ -69,12 +73,12 @@ func (r *Request) StreamLength() (size int64, ok bool, err error) {
// file, and wants to skip the first N bytes uploading the rest. The
// application would move the file's offset N bytes, then hand it off to
// the SDK to send the remaining. The SDK should respect that initial offset.
- _, err = s.Seek(r.streamStartPos, io.SeekStart)
+ _, err = s.Seek(startPos, io.SeekStart)
if err != nil {
return 0, false, err
}
- return endOffset - r.streamStartPos, true, nil
+ return endOffset - startPos, true, nil
}
// RewindStream will rewind the io.Reader to the relative start position if it
@@ -98,28 +102,46 @@ func (r *Request) GetStream() io.Reader {
return r.stream
}
-// IsStreamSeekable returns if the stream is seekable.
+// IsStreamSeekable returns whether the stream is seekable.
func (r *Request) IsStreamSeekable() bool {
return r.isStreamSeekable
}
-// SetStream returns a clone of the request with the stream set to the provided reader.
-// May return an error if the provided reader is seekable but returns an error.
+// SetStream returns a clone of the request with the stream set to the provided
+// reader. May return an error if the provided reader is seekable but returns
+// an error.
func (r *Request) SetStream(reader io.Reader) (rc *Request, err error) {
rc = r.Clone()
+ if reader == http.NoBody {
+ reader = nil
+ }
+
+ var isStreamSeekable bool
+ var streamStartPos int64
switch v := reader.(type) {
case io.Seeker:
n, err := v.Seek(0, io.SeekCurrent)
if err != nil {
return r, err
}
- rc.isStreamSeekable = true
- rc.streamStartPos = n
+ isStreamSeekable = true
+ streamStartPos = n
default:
- rc.isStreamSeekable = false
+ // If the stream length can be determined, and is determined to be empty,
+ // use a nil stream to prevent confusion between empty vs not-empty
+ // streams.
+ length, ok, err := streamLength(reader, false, 0)
+ if err != nil {
+ return nil, err
+ } else if ok && length == 0 {
+ reader = nil
+ }
}
+
rc.stream = reader
+ rc.isStreamSeekable = isStreamSeekable
+ rc.streamStartPos = streamStartPos
return rc, err
}
@@ -139,7 +161,11 @@ func (r *Request) Build(ctx context.Context) *http.Request {
req.Body = ioutil.NopCloser(stream)
req.ContentLength = -1
default:
- if r.stream != nil {
+ // HTTP Client Request must only have a non-nil body if the
+ // ContentLength is explicitly unknown (-1) or non-zero. The HTTP
+ // Client will interpret a non-nil body and ContentLength 0 as
+ // "unknown". This is unwanted behavior.
+ if req.ContentLength != 0 && r.stream != nil {
req.Body = iointernal.NewSafeReadCloser(ioutil.NopCloser(stream))
}
}
@@ -148,7 +174,7 @@ func (r *Request) Build(ctx context.Context) *http.Request {
}
// RequestCloner is a function that can take an input request type and clone the request
-// for use in a subsequent retry attempt
+// for use in a subsequent retry attempt.
func RequestCloner(v interface{}) interface{} {
return v.(*Request).Clone()
}
diff --git a/vendor/github.com/aws/smithy-go/transport/http/response.go b/vendor/github.com/aws/smithy-go/transport/http/response.go
index 7c65fa3..0c13bfc 100644
--- a/vendor/github.com/aws/smithy-go/transport/http/response.go
+++ b/vendor/github.com/aws/smithy-go/transport/http/response.go
@@ -18,7 +18,7 @@ type ResponseError struct {
Err error
}
-// HttpStatusCode returns the HTTP response status code received from the service
+// HTTPStatusCode returns the HTTP response status code received from the service.
func (e *ResponseError) HTTPStatusCode() int { return e.Response.StatusCode }
// HTTPResponse returns the HTTP response received from the service.
diff --git a/vendor/github.com/aws/smithy-go/waiter/logger.go b/vendor/github.com/aws/smithy-go/waiter/logger.go
index 064ecaf..8d70a03 100644
--- a/vendor/github.com/aws/smithy-go/waiter/logger.go
+++ b/vendor/github.com/aws/smithy-go/waiter/logger.go
@@ -30,7 +30,7 @@ func (m *Logger) HandleInitialize(ctx context.Context, in middleware.InitializeI
return next.HandleInitialize(ctx, in)
}
-// AddLogger is helper util to add waiter logger after `SetLogger` middleware in
+// AddLogger is a helper util to add waiter logger after `SetLogger` middleware in
func (m Logger) AddLogger(stack *middleware.Stack) error {
return stack.Initialize.Insert(&m, "SetLogger", middleware.After)
}
diff --git a/vendor/github.com/cyrilix/robocar-base/cli/cli.go b/vendor/github.com/cyrilix/robocar-base/cli/cli.go
index 7824862..08e47a6 100644
--- a/vendor/github.com/cyrilix/robocar-base/cli/cli.go
+++ b/vendor/github.com/cyrilix/robocar-base/cli/cli.go
@@ -5,7 +5,7 @@ import (
"fmt"
"github.com/cyrilix/robocar-base/service"
MQTT "github.com/eclipse/paho.mqtt.golang"
- "log"
+ "go.uber.org/zap"
"os"
"os/signal"
"strconv"
@@ -25,7 +25,7 @@ func SetIntDefaultValueFromEnv(value *int, key string, defaultValue int) error {
sVal = os.Getenv(key)
val, err := strconv.Atoi(sVal)
if err != nil {
- log.Printf("unable to convert string to int: %v", err)
+ zap.S().Errorf("unable to convert string to int: %v", err)
return err
}
*value = val
@@ -40,7 +40,7 @@ func SetFloat64DefaultValueFromEnv(value *float64, key string, defaultValue floa
sVal = os.Getenv(key)
val, err := strconv.ParseFloat(sVal, 64)
if err != nil {
- log.Printf("unable to convert string to float: %v", err)
+ zap.S().Errorf("unable to convert string to float: %v", err)
return err
}
*value = val
@@ -81,7 +81,7 @@ func InitIntFlag(key string, defValue int) int {
var value int
err := SetIntDefaultValueFromEnv(&value, key, defValue)
if err != nil {
- log.Panicf("invalid int value: %v", err)
+ zap.S().Panicf("invalid int value: %v", err)
}
return value
}
@@ -90,7 +90,7 @@ func InitFloat64Flag(key string, defValue float64) float64 {
var value float64
err := SetFloat64DefaultValueFromEnv(&value, key, defValue)
if err != nil {
- log.Panicf("invalid value: %v", err)
+ zap.S().Panicf("invalid value: %v", err)
}
return value
}
@@ -106,8 +106,8 @@ func Connect(uri, username, password, clientId string) (MQTT.Client, error) {
opts.SetDefaultPublishHandler(
//define a function for the default message handler
func(client MQTT.Client, msg MQTT.Message) {
- fmt.Printf("TOPIC: %s\n", msg.Topic())
- fmt.Printf("MSG: %s\n", msg.Payload())
+ zap.S().Infof("TOPIC: %s", msg.Topic())
+ zap.S().Infof("MSG: %s", msg.Payload())
})
//create and start a client using the above ClientOptions
diff --git a/vendor/github.com/cyrilix/robocar-base/service/part.go b/vendor/github.com/cyrilix/robocar-base/service/part.go
index 4a79869..3487362 100644
--- a/vendor/github.com/cyrilix/robocar-base/service/part.go
+++ b/vendor/github.com/cyrilix/robocar-base/service/part.go
@@ -3,21 +3,21 @@ package service
import (
"fmt"
mqtt "github.com/eclipse/paho.mqtt.golang"
- "log"
+ "go.uber.org/zap"
)
func StopService(name string, client mqtt.Client, topics ...string) {
- log.Printf("Stop %s service", name)
+ zap.S().Infof("Stop %s service", name)
token := client.Unsubscribe(topics...)
token.Wait()
if token.Error() != nil {
- log.Printf("unable to unsubscribe service: %v", token.Error())
+ zap.S().Errorf("unable to unsubscribe service: %v", token.Error())
}
client.Disconnect(50)
}
func RegisterCallback(client mqtt.Client, topic string, callback mqtt.MessageHandler) error {
- log.Printf("Register callback on topic %v", topic)
+ zap.S().Infof("Register callback on topic %v", topic)
token := client.Subscribe(topic, 0, callback)
token.Wait()
if token.Error() != nil {
diff --git a/vendor/github.com/cyrilix/robocar-protobuf/go/events/events.pb.go b/vendor/github.com/cyrilix/robocar-protobuf/go/events/events.pb.go
index b5e1bb2..7e53812 100644
--- a/vendor/github.com/cyrilix/robocar-protobuf/go/events/events.pb.go
+++ b/vendor/github.com/cyrilix/robocar-protobuf/go/events/events.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.26.0
+// protoc-gen-go v1.27.1
// protoc v3.12.4
// source: events/events.proto
diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/DISTRIBUTION b/vendor/github.com/eclipse/paho.mqtt.golang/DISTRIBUTION
deleted file mode 100644
index 34e4973..0000000
--- a/vendor/github.com/eclipse/paho.mqtt.golang/DISTRIBUTION
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-Eclipse Distribution License - v 1.0
-
-Copyright (c) 2007, Eclipse Foundation, Inc. and its licensors.
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of the Eclipse Foundation, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/LICENSE b/vendor/github.com/eclipse/paho.mqtt.golang/LICENSE
index 9b9a9eb..f55c395 100644
--- a/vendor/github.com/eclipse/paho.mqtt.golang/LICENSE
+++ b/vendor/github.com/eclipse/paho.mqtt.golang/LICENSE
@@ -1,20 +1,294 @@
-This project is dual licensed under the Eclipse Public License 1.0 and the
-Eclipse Distribution License 1.0 as described in the epl-v10 and edl-v10 files.
+Eclipse Public License - v 2.0 (EPL-2.0)
-The EDL is copied below in order to pass the pkg.go.dev license check (https://pkg.go.dev/license-policy).
+This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v2.0
+and Eclipse Distribution License v1.0 which accompany this distribution.
+
+The Eclipse Public License is available at
+ https://www.eclipse.org/legal/epl-2.0/
+and the Eclipse Distribution License is available at
+ http://www.eclipse.org/org/documents/edl-v10.php.
+
+For an explanation of what dual-licensing means to you, see:
+https://www.eclipse.org/legal/eplfaq.php#DUALLIC
****
-Eclipse Distribution License - v 1.0
+The epl-2.0 is copied below in order to pass the pkg.go.dev license check (https://pkg.go.dev/license-policy).
+****
+Eclipse Public License - v 2.0
-Copyright (c) 2007, Eclipse Foundation, Inc. and its licensors.
+ THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+ PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
+ OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-All rights reserved.
+1. DEFINITIONS
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+"Contribution" means:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of the Eclipse Foundation, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+ a) in the case of the initial Contributor, the initial content
+ Distributed under this Agreement, and
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ b) in the case of each subsequent Contributor:
+ i) changes to the Program, and
+ ii) additions to the Program;
+ where such changes and/or additions to the Program originate from
+ and are Distributed by that particular Contributor. A Contribution
+ "originates" from a Contributor if it was added to the Program by
+ such Contributor itself or anyone acting on such Contributor's behalf.
+ Contributions do not include changes or additions to the Program that
+ are not Modified Works.
+"Contributor" means any person or entity that Distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which
+are necessarily infringed by the use or sale of its Contribution alone
+or when combined with the Program.
+
+"Program" means the Contributions Distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement
+or any Secondary License (as applicable), including Contributors.
+
+"Derivative Works" shall mean any work, whether in Source Code or other
+form, that is based on (or derived from) the Program and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship.
+
+"Modified Works" shall mean any work in Source Code or other form that
+results from an addition to, deletion from, or modification of the
+contents of the Program, including, for purposes of clarity any new file
+in Source Code form that contains any contents of the Program. Modified
+Works shall not include works that contain only declarations,
+interfaces, types, classes, structures, or files of the Program solely
+in each case in order to link to, bind by name, or subclass the Program
+or Modified Works thereof.
+
+"Distribute" means the acts of a) distributing or b) making available
+in any manner that enables the transfer of a copy.
+
+"Source Code" means the form of a Program preferred for making
+modifications, including but not limited to software source code,
+documentation source, and configuration files.
+
+"Secondary License" means either the GNU General Public License,
+Version 2.0, or any later versions of that license, including any
+exceptions or additional permissions as identified by the initial
+Contributor.
+
+2. GRANT OF RIGHTS
+
+ a) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
+ license to reproduce, prepare Derivative Works of, publicly display,
+ publicly perform, Distribute and sublicense the Contribution of such
+ Contributor, if any, and such Derivative Works.
+
+ b) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
+ license under Licensed Patents to make, use, sell, offer to sell,
+ import and otherwise transfer the Contribution of such Contributor,
+ if any, in Source Code or other form. This patent license shall
+ apply to the combination of the Contribution and the Program if, at
+ the time the Contribution is added by the Contributor, such addition
+ of the Contribution causes such combination to be covered by the
+ Licensed Patents. The patent license shall not apply to any other
+ combinations which include the Contribution. No hardware per se is
+ licensed hereunder.
+
+ c) Recipient understands that although each Contributor grants the
+ licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the
+ patent or other intellectual property rights of any other entity.
+ Each Contributor disclaims any liability to Recipient for claims
+ brought by any other entity based on infringement of intellectual
+ property rights or otherwise. As a condition to exercising the
+ rights and licenses granted hereunder, each Recipient hereby
+ assumes sole responsibility to secure any other intellectual
+ property rights needed, if any. For example, if a third party
+ patent license is required to allow Recipient to Distribute the
+ Program, it is Recipient's responsibility to acquire that license
+ before distributing the Program.
+
+ d) Each Contributor represents that to its knowledge it has
+ sufficient copyright rights in its Contribution, if any, to grant
+ the copyright license set forth in this Agreement.
+
+ e) Notwithstanding the terms of any Secondary License, no
+ Contributor makes additional grants to any Recipient (other than
+ those set forth in this Agreement) as a result of such Recipient's
+ receipt of the Program under the terms of a Secondary License
+ (if permitted under the terms of Section 3).
+
+3. REQUIREMENTS
+
+3.1 If a Contributor Distributes the Program in any form, then:
+
+ a) the Program must also be made available as Source Code, in
+ accordance with section 3.2, and the Contributor must accompany
+ the Program with a statement that the Source Code for the Program
+ is available under this Agreement, and informs Recipients how to
+ obtain it in a reasonable manner on or through a medium customarily
+ used for software exchange; and
+
+ b) the Contributor may Distribute the Program under a license
+ different than this Agreement, provided that such license:
+ i) effectively disclaims on behalf of all other Contributors all
+ warranties and conditions, express and implied, including
+ warranties or conditions of title and non-infringement, and
+ implied warranties or conditions of merchantability and fitness
+ for a particular purpose;
+
+ ii) effectively excludes on behalf of all other Contributors all
+ liability for damages, including direct, indirect, special,
+ incidental and consequential damages, such as lost profits;
+
+ iii) does not attempt to limit or alter the recipients' rights
+ in the Source Code under section 3.2; and
+
+ iv) requires any subsequent distribution of the Program by any
+ party to be under a license that satisfies the requirements
+ of this section 3.
+
+3.2 When the Program is Distributed as Source Code:
+
+ a) it must be made available under this Agreement, or if the
+ Program (i) is combined with other material in a separate file or
+ files made available under a Secondary License, and (ii) the initial
+ Contributor attached to the Source Code the notice described in
+ Exhibit A of this Agreement, then the Program may be made available
+ under the terms of such Secondary Licenses, and
+
+ b) a copy of this Agreement must be included with each copy of
+ the Program.
+
+3.3 Contributors may not remove or alter any copyright, patent,
+trademark, attribution notices, disclaimers of warranty, or limitations
+of liability ("notices") contained within the Program from any copy of
+the Program which they Distribute, provided that Contributors may add
+their own appropriate notices.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities
+with respect to end users, business partners and the like. While this
+license is intended to facilitate the commercial use of the Program,
+the Contributor who includes the Program in a commercial product
+offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes
+the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every
+other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits
+and other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program
+in a commercial product offering. The obligations in this section do not
+apply to any claims or Losses relating to any actual or alleged
+intellectual property infringement. In order to qualify, an Indemnified
+Contributor must: a) promptly notify the Commercial Contributor in
+writing of such claim, and b) allow the Commercial Contributor to control,
+and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those performance
+claims and warranties, and if a court requires any other Contributor to
+pay any damages as a result, the Commercial Contributor must pay
+those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
+TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE. Each Recipient is solely responsible for determining the
+appropriateness of using and distributing the Program and assumes all
+risks associated with its exercise of rights under this Agreement,
+including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs
+or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
+SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software
+or hardware) infringes such Recipient's patent(s), then such Recipient's
+rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign the
+responsibility to serve as the Agreement Steward to a suitable separate
+entity. Each new version of the Agreement will be given a distinguishing
+version number. The Program (including Contributions) may always be
+Distributed subject to the version of the Agreement under which it was
+received. In addition, after a new version of the Agreement is published,
+Contributor may elect to Distribute the Program (including its
+Contributions) under the new version.
+
+Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+receives no rights or licenses to the intellectual property of any
+Contributor under this Agreement, whether expressly, by implication,
+estoppel or otherwise. All rights in the Program not expressly granted
+under this Agreement are reserved. Nothing in this Agreement is intended
+to be enforceable by any entity that is not a Contributor or Recipient.
+No third-party beneficiary rights are created under this Agreement.
+
+Exhibit A - Form of Secondary Licenses Notice
+
+"This Source Code may also be made available under the following
+Secondary Licenses when the conditions for such availability set forth
+in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+version(s), and exceptions or additional permissions here}."
+
+ Simply including a copy of this Agreement, including this Exhibit A
+ is not sufficient to license the Source Code under Secondary Licenses.
+
+ If it is not possible or desirable to put the notice in a particular
+ file, then You may include the notice in a location (such as a LICENSE
+ file in a relevant directory) where a recipient would be likely to
+ look for such a notice.
+
+ You may add additional accurate notices of copyright ownership.
diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/NOTICE.md b/vendor/github.com/eclipse/paho.mqtt.golang/NOTICE.md
new file mode 100644
index 0000000..10c4a1c
--- /dev/null
+++ b/vendor/github.com/eclipse/paho.mqtt.golang/NOTICE.md
@@ -0,0 +1,77 @@
+# Notices for paho.mqtt.golang
+
+This content is produced and maintained by the Eclipse Paho project.
+
+ * Project home: https://www.eclipse.org/paho/
+
+Note that a [separate mqtt v5 client](https://github.com/eclipse/paho.golang) also exists (this is a full rewrite
+and deliberately incompatible with this library).
+
+## Trademarks
+
+Eclipse Mosquitto trademarks of the Eclipse Foundation. Eclipse, and the
+Eclipse Logo are registered trademarks of the Eclipse Foundation.
+
+Paho is a trademark of the Eclipse Foundation. Eclipse, and the Eclipse Logo are
+registered trademarks of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the respective authors or their employers.
+For more information regarding authorship of content, please consult the
+listed source code repository logs.
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms of the
+Eclipse Public License v2.0 and Eclipse Distribution License v1.0 which accompany this
+distribution.
+
+The Eclipse Public License is available at
+https://www.eclipse.org/legal/epl-2.0/
+and the Eclipse Distribution License is available at
+http://www.eclipse.org/org/documents/edl-v10.php.
+
+For an explanation of what dual-licensing means to you, see:
+https://www.eclipse.org/legal/eplfaq.php#DUALLIC
+
+SPDX-License-Identifier: EPL-2.0 or BSD-3-Clause
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+ * https://github.com/eclipse/paho.mqtt.golang
+
+## Third-party Content
+
+This project makes use of the follow third party projects.
+
+Go Programming Language and Standard Library
+
+* License: BSD-style license (https://golang.org/LICENSE)
+* Project: https://golang.org/
+
+Go Networking
+
+* License: BSD 3-Clause style license and patent grant.
+* Project: https://cs.opensource.google/go/x/net
+
+Go Sync
+
+* License: BSD 3-Clause style license and patent grant.
+* Project: https://cs.opensource.google/go/x/sync/
+
+Gorilla Websockets v1.4.2
+
+* License: BSD 2-Clause "Simplified" License
+* Project: https://github.com/gorilla/websocket
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
\ No newline at end of file
diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/README.md b/vendor/github.com/eclipse/paho.mqtt.golang/README.md
index c1acf4e..63a7f44 100644
--- a/vendor/github.com/eclipse/paho.mqtt.golang/README.md
+++ b/vendor/github.com/eclipse/paho.mqtt.golang/README.md
@@ -111,36 +111,54 @@ identifier; this is as per the [spec](https://docs.oasis-open.org/mqtt/mqtt/v3.1
`ClientOptions.SetOrderMatters(false)` set). If you wish to perform a long-running task, or publish a message, then
please use a go routine (blocking in the handler is a common cause of unexpected `pingresp
not received, disconnecting` errors).
-* When QOS1+ subscriptions have been created previously and you connect with `CleanSession` set to false it is possible that the broker will deliver retained
-messages before `Subscribe` can be called. To process these messages either configure a handler with `AddRoute` or
-set a `DefaultPublishHandler`.
+* When QOS1+ subscriptions have been created previously and you connect with `CleanSession` set to false it is possible
+that the broker will deliver retained messages before `Subscribe` can be called. To process these messages either
+configure a handler with `AddRoute` or set a `DefaultPublishHandler`.
* Loss of network connectivity may not be detected immediately. If this is an issue then consider setting
-`ClientOptions.KeepAlive` (sends regular messages to check the link is active).
-* Brokers offer many configuration options; some settings may lead to unexpected results. If using Mosquitto check
-`max_inflight_messages`, `max_queued_messages`, `persistence` (the defaults may not be what you expect).
+`ClientOptions.KeepAlive` (sends regular messages to check the link is active).
+* Reusing a `Client` is not completely safe. After calling `Disconnect` please create a new Client (`NewClient()`) rather
+than attempting to reuse the existing one (note that features such as `SetAutoReconnect` mean this is rarely necessary).
+* Brokers offer many configuration options; some settings may lead to unexpected results.
+* Publish tokens will complete if the connection is lost and re-established using the default
+options.SetAutoReconnect(true) functionality (token.Error() will return nil). Attempts will be made to re-deliver the
+message but there is currently no easy way know when such messages are delivered.
+
+If using Mosquitto then there are a range of fairly common issues:
+* `listener` - By default [Mosquitto v2+](https://mosquitto.org/documentation/migrating-to-2-0/) listens on loopback
+interfaces only (meaning it will only accept connections made from the computer its running on).
+* `max_inflight_messages` - Unless this is set to 1 mosquitto does not guarantee ordered delivery of messages.
+* `max_queued_messages` / `max_queued_bytes` - These impose limits on the number/size of queued messages. The defaults
+may lead to messages being silently dropped.
+* `persistence` - Defaults to false (messages will not survive a broker restart)
+* `max_keepalive` - defaults to 65535 and, from version 2.0.12, `SetKeepAlive(0)` will result in a rejected connection
+by default.
Reporting bugs
--------------
Please report bugs by raising issues for this project in github https://github.com/eclipse/paho.mqtt.golang/issues
-*A limited number of contributors monitor the issues section so if you have a general question please consider the
-resources in the [more information](#more-information) section (your question will be seen by more people, and you are
-likely to receive an answer more quickly).*
+A limited number of contributors monitor the issues section so if you have a general question please see the
+resources in the [more information](#more-information) section for help.
We welcome bug reports, but it is important they are actionable. A significant percentage of issues reported are not
resolved due to a lack of information. If we cannot replicate the problem then it is unlikely we will be able to fix it.
-The information required will vary from issue to issue but consider including:
+The information required will vary from issue to issue but almost all bug reports would be expected to include:
-* Which version of the package you are using (tag or commit - this should be in your go.mod file)
-* A [Minimal, Reproducible Example](https://stackoverflow.com/help/minimal-reproducible-example). Providing an example
-is the best way to demonstrate the issue you are facing; it is important this includes all relevant information
-(including broker configuration). Docker (see `cmd/docker`) makes it relatively simple to provide a working end-to-end
-example.
+* Which version of the package you are using (tag or commit - this should be in your `go.mod` file)
* A full, clear, description of the problem (detail what you are expecting vs what actually happens).
+* Configuration information (code showing how you connect, please include all references to `ClientOption`)
+* Broker details (name and version).
+
+If at all possible please also include:
* Details of your attempts to resolve the issue (what have you tried, what worked, what did not).
-* [Application Logs](#logging) covering the period the issue occurred. Unless you have isolated the root cause of the issue please include a link to a full log (including data from well before the problem arose).
-* Broker Logs covering the period the issue occurred.
+* A [Minimal, Reproducible Example](https://stackoverflow.com/help/minimal-reproducible-example). Providing an example
+is the best way to demonstrate the issue you are facing; it is important this includes all relevant information
+(including broker configuration). Docker (see `cmd/docker`) makes it relatively simple to provide a working end-to-end
+example.
+* Broker logs covering the period the issue occurred.
+* [Application Logs](#logging) covering the period the issue occurred. Unless you have isolated the root cause of the
+issue please include a link to a full log (including data from well before the problem arose).
It is important to remember that this library does not stand alone; it communicates with a broker and any issues you are
seeing may be due to:
@@ -158,7 +176,7 @@ Contributing
------------
We welcome pull requests but before your contribution can be accepted by the project, you need to create and
-electronically sign the Eclipse Contributor Agreement (ECA) and sign off on the Eclipse Foundation Certificate of Origin.
+electronically sign the Eclipse Contributor Agreement (ECA) and sign off on the Eclipse Foundation Certificate of Origin.
More information is available in the
[Eclipse Development Resources](http://wiki.eclipse.org/Development_Resources/Contributing_via_Git); please take special
@@ -167,11 +185,12 @@ note of the requirement that the commit record contain a "Signed-off-by" entry.
More information
----------------
+[Stack Overflow](https://stackoverflow.com/questions/tagged/mqtt+go) has a range questions/answers covering a range of
+common issues (both relating to use of this library and MQTT in general). This is the best place to ask general questions
+(including those relating to the use of this library).
+
Discussion of the Paho clients takes place on the [Eclipse paho-dev mailing list](https://dev.eclipse.org/mailman/listinfo/paho-dev).
General questions about the MQTT protocol are discussed in the [MQTT Google Group](https://groups.google.com/forum/?hl=en-US&fromgroups#!forum/mqtt).
-There is much more information available via the [MQTT community site](http://mqtt.org).
-
-[Stack Overflow](https://stackoverflow.com/questions/tagged/mqtt+go) has a range questions covering a range of common
-issues (both relating to use of this library and MQTT in general).
+There is much more information available via the [MQTT community site](http://mqtt.org).
\ No newline at end of file
diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/about.html b/vendor/github.com/eclipse/paho.mqtt.golang/about.html
deleted file mode 100644
index b183f41..0000000
--- a/vendor/github.com/eclipse/paho.mqtt.golang/about.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-About This Content
-
-
December 9, 2013
-The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise -indicated below, the Content is provided to you under the terms and conditions of the -Eclipse Public License Version 1.0 ("EPL") and Eclipse Distribution License Version 1.0 ("EDL"). -A copy of the EPL is available at -http://www.eclipse.org/legal/epl-v10.html -and a copy of the EDL is available at -http://www.eclipse.org/org/documents/edl-v10.php. -For purposes of the EPL, "Program" will mean the Content.
- -If you did not receive this Content directly from the Eclipse Foundation, the Content is -being redistributed by another party ("Redistributor") and different terms and conditions may -apply to your use of any object code in the Content. Check the Redistributor's license that was -provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise -indicated below, the terms and conditions of the EPL still apply to any source code in the Content -and such source code may be obtained at http://www.eclipse.org.
- - -The Content includes items that have been sourced from third parties as set out below. If you - did not receive this Content directly from the Eclipse Foundation, the following is provided - for informational purposes only, and you should look to the Redistributor's license for - terms and conditions of use.
-
- None
-
-
February 1, 2011
- -THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS - (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND - CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE - OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR - NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND - CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.
- -Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 - ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. - For purposes of the EPL, "Program" will mean the Content.
- -Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code - repository ("Repository") in software modules ("Modules") and made available as downloadable archives ("Downloads").
- -The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and -Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module -including, but not limited to the following locations:
- -Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license ("Feature Update License") during the -installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or -inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature. -Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in -that directory.
- -THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE -OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):
- -IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please -contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.
- - -The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse - Update Manager ("Provisioning Technology") for the purpose of allowing users to install software, documentation, information and/or - other materials (collectively "Installable Software"). This capability is provided with the intent of allowing such users to - install, extend and update Eclipse-based products. Information about packaging Installable Software is available at http://eclipse.org/equinox/p2/repository_packaging.html - ("Specification").
- -You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the - applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology - in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the - Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:
- -Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to - another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import, - possession, or use, and re-export of encryption software, to see if this is permitted.
- -Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.
- - diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/oops.go b/vendor/github.com/eclipse/paho.mqtt.golang/oops.go index 39630d7..c454aeb 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/oops.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/oops.go @@ -1,10 +1,14 @@ /* - * Copyright (c) 2013 IBM Corp. + * Copyright (c) 2021 IBM Corp and others. * * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Seth Hoenig diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/options.go b/vendor/github.com/eclipse/paho.mqtt.golang/options.go index 4a1420c..b87b503 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/options.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/options.go @@ -1,10 +1,14 @@ /* - * Copyright (c) 2013 IBM Corp. + * Copyright (c) 2021 IBM Corp and others. * * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Seth Hoenig @@ -19,6 +23,7 @@ package mqtt import ( "crypto/tls" + "net" "net/http" "net/url" "strings" @@ -52,8 +57,16 @@ type ReconnectHandler func(Client, *ClientOptions) // ConnectionAttemptHandler is invoked prior to making the initial connection. type ConnectionAttemptHandler func(broker *url.URL, tlsCfg *tls.Config) *tls.Config +// OpenConnectionFunc is invoked to establish the underlying network connection +// Its purpose if for custom network transports. +// Does not carry out any MQTT specific handshakes. +type OpenConnectionFunc func(uri *url.URL, options ClientOptions) (net.Conn, error) + // ClientOptions contains configurable options for an Client. Note that these should be set using the // relevant methods (e.g. AddBroker) rather than directly. See those functions for information on usage. +// WARNING: Create the below using NewClientOptions unless you have a compelling reason not to. It is easy +// to create a configuration with difficult to trace issues (e.g. Mosquitto 2.0.12+ will reject connections +// with KeepAlive=0 by default). type ClientOptions struct { Servers []*url.URL ClientID string @@ -70,7 +83,7 @@ type ClientOptions struct { ProtocolVersion uint protocolVersionExplicit bool TLSConfig *tls.Config - KeepAlive int64 + KeepAlive int64 // Warning: Some brokers may reject connections with Keepalive = 0. PingTimeout time.Duration ConnectTimeout time.Duration MaxReconnectInterval time.Duration @@ -88,6 +101,9 @@ type ClientOptions struct { ResumeSubs bool HTTPHeaders http.Header WebsocketOptions *WebsocketOptions + MaxResumePubInFlight int // // 0 = no limit; otherwise this is the maximum simultaneous messages sent while resuming + Dialer *net.Dialer + CustomOpenConnectionFn OpenConnectionFunc } // NewClientOptions will create a new ClientClientOptions type with some @@ -129,6 +145,8 @@ func NewClientOptions() *ClientOptions { ResumeSubs: false, HTTPHeaders: make(map[string][]string), WebsocketOptions: &WebsocketOptions{}, + Dialer: &net.Dialer{Timeout: 30 * time.Second}, + CustomOpenConnectionFn: nil, } return o } @@ -347,6 +365,7 @@ func (o *ClientOptions) SetWriteTimeout(t time.Duration) *ClientOptions { // Default 30 seconds. Currently only operational on TCP/TLS connections. func (o *ClientOptions) SetConnectTimeout(t time.Duration) *ClientOptions { o.ConnectTimeout = t + o.Dialer.Timeout = t return o } @@ -401,3 +420,29 @@ func (o *ClientOptions) SetWebsocketOptions(w *WebsocketOptions) *ClientOptions o.WebsocketOptions = w return o } + +// SetMaxResumePubInFlight sets the maximum simultaneous publish messages that will be sent while resuming. Note that +// this only applies to messages coming from the store (so additional sends may push us over the limit) +// Note that the connect token will not be flagged as complete until all messages have been sent from the +// store. If broker does not respond to messages then resume may not complete. +// This option was put in place because resuming after downtime can saturate low capacity links. +func (o *ClientOptions) SetMaxResumePubInFlight(MaxResumePubInFlight int) *ClientOptions { + o.MaxResumePubInFlight = MaxResumePubInFlight + return o +} + +// SetDialer sets the tcp dialer options used in a tcp connection +func (o *ClientOptions) SetDialer(dialer *net.Dialer) *ClientOptions { + o.Dialer = dialer + return o +} + +// SetCustomOpenConnectionFn replaces the inbuilt function that establishes a network connection with a custom function. +// The passed in function should return an open `net.Conn` or an error (see the existing openConnection function for an example) +// It enables custom networking types in addition to the defaults (tcp, tls, websockets...) +func (o *ClientOptions) SetCustomOpenConnectionFn(customOpenConnectionFn OpenConnectionFunc) *ClientOptions { + if customOpenConnectionFn != nil { + o.CustomOpenConnectionFn = customOpenConnectionFn + } + return o +} diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/options_reader.go b/vendor/github.com/eclipse/paho.mqtt.golang/options_reader.go index 7ff240f..10a9e49 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/options_reader.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/options_reader.go @@ -1,10 +1,14 @@ /* - * Copyright (c) 2013 IBM Corp. + * Copyright (c) 2021 IBM Corp and others. * * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Seth Hoenig diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/connack.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/connack.go index 1a0dc95..3a7b98f 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/connack.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/connack.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/connect.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/connect.go index 2184703..b4446a5 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/connect.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/connect.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/disconnect.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/disconnect.go index a24a84f..cf352a3 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/disconnect.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/disconnect.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/packets.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/packets.go index 3c734b3..b2d7ed1 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/packets.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/packets.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/pingreq.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/pingreq.go index 4fa54b2..cd52948 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/pingreq.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/pingreq.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/pingresp.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/pingresp.go index 61388ca..d7becdf 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/pingresp.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/pingresp.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/puback.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/puback.go index 5e6c381..f6e727e 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/puback.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/puback.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubcomp.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubcomp.go index 47e043d..84a1af5 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubcomp.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubcomp.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/publish.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/publish.go index cdd76b1..9fba5df 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/publish.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/publish.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubrec.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubrec.go index f0a72c5..da9ed2a 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubrec.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubrec.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubrel.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubrel.go index af29a82..f418ff8 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubrel.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/pubrel.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/suback.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/suback.go index cdea660..261cf21 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/suback.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/suback.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/subscribe.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/subscribe.go index daef901..313bf5a 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/subscribe.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/subscribe.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/unsuback.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/unsuback.go index bdf5fd3..acdd400 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/unsuback.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/unsuback.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/packets/unsubscribe.go b/vendor/github.com/eclipse/paho.mqtt.golang/packets/unsubscribe.go index 9ccb850..54d06aa 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/packets/unsubscribe.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/packets/unsubscribe.go @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2021 IBM Corp and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Allan Stockdill-Mander + */ + package packets import ( diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/ping.go b/vendor/github.com/eclipse/paho.mqtt.golang/ping.go index 50421f4..63283bf 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/ping.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/ping.go @@ -1,10 +1,14 @@ /* - * Copyright (c) 2013 IBM Corp. + * Copyright (c) 2021 IBM Corp and others. * * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Seth Hoenig diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/router.go b/vendor/github.com/eclipse/paho.mqtt.golang/router.go index 4737d87..bfaef61 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/router.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/router.go @@ -1,10 +1,14 @@ /* - * Copyright (c) 2013 IBM Corp. + * Copyright (c) 2021 IBM Corp and others. * * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Seth Hoenig diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/store.go b/vendor/github.com/eclipse/paho.mqtt.golang/store.go index 24a76b7..f50873c 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/store.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/store.go @@ -1,10 +1,14 @@ /* - * Copyright (c) 2013 IBM Corp. + * Copyright (c) 2021 IBM Corp and others. * * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Seth Hoenig @@ -45,7 +49,7 @@ type Store interface { // where X is 'i' or 'o' func mIDFromKey(key string) uint16 { s := key[2:] - i, err := strconv.Atoi(s) + i, err := strconv.ParseUint(s, 10, 16) chkerr(err) return uint16(i) } diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/token.go b/vendor/github.com/eclipse/paho.mqtt.golang/token.go index dade215..996ab5b 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/token.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/token.go @@ -1,10 +1,14 @@ /* - * Copyright (c) 2014 IBM Corp. + * Copyright (c) 2021 IBM Corp and others. * * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Allan Stockdill-Mander diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/topic.go b/vendor/github.com/eclipse/paho.mqtt.golang/topic.go index 6604e68..966540a 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/topic.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/topic.go @@ -1,10 +1,14 @@ /* - * Copyright (c) 2014 IBM Corp. + * Copyright (c) 2021 IBM Corp and others. * * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Seth Hoenig diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/trace.go b/vendor/github.com/eclipse/paho.mqtt.golang/trace.go index 904a664..b07b604 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/trace.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/trace.go @@ -1,10 +1,14 @@ /* - * Copyright (c) 2013 IBM Corp. + * Copyright (c) 2021 IBM Corp and others. * * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Seth Hoenig diff --git a/vendor/github.com/eclipse/paho.mqtt.golang/websocket.go b/vendor/github.com/eclipse/paho.mqtt.golang/websocket.go index 9fa41ce..e0f2583 100644 --- a/vendor/github.com/eclipse/paho.mqtt.golang/websocket.go +++ b/vendor/github.com/eclipse/paho.mqtt.golang/websocket.go @@ -1,3 +1,16 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. + * + * The Eclipse Public License is available at + * https://www.eclipse.org/legal/epl-2.0/ + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + */ + package mqtt import ( diff --git a/vendor/go.uber.org/zap/.readme.tmpl b/vendor/go.uber.org/zap/.readme.tmpl index 3154a1e..92aa65d 100644 --- a/vendor/go.uber.org/zap/.readme.tmpl +++ b/vendor/go.uber.org/zap/.readme.tmpl @@ -96,14 +96,14 @@ Released under the [MIT License](LICENSE.txt). 1 In particular, keep in mind that we may be benchmarking against slightly older versions of other packages. Versions are -pinned in zap's [glide.lock][] file. [↩](#anchor-versions) +pinned in the [benchmarks/go.mod][] file. [↩](#anchor-versions) -[doc-img]: https://godoc.org/go.uber.org/zap?status.svg -[doc]: https://godoc.org/go.uber.org/zap -[ci-img]: https://travis-ci.com/uber-go/zap.svg?branch=master -[ci]: https://travis-ci.com/uber-go/zap +[doc-img]: https://pkg.go.dev/badge/go.uber.org/zap +[doc]: https://pkg.go.dev/go.uber.org/zap +[ci-img]: https://github.com/uber-go/zap/actions/workflows/go.yml/badge.svg +[ci]: https://github.com/uber-go/zap/actions/workflows/go.yml [cov-img]: https://codecov.io/gh/uber-go/zap/branch/master/graph/badge.svg [cov]: https://codecov.io/gh/uber-go/zap [benchmarking suite]: https://github.com/uber-go/zap/tree/master/benchmarks -[glide.lock]: https://github.com/uber-go/zap/blob/master/glide.lock +[benchmarks/go.mod]: https://github.com/uber-go/zap/blob/master/benchmarks/go.mod diff --git a/vendor/go.uber.org/zap/CHANGELOG.md b/vendor/go.uber.org/zap/CHANGELOG.md index 794ee30..1793b08 100644 --- a/vendor/go.uber.org/zap/CHANGELOG.md +++ b/vendor/go.uber.org/zap/CHANGELOG.md @@ -3,9 +3,57 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## 1.21.0 (7 Feb 2022) + +Enhancements: +* [#1047][]: Add `zapcore.ParseLevel` to parse a `Level` from a string. +* [#1048][]: Add `zap.ParseAtomicLevel` to parse an `AtomicLevel` from a + string. + +Bugfixes: +* [#1058][]: Fix panic in JSON encoder when `EncodeLevel` is unset. + +Other changes: +* [#1052][]: Improve encoding performance when the `AddCaller` and + `AddStacktrace` options are used together. + +[#1047]: https://github.com/uber-go/zap/pull/1047 +[#1048]: https://github.com/uber-go/zap/pull/1048 +[#1052]: https://github.com/uber-go/zap/pull/1052 +[#1058]: https://github.com/uber-go/zap/pull/1058 + +Thanks to @aerosol and @Techassi for their contributions to this release. + +## 1.20.0 (4 Jan 2022) + +Enhancements: +* [#989][]: Add `EncoderConfig.SkipLineEnding` flag to disable adding newline + characters between log statements. +* [#1039][]: Add `EncoderConfig.NewReflectedEncoder` field to customize JSON + encoding of reflected log fields. + +Bugfixes: +* [#1011][]: Fix inaccurate precision when encoding complex64 as JSON. +* [#554][], [#1017][]: Close JSON namespaces opened in `MarshalLogObject` + methods when the methods return. +* [#1033][]: Avoid panicking in Sampler core if `thereafter` is zero. + +Other changes: +* [#1028][]: Drop support for Go < 1.15. + +[#554]: https://github.com/uber-go/zap/pull/554 +[#989]: https://github.com/uber-go/zap/pull/989 +[#1011]: https://github.com/uber-go/zap/pull/1011 +[#1017]: https://github.com/uber-go/zap/pull/1017 +[#1028]: https://github.com/uber-go/zap/pull/1028 +[#1033]: https://github.com/uber-go/zap/pull/1033 +[#1039]: https://github.com/uber-go/zap/pull/1039 + +Thanks to @psrajat, @lruggieri, @sammyrnycreal for their contributions to this release. + ## 1.19.1 (8 Sep 2021) -### Fixed +Bugfixes: * [#1001][]: JSON: Fix complex number encoding with negative imaginary part. Thanks to @hemantjadon. * [#1003][]: JSON: Fix inaccurate precision when encoding float32. diff --git a/vendor/go.uber.org/zap/README.md b/vendor/go.uber.org/zap/README.md index 1e64d6c..9c9dfe1 100644 --- a/vendor/go.uber.org/zap/README.md +++ b/vendor/go.uber.org/zap/README.md @@ -66,38 +66,38 @@ Log a message and 10 fields: | Package | Time | Time % to zap | Objects Allocated | | :------ | :--: | :-----------: | :---------------: | -| :zap: zap | 862 ns/op | +0% | 5 allocs/op -| :zap: zap (sugared) | 1250 ns/op | +45% | 11 allocs/op -| zerolog | 4021 ns/op | +366% | 76 allocs/op -| go-kit | 4542 ns/op | +427% | 105 allocs/op -| apex/log | 26785 ns/op | +3007% | 115 allocs/op -| logrus | 29501 ns/op | +3322% | 125 allocs/op -| log15 | 29906 ns/op | +3369% | 122 allocs/op +| :zap: zap | 2900 ns/op | +0% | 5 allocs/op +| :zap: zap (sugared) | 3475 ns/op | +20% | 10 allocs/op +| zerolog | 10639 ns/op | +267% | 32 allocs/op +| go-kit | 14434 ns/op | +398% | 59 allocs/op +| logrus | 17104 ns/op | +490% | 81 allocs/op +| apex/log | 32424 ns/op | +1018% | 66 allocs/op +| log15 | 33579 ns/op | +1058% | 76 allocs/op Log a message with a logger that already has 10 fields of context: | Package | Time | Time % to zap | Objects Allocated | | :------ | :--: | :-----------: | :---------------: | -| :zap: zap | 126 ns/op | +0% | 0 allocs/op -| :zap: zap (sugared) | 187 ns/op | +48% | 2 allocs/op -| zerolog | 88 ns/op | -30% | 0 allocs/op -| go-kit | 5087 ns/op | +3937% | 103 allocs/op -| log15 | 18548 ns/op | +14621% | 73 allocs/op -| apex/log | 26012 ns/op | +20544% | 104 allocs/op -| logrus | 27236 ns/op | +21516% | 113 allocs/op +| :zap: zap | 373 ns/op | +0% | 0 allocs/op +| :zap: zap (sugared) | 452 ns/op | +21% | 1 allocs/op +| zerolog | 288 ns/op | -23% | 0 allocs/op +| go-kit | 11785 ns/op | +3060% | 58 allocs/op +| logrus | 19629 ns/op | +5162% | 70 allocs/op +| log15 | 21866 ns/op | +5762% | 72 allocs/op +| apex/log | 30890 ns/op | +8182% | 55 allocs/op Log a static string, without any context or `printf`-style templating: | Package | Time | Time % to zap | Objects Allocated | | :------ | :--: | :-----------: | :---------------: | -| :zap: zap | 118 ns/op | +0% | 0 allocs/op -| :zap: zap (sugared) | 191 ns/op | +62% | 2 allocs/op -| zerolog | 93 ns/op | -21% | 0 allocs/op -| go-kit | 280 ns/op | +137% | 11 allocs/op -| standard library | 499 ns/op | +323% | 2 allocs/op -| apex/log | 1990 ns/op | +1586% | 10 allocs/op -| logrus | 3129 ns/op | +2552% | 24 allocs/op -| log15 | 3887 ns/op | +3194% | 23 allocs/op +| :zap: zap | 381 ns/op | +0% | 0 allocs/op +| :zap: zap (sugared) | 410 ns/op | +8% | 1 allocs/op +| zerolog | 369 ns/op | -3% | 0 allocs/op +| standard library | 385 ns/op | +1% | 2 allocs/op +| go-kit | 606 ns/op | +59% | 11 allocs/op +| logrus | 1730 ns/op | +354% | 25 allocs/op +| apex/log | 1998 ns/op | +424% | 7 allocs/op +| log15 | 4546 ns/op | +1093% | 22 allocs/op ## Development Status: Stable diff --git a/vendor/go.uber.org/zap/global.go b/vendor/go.uber.org/zap/global.go index c1ac050..3cb46c9 100644 --- a/vendor/go.uber.org/zap/global.go +++ b/vendor/go.uber.org/zap/global.go @@ -31,6 +31,7 @@ import ( ) const ( + _stdLogDefaultDepth = 1 _loggerWriterDepth = 2 _programmerErrorTemplate = "You've found a bug in zap! Please file a bug at " + "https://github.com/uber-go/zap/issues/new and reference this error: %v" diff --git a/vendor/go.uber.org/zap/global_prego112.go b/vendor/go.uber.org/zap/global_prego112.go deleted file mode 100644 index d3ab9af..0000000 --- a/vendor/go.uber.org/zap/global_prego112.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2019 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// See #682 for more information. -// +build !go1.12 - -package zap - -const _stdLogDefaultDepth = 2 diff --git a/vendor/go.uber.org/zap/level.go b/vendor/go.uber.org/zap/level.go index 3567a9a..8f86c43 100644 --- a/vendor/go.uber.org/zap/level.go +++ b/vendor/go.uber.org/zap/level.go @@ -86,6 +86,23 @@ func NewAtomicLevelAt(l zapcore.Level) AtomicLevel { return a } +// ParseAtomicLevel parses an AtomicLevel based on a lowercase or all-caps ASCII +// representation of the log level. If the provided ASCII representation is +// invalid an error is returned. +// +// This is particularly useful when dealing with text input to configure log +// levels. +func ParseAtomicLevel(text string) (AtomicLevel, error) { + a := NewAtomicLevel() + l, err := zapcore.ParseLevel(text) + if err != nil { + return a, err + } + + a.SetLevel(l) + return a, nil +} + // Enabled implements the zapcore.LevelEnabler interface, which allows the // AtomicLevel to be used in place of traditional static levels. func (lvl AtomicLevel) Enabled(l zapcore.Level) bool { diff --git a/vendor/go.uber.org/zap/logger.go b/vendor/go.uber.org/zap/logger.go index f116bd9..087c742 100644 --- a/vendor/go.uber.org/zap/logger.go +++ b/vendor/go.uber.org/zap/logger.go @@ -24,9 +24,9 @@ import ( "fmt" "io/ioutil" "os" - "runtime" "strings" + "go.uber.org/zap/internal/bufferpool" "go.uber.org/zap/zapcore" ) @@ -259,8 +259,10 @@ func (log *Logger) clone() *Logger { } func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry { - // check must always be called directly by a method in the Logger interface - // (e.g., Check, Info, Fatal). + // Logger.check must always be called directly by a method in the + // Logger interface (e.g., Check, Info, Fatal). + // This skips Logger.check and the Info/Fatal/Check/etc. method that + // called it. const callerSkipOffset = 2 // Check the level first to reduce the cost of disabled log calls. @@ -307,42 +309,55 @@ func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry { // Thread the error output through to the CheckedEntry. ce.ErrorOutput = log.errorOutput - if log.addCaller { - frame, defined := getCallerFrame(log.callerSkip + callerSkipOffset) - if !defined { + + addStack := log.addStack.Enabled(ce.Level) + if !log.addCaller && !addStack { + return ce + } + + // Adding the caller or stack trace requires capturing the callers of + // this function. We'll share information between these two. + stackDepth := stacktraceFirst + if addStack { + stackDepth = stacktraceFull + } + stack := captureStacktrace(log.callerSkip+callerSkipOffset, stackDepth) + defer stack.Free() + + if stack.Count() == 0 { + if log.addCaller { fmt.Fprintf(log.errorOutput, "%v Logger.check error: failed to get caller\n", ent.Time.UTC()) log.errorOutput.Sync() } + return ce + } - ce.Entry.Caller = zapcore.EntryCaller{ - Defined: defined, + frame, more := stack.Next() + + if log.addCaller { + ce.Caller = zapcore.EntryCaller{ + Defined: frame.PC != 0, PC: frame.PC, File: frame.File, Line: frame.Line, Function: frame.Function, } } - if log.addStack.Enabled(ce.Entry.Level) { - ce.Entry.Stack = StackSkip("", log.callerSkip+callerSkipOffset).String + + if addStack { + buffer := bufferpool.Get() + defer buffer.Free() + + stackfmt := newStackFormatter(buffer) + + // We've already extracted the first frame, so format that + // separately and defer to stackfmt for the rest. + stackfmt.FormatFrame(frame) + if more { + stackfmt.FormatStack(stack) + } + ce.Stack = buffer.String() } return ce } - -// getCallerFrame gets caller frame. The argument skip is the number of stack -// frames to ascend, with 0 identifying the caller of getCallerFrame. The -// boolean ok is false if it was not possible to recover the information. -// -// Note: This implementation is similar to runtime.Caller, but it returns the whole frame. -func getCallerFrame(skip int) (frame runtime.Frame, ok bool) { - const skipOffset = 2 // skip getCallerFrame and Callers - - pc := make([]uintptr, 1) - numFrames := runtime.Callers(skip+skipOffset, pc) - if numFrames < 1 { - return - } - - frame, _ = runtime.CallersFrames(pc).Next() - return frame, frame.PC != 0 -} diff --git a/vendor/go.uber.org/zap/stacktrace.go b/vendor/go.uber.org/zap/stacktrace.go index 0cf8c1d..3d187fa 100644 --- a/vendor/go.uber.org/zap/stacktrace.go +++ b/vendor/go.uber.org/zap/stacktrace.go @@ -24,62 +24,153 @@ import ( "runtime" "sync" + "go.uber.org/zap/buffer" "go.uber.org/zap/internal/bufferpool" ) -var ( - _stacktracePool = sync.Pool{ - New: func() interface{} { - return newProgramCounters(64) - }, - } +var _stacktracePool = sync.Pool{ + New: func() interface{} { + return &stacktrace{ + storage: make([]uintptr, 64), + } + }, +} + +type stacktrace struct { + pcs []uintptr // program counters; always a subslice of storage + frames *runtime.Frames + + // The size of pcs varies depending on requirements: + // it will be one if the only the first frame was requested, + // and otherwise it will reflect the depth of the call stack. + // + // storage decouples the slice we need (pcs) from the slice we pool. + // We will always allocate a reasonably large storage, but we'll use + // only as much of it as we need. + storage []uintptr +} + +// stacktraceDepth specifies how deep of a stack trace should be captured. +type stacktraceDepth int + +const ( + // stacktraceFirst captures only the first frame. + stacktraceFirst stacktraceDepth = iota + + // stacktraceFull captures the entire call stack, allocating more + // storage for it if needed. + stacktraceFull ) +// captureStacktrace captures a stack trace of the specified depth, skipping +// the provided number of frames. skip=0 identifies the caller of +// captureStacktrace. +// +// The caller must call Free on the returned stacktrace after using it. +func captureStacktrace(skip int, depth stacktraceDepth) *stacktrace { + stack := _stacktracePool.Get().(*stacktrace) + + switch depth { + case stacktraceFirst: + stack.pcs = stack.storage[:1] + case stacktraceFull: + stack.pcs = stack.storage + } + + // Unlike other "skip"-based APIs, skip=0 identifies runtime.Callers + // itself. +2 to skip captureStacktrace and runtime.Callers. + numFrames := runtime.Callers( + skip+2, + stack.pcs, + ) + + // runtime.Callers truncates the recorded stacktrace if there is no + // room in the provided slice. For the full stack trace, keep expanding + // storage until there are fewer frames than there is room. + if depth == stacktraceFull { + pcs := stack.pcs + for numFrames == len(pcs) { + pcs = make([]uintptr, len(pcs)*2) + numFrames = runtime.Callers(skip+2, pcs) + } + + // Discard old storage instead of returning it to the pool. + // This will adjust the pool size over time if stack traces are + // consistently very deep. + stack.storage = pcs + stack.pcs = pcs[:numFrames] + } else { + stack.pcs = stack.pcs[:numFrames] + } + + stack.frames = runtime.CallersFrames(stack.pcs) + return stack +} + +// Free releases resources associated with this stacktrace +// and returns it back to the pool. +func (st *stacktrace) Free() { + st.frames = nil + st.pcs = nil + _stacktracePool.Put(st) +} + +// Count reports the total number of frames in this stacktrace. +// Count DOES NOT change as Next is called. +func (st *stacktrace) Count() int { + return len(st.pcs) +} + +// Next returns the next frame in the stack trace, +// and a boolean indicating whether there are more after it. +func (st *stacktrace) Next() (_ runtime.Frame, more bool) { + return st.frames.Next() +} + func takeStacktrace(skip int) string { + stack := captureStacktrace(skip+1, stacktraceFull) + defer stack.Free() + buffer := bufferpool.Get() defer buffer.Free() - programCounters := _stacktracePool.Get().(*programCounters) - defer _stacktracePool.Put(programCounters) - - var numFrames int - for { - // Skip the call to runtime.Callers and takeStacktrace so that the - // program counters start at the caller of takeStacktrace. - numFrames = runtime.Callers(skip+2, programCounters.pcs) - if numFrames < len(programCounters.pcs) { - break - } - // Don't put the too-short counter slice back into the pool; this lets - // the pool adjust if we consistently take deep stacktraces. - programCounters = newProgramCounters(len(programCounters.pcs) * 2) - } - - i := 0 - frames := runtime.CallersFrames(programCounters.pcs[:numFrames]) - - // Note: On the last iteration, frames.Next() returns false, with a valid - // frame, but we ignore this frame. The last frame is a a runtime frame which - // adds noise, since it's only either runtime.main or runtime.goexit. - for frame, more := frames.Next(); more; frame, more = frames.Next() { - if i != 0 { - buffer.AppendByte('\n') - } - i++ - buffer.AppendString(frame.Function) - buffer.AppendByte('\n') - buffer.AppendByte('\t') - buffer.AppendString(frame.File) - buffer.AppendByte(':') - buffer.AppendInt(int64(frame.Line)) - } + stackfmt := newStackFormatter(buffer) + stackfmt.FormatStack(stack) return buffer.String() } -type programCounters struct { - pcs []uintptr +// stackFormatter formats a stack trace into a readable string representation. +type stackFormatter struct { + b *buffer.Buffer + nonEmpty bool // whehther we've written at least one frame already } -func newProgramCounters(size int) *programCounters { - return &programCounters{make([]uintptr, size)} +// newStackFormatter builds a new stackFormatter. +func newStackFormatter(b *buffer.Buffer) stackFormatter { + return stackFormatter{b: b} +} + +// FormatStack formats all remaining frames in the provided stacktrace -- minus +// the final runtime.main/runtime.goexit frame. +func (sf *stackFormatter) FormatStack(stack *stacktrace) { + // Note: On the last iteration, frames.Next() returns false, with a valid + // frame, but we ignore this frame. The last frame is a a runtime frame which + // adds noise, since it's only either runtime.main or runtime.goexit. + for frame, more := stack.Next(); more; frame, more = stack.Next() { + sf.FormatFrame(frame) + } +} + +// FormatFrame formats the given frame. +func (sf *stackFormatter) FormatFrame(frame runtime.Frame) { + if sf.nonEmpty { + sf.b.AppendByte('\n') + } + sf.nonEmpty = true + sf.b.AppendString(frame.Function) + sf.b.AppendByte('\n') + sf.b.AppendByte('\t') + sf.b.AppendString(frame.File) + sf.b.AppendByte(':') + sf.b.AppendInt(int64(frame.Line)) } diff --git a/vendor/go.uber.org/zap/zapcore/clock.go b/vendor/go.uber.org/zap/zapcore/clock.go index d2ea95b..422fd82 100644 --- a/vendor/go.uber.org/zap/zapcore/clock.go +++ b/vendor/go.uber.org/zap/zapcore/clock.go @@ -20,9 +20,7 @@ package zapcore -import ( - "time" -) +import "time" // DefaultClock is the default clock used by Zap in operations that require // time. This clock uses the system clock for all operations. diff --git a/vendor/go.uber.org/zap/zapcore/console_encoder.go b/vendor/go.uber.org/zap/zapcore/console_encoder.go index 2307af4..1aa5dc3 100644 --- a/vendor/go.uber.org/zap/zapcore/console_encoder.go +++ b/vendor/go.uber.org/zap/zapcore/console_encoder.go @@ -125,11 +125,7 @@ func (c consoleEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, line.AppendString(ent.Stack) } - if c.LineEnding != "" { - line.AppendString(c.LineEnding) - } else { - line.AppendString(DefaultLineEnding) - } + line.AppendString(c.LineEnding) return line, nil } diff --git a/vendor/go.uber.org/zap/zapcore/encoder.go b/vendor/go.uber.org/zap/zapcore/encoder.go index 6601ca1..6e5fd56 100644 --- a/vendor/go.uber.org/zap/zapcore/encoder.go +++ b/vendor/go.uber.org/zap/zapcore/encoder.go @@ -22,6 +22,7 @@ package zapcore import ( "encoding/json" + "io" "time" "go.uber.org/zap/buffer" @@ -312,14 +313,15 @@ func (e *NameEncoder) UnmarshalText(text []byte) error { type EncoderConfig struct { // Set the keys used for each log entry. If any key is empty, that portion // of the entry is omitted. - MessageKey string `json:"messageKey" yaml:"messageKey"` - LevelKey string `json:"levelKey" yaml:"levelKey"` - TimeKey string `json:"timeKey" yaml:"timeKey"` - NameKey string `json:"nameKey" yaml:"nameKey"` - CallerKey string `json:"callerKey" yaml:"callerKey"` - FunctionKey string `json:"functionKey" yaml:"functionKey"` - StacktraceKey string `json:"stacktraceKey" yaml:"stacktraceKey"` - LineEnding string `json:"lineEnding" yaml:"lineEnding"` + MessageKey string `json:"messageKey" yaml:"messageKey"` + LevelKey string `json:"levelKey" yaml:"levelKey"` + TimeKey string `json:"timeKey" yaml:"timeKey"` + NameKey string `json:"nameKey" yaml:"nameKey"` + CallerKey string `json:"callerKey" yaml:"callerKey"` + FunctionKey string `json:"functionKey" yaml:"functionKey"` + StacktraceKey string `json:"stacktraceKey" yaml:"stacktraceKey"` + SkipLineEnding bool `json:"skipLineEnding" yaml:"skipLineEnding"` + LineEnding string `json:"lineEnding" yaml:"lineEnding"` // Configure the primitive representations of common complex types. For // example, some users may want all time.Times serialized as floating-point // seconds since epoch, while others may prefer ISO8601 strings. @@ -330,6 +332,9 @@ type EncoderConfig struct { // Unlike the other primitive type encoders, EncodeName is optional. The // zero value falls back to FullNameEncoder. EncodeName NameEncoder `json:"nameEncoder" yaml:"nameEncoder"` + // Configure the encoder for interface{} type objects. + // If not provided, objects are encoded using json.Encoder + NewReflectedEncoder func(io.Writer) ReflectedEncoder `json:"-" yaml:"-"` // Configures the field separator used by the console encoder. Defaults // to tab. ConsoleSeparator string `json:"consoleSeparator" yaml:"consoleSeparator"` diff --git a/vendor/go.uber.org/zap/zapcore/json_encoder.go b/vendor/go.uber.org/zap/zapcore/json_encoder.go index af220d9..c5d751b 100644 --- a/vendor/go.uber.org/zap/zapcore/json_encoder.go +++ b/vendor/go.uber.org/zap/zapcore/json_encoder.go @@ -22,7 +22,6 @@ package zapcore import ( "encoding/base64" - "encoding/json" "math" "sync" "time" @@ -64,7 +63,7 @@ type jsonEncoder struct { // for encoding generic values by reflection reflectBuf *buffer.Buffer - reflectEnc *json.Encoder + reflectEnc ReflectedEncoder } // NewJSONEncoder creates a fast, low-allocation JSON encoder. The encoder @@ -82,6 +81,17 @@ func NewJSONEncoder(cfg EncoderConfig) Encoder { } func newJSONEncoder(cfg EncoderConfig, spaced bool) *jsonEncoder { + if cfg.SkipLineEnding { + cfg.LineEnding = "" + } else if cfg.LineEnding == "" { + cfg.LineEnding = DefaultLineEnding + } + + // If no EncoderConfig.NewReflectedEncoder is provided by the user, then use default + if cfg.NewReflectedEncoder == nil { + cfg.NewReflectedEncoder = defaultReflectedEncoder + } + return &jsonEncoder{ EncoderConfig: &cfg, buf: bufferpool.Get(), @@ -118,6 +128,11 @@ func (enc *jsonEncoder) AddComplex128(key string, val complex128) { enc.AppendComplex128(val) } +func (enc *jsonEncoder) AddComplex64(key string, val complex64) { + enc.addKey(key) + enc.AppendComplex64(val) +} + func (enc *jsonEncoder) AddDuration(key string, val time.Duration) { enc.addKey(key) enc.AppendDuration(val) @@ -141,10 +156,7 @@ func (enc *jsonEncoder) AddInt64(key string, val int64) { func (enc *jsonEncoder) resetReflectBuf() { if enc.reflectBuf == nil { enc.reflectBuf = bufferpool.Get() - enc.reflectEnc = json.NewEncoder(enc.reflectBuf) - - // For consistency with our custom JSON encoder. - enc.reflectEnc.SetEscapeHTML(false) + enc.reflectEnc = enc.NewReflectedEncoder(enc.reflectBuf) } else { enc.reflectBuf.Reset() } @@ -206,10 +218,16 @@ func (enc *jsonEncoder) AppendArray(arr ArrayMarshaler) error { } func (enc *jsonEncoder) AppendObject(obj ObjectMarshaler) error { + // Close ONLY new openNamespaces that are created during + // AppendObject(). + old := enc.openNamespaces + enc.openNamespaces = 0 enc.addElementSeparator() enc.buf.AppendByte('{') err := obj.MarshalLogObject(enc) enc.buf.AppendByte('}') + enc.closeOpenNamespaces() + enc.openNamespaces = old return err } @@ -225,20 +243,23 @@ func (enc *jsonEncoder) AppendByteString(val []byte) { enc.buf.AppendByte('"') } -func (enc *jsonEncoder) AppendComplex128(val complex128) { +// appendComplex appends the encoded form of the provided complex128 value. +// precision specifies the encoding precision for the real and imaginary +// components of the complex number. +func (enc *jsonEncoder) appendComplex(val complex128, precision int) { enc.addElementSeparator() // Cast to a platform-independent, fixed-size type. r, i := float64(real(val)), float64(imag(val)) enc.buf.AppendByte('"') // Because we're always in a quoted string, we can use strconv without // special-casing NaN and +/-Inf. - enc.buf.AppendFloat(r, 64) + enc.buf.AppendFloat(r, precision) // If imaginary part is less than 0, minus (-) sign is added by default // by AppendFloat. if i >= 0 { enc.buf.AppendByte('+') } - enc.buf.AppendFloat(i, 64) + enc.buf.AppendFloat(i, precision) enc.buf.AppendByte('i') enc.buf.AppendByte('"') } @@ -301,28 +322,28 @@ func (enc *jsonEncoder) AppendUint64(val uint64) { enc.buf.AppendUint(val) } -func (enc *jsonEncoder) AddComplex64(k string, v complex64) { enc.AddComplex128(k, complex128(v)) } -func (enc *jsonEncoder) AddInt(k string, v int) { enc.AddInt64(k, int64(v)) } -func (enc *jsonEncoder) AddInt32(k string, v int32) { enc.AddInt64(k, int64(v)) } -func (enc *jsonEncoder) AddInt16(k string, v int16) { enc.AddInt64(k, int64(v)) } -func (enc *jsonEncoder) AddInt8(k string, v int8) { enc.AddInt64(k, int64(v)) } -func (enc *jsonEncoder) AddUint(k string, v uint) { enc.AddUint64(k, uint64(v)) } -func (enc *jsonEncoder) AddUint32(k string, v uint32) { enc.AddUint64(k, uint64(v)) } -func (enc *jsonEncoder) AddUint16(k string, v uint16) { enc.AddUint64(k, uint64(v)) } -func (enc *jsonEncoder) AddUint8(k string, v uint8) { enc.AddUint64(k, uint64(v)) } -func (enc *jsonEncoder) AddUintptr(k string, v uintptr) { enc.AddUint64(k, uint64(v)) } -func (enc *jsonEncoder) AppendComplex64(v complex64) { enc.AppendComplex128(complex128(v)) } -func (enc *jsonEncoder) AppendFloat64(v float64) { enc.appendFloat(v, 64) } -func (enc *jsonEncoder) AppendFloat32(v float32) { enc.appendFloat(float64(v), 32) } -func (enc *jsonEncoder) AppendInt(v int) { enc.AppendInt64(int64(v)) } -func (enc *jsonEncoder) AppendInt32(v int32) { enc.AppendInt64(int64(v)) } -func (enc *jsonEncoder) AppendInt16(v int16) { enc.AppendInt64(int64(v)) } -func (enc *jsonEncoder) AppendInt8(v int8) { enc.AppendInt64(int64(v)) } -func (enc *jsonEncoder) AppendUint(v uint) { enc.AppendUint64(uint64(v)) } -func (enc *jsonEncoder) AppendUint32(v uint32) { enc.AppendUint64(uint64(v)) } -func (enc *jsonEncoder) AppendUint16(v uint16) { enc.AppendUint64(uint64(v)) } -func (enc *jsonEncoder) AppendUint8(v uint8) { enc.AppendUint64(uint64(v)) } -func (enc *jsonEncoder) AppendUintptr(v uintptr) { enc.AppendUint64(uint64(v)) } +func (enc *jsonEncoder) AddInt(k string, v int) { enc.AddInt64(k, int64(v)) } +func (enc *jsonEncoder) AddInt32(k string, v int32) { enc.AddInt64(k, int64(v)) } +func (enc *jsonEncoder) AddInt16(k string, v int16) { enc.AddInt64(k, int64(v)) } +func (enc *jsonEncoder) AddInt8(k string, v int8) { enc.AddInt64(k, int64(v)) } +func (enc *jsonEncoder) AddUint(k string, v uint) { enc.AddUint64(k, uint64(v)) } +func (enc *jsonEncoder) AddUint32(k string, v uint32) { enc.AddUint64(k, uint64(v)) } +func (enc *jsonEncoder) AddUint16(k string, v uint16) { enc.AddUint64(k, uint64(v)) } +func (enc *jsonEncoder) AddUint8(k string, v uint8) { enc.AddUint64(k, uint64(v)) } +func (enc *jsonEncoder) AddUintptr(k string, v uintptr) { enc.AddUint64(k, uint64(v)) } +func (enc *jsonEncoder) AppendComplex64(v complex64) { enc.appendComplex(complex128(v), 32) } +func (enc *jsonEncoder) AppendComplex128(v complex128) { enc.appendComplex(complex128(v), 64) } +func (enc *jsonEncoder) AppendFloat64(v float64) { enc.appendFloat(v, 64) } +func (enc *jsonEncoder) AppendFloat32(v float32) { enc.appendFloat(float64(v), 32) } +func (enc *jsonEncoder) AppendInt(v int) { enc.AppendInt64(int64(v)) } +func (enc *jsonEncoder) AppendInt32(v int32) { enc.AppendInt64(int64(v)) } +func (enc *jsonEncoder) AppendInt16(v int16) { enc.AppendInt64(int64(v)) } +func (enc *jsonEncoder) AppendInt8(v int8) { enc.AppendInt64(int64(v)) } +func (enc *jsonEncoder) AppendUint(v uint) { enc.AppendUint64(uint64(v)) } +func (enc *jsonEncoder) AppendUint32(v uint32) { enc.AppendUint64(uint64(v)) } +func (enc *jsonEncoder) AppendUint16(v uint16) { enc.AppendUint64(uint64(v)) } +func (enc *jsonEncoder) AppendUint8(v uint8) { enc.AppendUint64(uint64(v)) } +func (enc *jsonEncoder) AppendUintptr(v uintptr) { enc.AppendUint64(uint64(v)) } func (enc *jsonEncoder) Clone() Encoder { clone := enc.clone() @@ -343,7 +364,7 @@ func (enc *jsonEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, final := enc.clone() final.buf.AppendByte('{') - if final.LevelKey != "" { + if final.LevelKey != "" && final.EncodeLevel != nil { final.addKey(final.LevelKey) cur := final.buf.Len() final.EncodeLevel(ent.Level, final) @@ -404,11 +425,7 @@ func (enc *jsonEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, final.AddString(final.StacktraceKey, ent.Stack) } final.buf.AppendByte('}') - if final.LineEnding != "" { - final.buf.AppendString(final.LineEnding) - } else { - final.buf.AppendString(DefaultLineEnding) - } + final.buf.AppendString(final.LineEnding) ret := final.buf putJSONEncoder(final) @@ -423,6 +440,7 @@ func (enc *jsonEncoder) closeOpenNamespaces() { for i := 0; i < enc.openNamespaces; i++ { enc.buf.AppendByte('}') } + enc.openNamespaces = 0 } func (enc *jsonEncoder) addKey(key string) { diff --git a/vendor/go.uber.org/zap/zapcore/level.go b/vendor/go.uber.org/zap/zapcore/level.go index e575c9f..56e88dc 100644 --- a/vendor/go.uber.org/zap/zapcore/level.go +++ b/vendor/go.uber.org/zap/zapcore/level.go @@ -55,6 +55,18 @@ const ( _maxLevel = FatalLevel ) +// ParseLevel parses a level based on the lower-case or all-caps ASCII +// representation of the log level. If the provided ASCII representation is +// invalid an error is returned. +// +// This is particularly useful when dealing with text input to configure log +// levels. +func ParseLevel(text string) (Level, error) { + var level Level + err := level.UnmarshalText([]byte(text)) + return level, err +} + // String returns a lower-case ASCII representation of the log level. func (l Level) String() string { switch l { diff --git a/vendor/go.uber.org/zap/global_go112.go b/vendor/go.uber.org/zap/zapcore/reflected_encoder.go similarity index 64% rename from vendor/go.uber.org/zap/global_go112.go rename to vendor/go.uber.org/zap/zapcore/reflected_encoder.go index 6b5dbda..8746360 100644 --- a/vendor/go.uber.org/zap/global_go112.go +++ b/vendor/go.uber.org/zap/zapcore/reflected_encoder.go @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Uber Technologies, Inc. +// Copyright (c) 2016 Uber Technologies, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -18,9 +18,24 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -// See #682 for more information. -// +build go1.12 +package zapcore -package zap +import ( + "encoding/json" + "io" +) -const _stdLogDefaultDepth = 1 +// ReflectedEncoder serializes log fields that can't be serialized with Zap's +// JSON encoder. These have the ReflectType field type. +// Use EncoderConfig.NewReflectedEncoder to set this. +type ReflectedEncoder interface { + // Encode encodes and writes to the underlying data stream. + Encode(interface{}) error +} + +func defaultReflectedEncoder(w io.Writer) ReflectedEncoder { + enc := json.NewEncoder(w) + // For consistency with our custom JSON encoder. + enc.SetEscapeHTML(false) + return enc +} diff --git a/vendor/go.uber.org/zap/zapcore/sampler.go b/vendor/go.uber.org/zap/zapcore/sampler.go index 31ed96e..8c11604 100644 --- a/vendor/go.uber.org/zap/zapcore/sampler.go +++ b/vendor/go.uber.org/zap/zapcore/sampler.go @@ -133,10 +133,21 @@ func SamplerHook(hook func(entry Entry, dec SamplingDecision)) SamplerOption { // each tick. If more Entries with the same level and message are seen during // the same interval, every Mth message is logged and the rest are dropped. // +// For example, +// +// core = NewSamplerWithOptions(core, time.Second, 10, 5) +// +// This will log the first 10 log entries with the same level and message +// in a one second interval as-is. Following that, it will allow through +// every 5th log entry with the same level and message in that interval. +// +// If thereafter is zero, the Core will drop all log entries after the first N +// in that interval. +// // Sampler can be configured to report sampling decisions with the SamplerHook // option. // -// Keep in mind that zap's sampling implementation is optimized for speed over +// Keep in mind that Zap's sampling implementation is optimized for speed over // absolute precision; under load, each tick may be slightly over- or // under-sampled. func NewSamplerWithOptions(core Core, tick time.Duration, first, thereafter int, opts ...SamplerOption) Core { @@ -200,7 +211,7 @@ func (s *sampler) Check(ent Entry, ce *CheckedEntry) *CheckedEntry { if ent.Level >= _minLevel && ent.Level <= _maxLevel { counter := s.counts.get(ent.Level, ent.Message) n := counter.IncCheckReset(ent.Time, s.tick) - if n > s.first && (n-s.first)%s.thereafter != 0 { + if n > s.first && (s.thereafter == 0 || (n-s.first)%s.thereafter != 0) { s.hook(ent, LogDropped) return ce } diff --git a/vendor/gocv.io/x/gocv/.gitignore b/vendor/gocv.io/x/gocv/.gitignore index 7549fff..adf29f1 100644 --- a/vendor/gocv.io/x/gocv/.gitignore +++ b/vendor/gocv.io/x/gocv/.gitignore @@ -9,3 +9,4 @@ count.out /build .idea/ contrib/data.yaml +contrib/testOilPainting.png diff --git a/vendor/gocv.io/x/gocv/CHANGELOG.md b/vendor/gocv.io/x/gocv/CHANGELOG.md index 3d33e79..88a7ef7 100644 --- a/vendor/gocv.io/x/gocv/CHANGELOG.md +++ b/vendor/gocv.io/x/gocv/CHANGELOG.md @@ -1,3 +1,78 @@ +0.31.0 +--- +* **all** + * update to OpenCV 4.6.0 +* **build** + * Switch to Github Actions for Linux CI build + * Use go -tags static when verifying static build +* **core** + * Add Mat.ElemSize (#964) + * avoid index out of range panic in NewPointsVectorFromPoints +* **video** + * add findTransformECC function +* **contrib/ximgproc** + * add PeiLinNormalization() function + * add anisotropicDiffusion() function + * implement edgePreservingFilter() + * implement niBlackThreshold and thinning filters + +0.30.0 +--- +* **all** + * update to OpenCV 4.5.5 +* **build** + * add install_nonfree make task to build all opencv_contrib modules + * correct download location for onnx test file + * Update Makefile for missing version changes +* **core** + * correct how memory is being allocated for Eye(), Zeros(), and Ones() to address issue #930 +* **calib3d** + * Adding support for estimateAffine2DWithParams (#924) +* **imgproc** + * Add DrawContoursWithParams function +* **photo** + * Add bindings for fastNlMeansDenoising and fastNlMeansDenoisingColored + * add detailEnhance function + * add EdgePreservingFilter function + * add PencilSketch function + * add stylization function +* **docs** + * add godoc comments for FastNlMeansDenoising functions + * update README with info on latest mingw-w64 t use for Windows builds + * dnn pose detect examples correct the order of the argument variable name +* **examples** + * Fixed memory leaks in the motion detection example +* **openvino** + * Update env.sh and README.md +* **windows** + * use mingw-w64 8.1.0 for protobuf compile +* **contrib** + * add cv::wechat_qrcode::WeChatQRCode (#949) + * Update cgo_static.go + +0.29.0 +--- +* **all** + * update to OpenCV 4.5.4 +* **build** + * add static build ability on windows + * use tbb for all builds for CPU accelerated operations +* **cuda** + * implement a bunch of per-element operations + * add get/set/reset device functions + * add NewGpuMatWithSize() to preallocate device memory + * Reshape() returns a new GpuMat with the changed data + * correct use of Stream by adding WaitForCompletion() and passing pre-allocated GpuMats +* **docs** + * update ROADMAP from recent contributions +* **videoio** + * Fix open video capture with api test (#895) +* **calib3d** + * added EstimateAffine2D + * findChessboardCornersSB +* **aruco** + * added many functions as part of initial implementation + 0.28.0 --- * **all** diff --git a/vendor/gocv.io/x/gocv/CONTRIBUTING.md b/vendor/gocv.io/x/gocv/CONTRIBUTING.md index 20a63fa..2357ed7 100644 --- a/vendor/gocv.io/x/gocv/CONTRIBUTING.md +++ b/vendor/gocv.io/x/gocv/CONTRIBUTING.md @@ -81,7 +81,7 @@ go test ./openvino/... ## Contributing workflow -This section provides a short description of one of many possible workflows you can follow to contribute to `CoCV`. This workflow is based on multiple [git remotes](https://git-scm.com/docs/git-remote) and it's by no means the only workflow you can use to contribute to `GoCV`. However, it's an option that might help you get started quickly without too much hassle as this workflow lets you work off the `gocv` repo directory path! +This section provides a short description of one of many possible workflows you can follow to contribute to `GoCV`. This workflow is based on multiple [git remotes](https://git-scm.com/docs/git-remote) and it's by no means the only workflow you can use to contribute to `GoCV`. However, it's an option that might help you get started quickly without too much hassle as this workflow lets you work off the `gocv` repo directory path! Assuming you have already forked the `gocv` repo, you need to add a new `git remote` which will point to your GitHub fork. Notice below that you **must** `cd` to `gocv` repo directory before you add the new `git remote`: diff --git a/vendor/gocv.io/x/gocv/Dockerfile b/vendor/gocv.io/x/gocv/Dockerfile index e0c54fc..4f78b96 100644 --- a/vendor/gocv.io/x/gocv/Dockerfile +++ b/vendor/gocv.io/x/gocv/Dockerfile @@ -1,6 +1,6 @@ # to build this docker image: # docker build . -FROM gocv/opencv:4.5.3 +FROM gocv/opencv:4.6.0 ENV GOPATH /go diff --git a/vendor/gocv.io/x/gocv/Dockerfile-test b/vendor/gocv.io/x/gocv/Dockerfile-test index a29dba7..8d122d9 100644 --- a/vendor/gocv.io/x/gocv/Dockerfile-test +++ b/vendor/gocv.io/x/gocv/Dockerfile-test @@ -6,7 +6,7 @@ # docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix gocv-test # xhost - # -FROM gocv/opencv:4.5.3 AS gocv-test +FROM gocv/opencv:4.6.0 AS gocv-test ENV GOPATH /go diff --git a/vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-10 b/vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-10 index be509c3..6479594 100644 --- a/vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-10 +++ b/vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-10 @@ -4,7 +4,7 @@ # To run tests: # docker run -it --rm --gpus all gocv-test-gpu-cuda-10 # -FROM gocv/opencv:4.5.3-gpu-cuda-10 AS gocv-gpu-test-cuda-10 +FROM gocv/opencv:4.6.0-gpu-cuda-10 AS gocv-gpu-test-cuda-10 ENV GOPATH /go ENV PATH="${PATH}:/go/bin" diff --git a/vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-11 b/vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-11 index a5ea8dd..72aa36c 100644 --- a/vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-11 +++ b/vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-11 @@ -4,7 +4,7 @@ # To run tests: # docker run -it --rm --gpus all gocv-test-gpu-cuda-11 # -FROM gocv/opencv:4.5.3-gpu-cuda-11 AS gocv-gpu-test-cuda-11 +FROM gocv/opencv:4.6.0-gpu-cuda-11 AS gocv-gpu-test-cuda-11 ENV GOPATH /go ENV PATH="${PATH}:/go/bin" diff --git a/vendor/gocv.io/x/gocv/Dockerfile.gpu b/vendor/gocv.io/x/gocv/Dockerfile.gpu index 2a0b207..57ab2ff 100644 --- a/vendor/gocv.io/x/gocv/Dockerfile.gpu +++ b/vendor/gocv.io/x/gocv/Dockerfile.gpu @@ -1,12 +1,12 @@ # to build this docker image: # docker build -f Dockerfile.gpu . -FROM gocv/opencv:4.5.3-gpu AS gocv-gpu +FROM gocv/opencv:4.6.0-gpu-cuda-11 AS gocv-gpu ENV GOPATH /go COPY . /go/src/gocv.io/x/gocv/ WORKDIR /go/src/gocv.io/x/gocv -RUN go build -tags example -o /build/gocv_cuda_version ./cmd/cuda/ +RUN go build -tags cuda -o /build/gocv_cuda_version ./cmd/cuda/ CMD ["/build/gocv_cuda_version"] diff --git a/vendor/gocv.io/x/gocv/Dockerfile.opencv b/vendor/gocv.io/x/gocv/Dockerfile.opencv index ac91e3c..1b6ab2d 100644 --- a/vendor/gocv.io/x/gocv/Dockerfile.opencv +++ b/vendor/gocv.io/x/gocv/Dockerfile.opencv @@ -1,6 +1,6 @@ # to build this docker image: -# docker build -f Dockerfile.opencv -t gocv/opencv:4.5.3 . -FROM golang:1.16-buster AS opencv +# docker build -f Dockerfile.opencv -t gocv/opencv:4.6.0 . +FROM golang:1.18-buster AS opencv LABEL maintainer="hybridgroup" RUN apt-get update && apt-get install -y --no-install-recommends \ @@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev && \ rm -rf /var/lib/apt/lists/* -ARG OPENCV_VERSION="4.5.3" +ARG OPENCV_VERSION="4.6.0" ENV OPENCV_VERSION $OPENCV_VERSION RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \ @@ -28,6 +28,7 @@ RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSIO -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${OPENCV_VERSION}/modules \ -D OPENCV_ENABLE_NONFREE=ON \ -D WITH_JASPER=OFF \ + -D WITH_TBB=ON \ -D BUILD_DOCS=OFF \ -D BUILD_EXAMPLES=OFF \ -D BUILD_TESTS=OFF \ diff --git a/vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-10 b/vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-10 index 820419b..dbfb166 100644 --- a/vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-10 +++ b/vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-10 @@ -1,8 +1,13 @@ # to build this docker image: -# docker build -f Dockerfile.opencv-gpu-cuda-10 -t gocv/opencv:4.5.3-gpu-cuda-10 . -FROM nvidia/cuda:10.2-cudnn7-devel AS opencv-gpu-base +# docker build -f Dockerfile.opencv-gpu-cuda-10 -t gocv/opencv:4.6.0-gpu-cuda-10 . +FROM nvidia/cuda:10.2-cudnn8-devel AS opencv-gpu-base LABEL maintainer="hybridgroup" +# needed for cuda repo key rotation. see: +# https://forums.developer.nvidia.com/t/notice-cuda-linux-repository-key-rotation/212771 +# +RUN apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub + RUN apt-get update && apt-get install -y --no-install-recommends \ git build-essential cmake pkg-config unzip libgtk2.0-dev \ wget curl ca-certificates libcurl4-openssl-dev libssl-dev \ @@ -10,7 +15,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev && \ rm -rf /var/lib/apt/lists/* -ARG OPENCV_VERSION="4.5.3" +ARG OPENCV_VERSION="4.6.0" ENV OPENCV_VERSION $OPENCV_VERSION RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \ @@ -36,6 +41,7 @@ RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSIO -D BUILD_opencv_python=NO \ -D BUILD_opencv_python2=NO \ -D BUILD_opencv_python3=NO \ + -D WITH_TBB=ON \ -D WITH_CUDA=ON \ -D ENABLE_FAST_MATH=1 \ -D CUDA_FAST_MATH=1 \ @@ -53,7 +59,7 @@ RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSIO # install golang here FROM opencv-gpu-base AS opencv-gpu-golang -ENV GO_RELEASE=1.16.5 +ENV GO_RELEASE=1.18.3 RUN wget https://dl.google.com/go/go${GO_RELEASE}.linux-amd64.tar.gz && \ tar xfv go${GO_RELEASE}.linux-amd64.tar.gz -C /usr/local && \ rm go${GO_RELEASE}.linux-amd64.tar.gz diff --git a/vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-11 b/vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-11 index 0a2aa28..14cbdb1 100644 --- a/vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-11 +++ b/vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-11 @@ -1,6 +1,6 @@ # to build this docker image: -# docker build -f Dockerfile.opencv-gpu-cuda-11 -t gocv/opencv:4.5.3-gpu-cuda-11 . -FROM nvidia/cuda:11.2.2-cudnn8-devel AS opencv-gpu-cuda-11-base +# docker build -f Dockerfile.opencv-gpu-cuda-11 -t gocv/opencv:4.6.0-gpu-cuda-11 . +FROM nvidia/cuda:11.5.2-cudnn8-devel-ubuntu20.04 AS opencv-gpu-cuda-11-base LABEL maintainer="hybridgroup" ENV DEBIAN_FRONTEND=noninteractive @@ -11,7 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev && \ rm -rf /var/lib/apt/lists/* -ARG OPENCV_VERSION="4.5.3" +ARG OPENCV_VERSION="4.6.0" ENV OPENCV_VERSION $OPENCV_VERSION RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \ @@ -37,6 +37,7 @@ RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSIO -D BUILD_opencv_python=NO \ -D BUILD_opencv_python2=NO \ -D BUILD_opencv_python3=NO \ + -D WITH_TBB=ON \ -D WITH_CUDA=ON \ -D ENABLE_FAST_MATH=1 \ -D CUDA_FAST_MATH=1 \ @@ -54,7 +55,7 @@ RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSIO # install golang here FROM opencv-gpu-cuda-11-base AS opencv-gpu-cuda-11-golang -ENV GO_RELEASE=1.16.5 +ENV GO_RELEASE=1.18.3 RUN wget https://dl.google.com/go/go${GO_RELEASE}.linux-amd64.tar.gz && \ tar xfv go${GO_RELEASE}.linux-amd64.tar.gz -C /usr/local && \ rm go${GO_RELEASE}.linux-amd64.tar.gz diff --git a/vendor/gocv.io/x/gocv/LICENSE.txt b/vendor/gocv.io/x/gocv/LICENSE.txt index 64efffa..3263f9e 100644 --- a/vendor/gocv.io/x/gocv/LICENSE.txt +++ b/vendor/gocv.io/x/gocv/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2017-2021 The Hybrid Group +Copyright (c) 2017-2022 The Hybrid Group and friends Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/gocv.io/x/gocv/Makefile b/vendor/gocv.io/x/gocv/Makefile index dcff3e9..2efb37b 100644 --- a/vendor/gocv.io/x/gocv/Makefile +++ b/vendor/gocv.io/x/gocv/Makefile @@ -2,10 +2,10 @@ .PHONY: test deps download build clean astyle cmds docker # GoCV version to use. -GOCV_VERSION?="v0.26.0" +GOCV_VERSION?="v0.31.0" # OpenCV version to use. -OPENCV_VERSION?=4.5.3 +OPENCV_VERSION?=4.6.0 # Go version to use when building Docker image GOVERSION?=1.16.2 @@ -98,7 +98,7 @@ build: mkdir build cd build rm -rf * - cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -DOPENCV_GENERATE_PKGCONFIG=ON .. + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON .. $(MAKE) -j $(shell nproc --all) $(MAKE) preinstall cd - @@ -170,7 +170,7 @@ build_nonfree: mkdir build cd build rm -rf * - cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON .. + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON .. $(MAKE) -j $(shell nproc --all) $(MAKE) preinstall cd - @@ -181,7 +181,7 @@ build_openvino: mkdir build cd build rm -rf * - cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D ENABLE_CXX11=ON -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D WITH_INF_ENGINE=ON -D InferenceEngine_DIR=/usr/local/dldt/inference-engine/build -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON .. + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D ENABLE_CXX11=ON -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D WITH_INF_ENGINE=ON -D InferenceEngine_DIR=/usr/local/dldt/inference-engine/build -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON .. $(MAKE) -j $(shell nproc --all) $(MAKE) preinstall cd - @@ -192,7 +192,7 @@ build_cuda: mkdir build cd build rm -rf * - cmake -j $(shell nproc --all) -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_CUDA=ON -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DBUILD_opencv_cudacodec=OFF -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D CUDA_GENERATION=Auto .. + cmake -j $(shell nproc --all) -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_CUDA=ON -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DBUILD_opencv_cudacodec=OFF -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D CUDA_GENERATION=Auto .. $(MAKE) -j $(shell nproc --all) $(MAKE) preinstall cd - @@ -214,7 +214,7 @@ build_all: mkdir build cd build rm -rf * - cmake -j $(shell nproc --all) -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D ENABLE_CXX11=ON -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D WITH_INF_ENGINE=ON -D InferenceEngine_DIR=/usr/local/dldt/inference-engine/build -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_CUDA=ON -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DBUILD_opencv_cudacodec=OFF -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D CUDA_GENERATION=Auto .. + cmake -j $(shell nproc --all) -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D ENABLE_CXX11=ON -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D WITH_INF_ENGINE=ON -D InferenceEngine_DIR=/usr/local/dldt/inference-engine/build -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_CUDA=ON -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DBUILD_opencv_cudacodec=OFF -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D CUDA_GENERATION=Auto .. $(MAKE) -j $(shell nproc --all) $(MAKE) preinstall cd - @@ -250,7 +250,10 @@ install_cuda: deps download sudo_pre_install_clean build_cuda sudo_install clean install_openvino: deps download download_openvino sudo_pre_install_clean build_openvino_package sudo_install_openvino build_openvino sudo_install clean verify_openvino # Do everything statically. -install_static: deps download sudo_pre_install_clean build_static sudo_install clean verify +install_static: deps download sudo_pre_install_clean build_static sudo_install clean verify_static + +# Do everything with non-free modules from cpencv_contrib. +install_nonfree: deps download sudo_pre_install_clean build_nonfree sudo_install clean verify # Do everything with openvino and cuda. install_all: deps download download_openvino sudo_pre_install_clean build_openvino_package sudo_install_openvino build_all sudo_install clean verify_openvino verify_cuda @@ -273,6 +276,10 @@ sudo_install_openvino: verify: go run ./cmd/version/main.go +# Build a minimal Go app to confirm gocv works with statically built OpenCV. +verify_static: + go run -tags static ./cmd/version/main.go + # Build a minimal Go app to confirm gocv cuda works. verify_cuda: go run ./cmd/cuda/main.go diff --git a/vendor/gocv.io/x/gocv/README.md b/vendor/gocv.io/x/gocv/README.md index 0b6d511..5aa4a0e 100644 --- a/vendor/gocv.io/x/gocv/README.md +++ b/vendor/gocv.io/x/gocv/README.md @@ -3,14 +3,14 @@ [](http://gocv.io/) [](https://pkg.go.dev/gocv.io/x/gocv) -[](https://circleci.com/gh/hybridgroup/gocv/tree/dev) -[](https://ci.appveyor.com/project/deadprogram/gocv/branch/dev) +[](https://github.com/hybridgroup/gocv/actions/workflows/linux.yml) +[](https://ci.appveyor.com/project/deadprogram/gocv/branch/dev) [](https://goreportcard.com/report/github.com/hybridgroup/gocv) [](https://github.com/hybridgroup/gocv/blob/release/LICENSE.txt) The GoCV package provides Go language bindings for the [OpenCV 4](http://opencv.org/) computer vision library. -The GoCV package supports the latest releases of Go and OpenCV (v4.5.3) on Linux, macOS, and Windows. We intend to make the Go language a "first-class" client compatible with the latest developments in the OpenCV ecosystem. +The GoCV package supports the latest releases of Go and OpenCV (v4.6.0) on Linux, macOS, and Windows. We intend to make the Go language a "first-class" client compatible with the latest developments in the OpenCV ecosystem. GoCV supports [CUDA](https://en.wikipedia.org/wiki/CUDA) for hardware acceleration using Nvidia GPUs. Check out the [CUDA README](./cuda/README.md) for more info on how to use GoCV with OpenCV/CUDA. @@ -122,7 +122,7 @@ There are examples in the [cmd directory](./cmd) of this repo in the form of var ## How to install -To install GoCV, you must first have the matching version of OpenCV installed on your system. The current release of GoCV requires OpenCV 4.5.3. +To install GoCV, you must first have the matching version of OpenCV installed on your system. The current release of GoCV requires OpenCV 4.6.0. Here are instructions for Ubuntu, Raspian, macOS, and Windows. @@ -130,7 +130,7 @@ Here are instructions for Ubuntu, Raspian, macOS, and Windows. ### Installation -You can use `make` to install OpenCV 4.5.3 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way. +You can use `make` to install OpenCV 4.6.0 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way. #### Quick Install @@ -141,7 +141,7 @@ First, change directories to where you want to install GoCV, and then use git to Make sure to change `$HOME/folder/with/your/src/` to where you actually want to save the code. -Once you have cloned the repo, the following commands should do everything to download and install OpenCV 4.5.3 on Linux: +Once you have cloned the repo, the following commands should do everything to download and install OpenCV 4.6.0 on Linux: cd gocv make install @@ -152,8 +152,8 @@ If you need static opencv libraries If it works correctly, at the end of the entire process, the following message should be displayed: - gocv version: 0.28.0 - opencv lib version: 4.5.3 + gocv version: 0.31.0 + opencv lib version: 4.6.0 That's it, now you are ready to use GoCV. @@ -167,7 +167,7 @@ See the [openvino directory](./openvino) for information. #### Make Install for OpenVINO and Cuda -The following commands should do everything to download and install OpenCV 4.5.3 with CUDA and OpenVINO on Linux. Make sure to change `$HOME/folder/with/your/src/` to the directory you used to clone GoCV: +The following commands should do everything to download and install OpenCV 4.6.0 with CUDA and OpenVINO on Linux. Make sure to change `$HOME/folder/with/your/src/` to the directory you used to clone GoCV: cd $HOME/folder/with/gocv/ make install_all @@ -178,8 +178,8 @@ If you need static opencv libraries If it works correctly, at the end of the entire process, the following message should be displayed: - gocv version: 0.28.0 - opencv lib version: 4.5.3-openvino + gocv version: 0.31.0 + opencv lib version: 4.6.0-openvino cuda information: Device 0: "GeForce MX150" 2003Mb, sm_61, Driver/Runtime ver.10.0/10.0 @@ -206,7 +206,7 @@ Next, you need to update the system, and install any required packages: #### Download source -Now, download the OpenCV 4.5.3 and OpenCV Contrib source code: +Now, download the OpenCV 4.6.0 and OpenCV Contrib source code: make download @@ -240,8 +240,8 @@ Now you should be able to build or run any of the examples: The version program should output the following: - gocv version: 0.28.0 - opencv lib version: 4.5.3 + gocv version: 0.31.0 + opencv lib version: 4.6.0 #### Cleanup extra files @@ -320,7 +320,7 @@ There is a Docker image with Alpine 3.7 that has been created by project contrib ### Installation -We have a special installation for the Raspberry Pi that includes some hardware optimizations. You use `make` to install OpenCV 4.5.3 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way. +We have a special installation for the Raspberry Pi that includes some hardware optimizations. You use `make` to install OpenCV 4.6.0 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way. #### Quick Install @@ -331,15 +331,15 @@ First, change directories to where you want to install GoCV, and then use git to Make sure to change `$HOME/folder/with/your/src/` to where you actually want to save the code. -The following make command should do everything to download and install OpenCV 4.5.3 on Raspbian: +The following make command should do everything to download and install OpenCV 4.6.0 on Raspbian: cd $HOME/folder/with/your/src/gocv make install_raspi If it works correctly, at the end of the entire process, the following message should be displayed: - gocv version: 0.28.0 - opencv lib version: 4.5.3 + gocv version: 0.31.0 + opencv lib version: 4.6.0 That's it, now you are ready to use GoCV. @@ -347,13 +347,13 @@ That's it, now you are ready to use GoCV. ### Installation -You can install OpenCV 4.5.3 using Homebrew. +You can install OpenCV 4.6.0 using Homebrew. If you already have an earlier version of OpenCV (3.4.x) installed, you should probably remove it before installing the new version: brew uninstall opencv -You can then install OpenCV 4.5.3: +You can then install OpenCV 4.6.0: brew install opencv @@ -377,8 +377,8 @@ Now you should be able to build or run any of the examples: The version program should output the following: - gocv version: 0.28.0 - opencv lib version: 4.5.3 + gocv version: 0.31.0 + opencv lib version: 4.6.0 ### Custom Environment @@ -387,8 +387,8 @@ By default, pkg-config is used to determine the correct flags for compiling and For example: export CGO_CXXFLAGS="--std=c++11" - export CGO_CPPFLAGS="-I/usr/local/Cellar/opencv/4.5.3/include" - export CGO_LDFLAGS="-L/usr/local/Cellar/opencv/4.5.3/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core" + export CGO_CPPFLAGS="-I/usr/local/Cellar/opencv/4.6.0/include" + export CGO_LDFLAGS="-L/usr/local/Cellar/opencv/4.6.0/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core" Please note that you will need to run these 3 lines of code one time in your current session in order to build or run the code, in order to setup the needed ENV variables. Once you have done so, you can execute code that uses GoCV with your custom environment like this: @@ -400,25 +400,25 @@ Please note that you will need to run these 3 lines of code one time in your cur The following assumes that you are running a 64-bit version of Windows 10. -In order to build and install OpenCV 4.5.3 on Windows, you must first download and install MinGW-W64 and CMake, as follows. +In order to build and install OpenCV 4.6.0 on Windows, you must first download and install MinGW-W64 and CMake, as follows. #### MinGW-W64 -Download and run the MinGW-W64 compiler installer from [https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.3.0/](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.3.0/). +Download and run the MinGW-W64 compiler installer from [https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/). -The latest version of the MinGW-W64 toolchain is `7.3.0`, but any version from `7.X` on should work. +The latest version of the MinGW-W64 toolchain is `8.1.0`, but any version from `8.X` on should work. -Choose the options for "posix" threads, and for "seh" exceptions handling, then install to the default location `c:\Program Files\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev2`. +Choose the options for "posix" threads, and for "seh" exceptions handling, then install to the default location `c:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0`. -Add the `C:\Program Files\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev2\mingw64\bin` path to your System Path. +Add the `C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin` path to your System Path. #### CMake Download and install CMake [https://cmake.org/download/](https://cmake.org/download/) to the default location. CMake installer will add CMake to your system path. -#### OpenCV 4.5.3 and OpenCV Contrib Modules +#### OpenCV 4.6.0 and OpenCV Contrib Modules -The following commands should do everything to download and install OpenCV 4.5.3 on Windows: +The following commands should do everything to download and install OpenCV 4.6.0 on Windows: chdir %GOPATH%\src\gocv.io\x\gocv win_build_opencv.cmd @@ -439,8 +439,8 @@ Now you should be able to build or run any of the command examples: The version program should output the following: - gocv version: 0.28.0 - opencv lib version: 4.5.3 + gocv version: 0.31.0 + opencv lib version: 4.6.0 That's it, now you are ready to use GoCV. @@ -454,7 +454,7 @@ For example: set CGO_CXXFLAGS="--std=c++11" set CGO_CPPFLAGS=-IC:\opencv\build\install\include - set CGO_LDFLAGS=-LC:\opencv\build\install\x64\mingw\lib -lopencv_core453 -lopencv_face453 -lopencv_videoio453 -lopencv_imgproc453 -lopencv_highgui453 -lopencv_imgcodecs453 -lopencv_objdetect453 -lopencv_features2d453 -lopencv_video453 -lopencv_dnn453 -lopencv_xfeatures2d453 -lopencv_plot453 -lopencv_tracking453 -lopencv_img_hash453 + set CGO_LDFLAGS=-LC:\opencv\build\install\x64\mingw\lib -lopencv_core460 -lopencv_face460 -lopencv_videoio460 -lopencv_imgproc460 -lopencv_highgui460 -lopencv_imgcodecs460 -lopencv_objdetect460 -lopencv_features2d460 -lopencv_video460 -lopencv_dnn460 -lopencv_xfeatures2d460 -lopencv_plot460 -lopencv_tracking460 -lopencv_img_hash460 Please note that you will need to run these 3 lines of code one time in your current session in order to build or run the code, in order to setup the needed ENV variables. Once you have done so, you can execute code that uses GoCV with your custom environment like this: diff --git a/vendor/gocv.io/x/gocv/ROADMAP.md b/vendor/gocv.io/x/gocv/ROADMAP.md index 3233937..a38f245 100644 --- a/vendor/gocv.io/x/gocv/ROADMAP.md +++ b/vendor/gocv.io/x/gocv/ROADMAP.md @@ -114,7 +114,7 @@ Your pull requests will be greatly appreciated! - [ ] **calib3d. Camera Calibration and 3D Reconstruction - WORK STARTED**. The following functions still need implementation: - [ ] **Camera Calibration - WORK STARTED** The following functions still need implementation: - - [ ] [calibrateCamera](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) + - [X] [calibrateCamera](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [calibrateCameraRO](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [calibrateHandEye](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [calibrationMatrixValues](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) @@ -130,13 +130,13 @@ Your pull requests will be greatly appreciated! - [ ] [decomposeProjectionMatrix](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [drawChessboardCorners](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [drawFrameAxes](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - - [ ] [estimateAffine2D](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) + - [X] [estimateAffine2D](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [estimateAffine3D](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [filterHomographyDecompByVisibleRefpoints](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [filterSpeckles](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [find4QuadCornerSubpix](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - - [ ] [findChessboardCorners](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - - [ ] [findChessboardCornersSB](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) + - [X] [findChessboardCorners](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) + - [X] [findChessboardCornersSB](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [findCirclesGrid](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [findEssentialMat](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) - [ ] [findFundamentalMat](https://docs.opencv.org/master/d9/d0c/group__calib3d.html) @@ -188,9 +188,9 @@ Your pull requests will be greatly appreciated! - [ ] **photo. Computational Photography - WORK STARTED** The following functions still need implementation: - [ ] [inpaint](https://docs.opencv.org/master/d7/d8b/group__photo__inpaint.html#gaedd30dfa0214fec4c88138b51d678085) - [ ] [denoise_TVL1](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#ga7602ed5ae17b7de40152b922227c4e4f) - - [ ] [fastNlMeansDenoising](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#ga4c6b0031f56ea3f98f768881279ffe93) - - [ ] [fastNlMeansDenoisingColored](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#ga03aa4189fc3e31dafd638d90de335617) - - [ ] [fastNlMeansDenoisingMulti](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#gaf4421bf068c4d632ea7f0aa38e0bf172) + - [X] [fastNlMeansDenoising](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#ga4c6b0031f56ea3f98f768881279ffe93) + - [X] [fastNlMeansDenoisingColored](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#ga03aa4189fc3e31dafd638d90de335617) + - [X] [fastNlMeansDenoisingMulti](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#gaf4421bf068c4d632ea7f0aa38e0bf172) - [ ] [createCalibrateDebevec](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#ga7fed9707ad5f2cc0e633888867109f90) - [ ] [createCalibrateRobertson](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#gae77813a21cd351a596619e5ff013be5d) - [ ] [createMergeDebevec](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#gaa8eab36bc764abb2a225db7c945f87f9) @@ -200,10 +200,10 @@ Your pull requests will be greatly appreciated! - [ ] [createTonemapMantiuk](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#ga3b3f3bf083b7515802f039a6a70f2d21) - [ ] [createTonemapReinhard](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#gadabe7f6bf1fa96ad0fd644df9182c2fb) - [ ] [decolor](https://docs.opencv.org/master/d4/d32/group__photo__decolor.html#ga4864d4c007bda5dacdc5e9d4ed7e222c) - - [ ] [detailEnhance](https://docs.opencv.org/master/df/dac/group__photo__render.html#ga0de660cb6f371a464a74c7b651415975) - - [ ] [edgePreservingFilter](https://docs.opencv.org/master/df/dac/group__photo__render.html#gafaee2977597029bc8e35da6e67bd31f7) - - [ ] [pencilSketch](https://docs.opencv.org/master/df/dac/group__photo__render.html#gae5930dd822c713b36f8529b21ddebd0c) - - [ ] [stylization](https://docs.opencv.org/master/df/dac/group__photo__render.html#gacb0f7324017df153d7b5d095aed53206) + - [X] [detailEnhance](https://docs.opencv.org/master/df/dac/group__photo__render.html#ga0de660cb6f371a464a74c7b651415975) + - [X] [edgePreservingFilter](https://docs.opencv.org/master/df/dac/group__photo__render.html#gafaee2977597029bc8e35da6e67bd31f7) + - [X] [pencilSketch](https://docs.opencv.org/master/df/dac/group__photo__render.html#gae5930dd822c713b36f8529b21ddebd0c) + - [X] [stylization](https://docs.opencv.org/master/df/dac/group__photo__render.html#gacb0f7324017df153d7b5d095aed53206) - [ ] stitching. Images stitching @@ -212,9 +212,9 @@ Your pull requests will be greatly appreciated! - [ ] **core. - WORK STARTED** The following functions still need implementation: - [ ] [cv::cuda::convertFp16](https://docs.opencv.org/master/d8/d40/group__cudacore__init.html#gaa1c52258763197958eb9e6681917f723) - [ ] [cv::cuda::deviceSupports](https://docs.opencv.org/master/d8/d40/group__cudacore__init.html#ga170b10cc9af4aa8cce8c0afdb4b1d08c) - - [ ] [cv::cuda::getDevice](https://docs.opencv.org/master/d8/d40/group__cudacore__init.html#ga6ded4ed8e4fc483a9863d31f34ec9c0e) - - [ ] [cv::cuda::resetDevice](https://docs.opencv.org/master/d8/d40/group__cudacore__init.html#ga6153b6f461101374e655a54fc77e725e) - - [ ] [cv::cuda::setDevice](https://docs.opencv.org/master/d8/d40/group__cudacore__init.html#gaefa34186b185de47851836dba537828b) + - [X] [cv::cuda::getDevice](https://docs.opencv.org/master/d8/d40/group__cudacore__init.html#ga6ded4ed8e4fc483a9863d31f34ec9c0e) + - [X] [cv::cuda::resetDevice](https://docs.opencv.org/master/d8/d40/group__cudacore__init.html#ga6153b6f461101374e655a54fc77e725e) + - [X] [cv::cuda::setDevice](https://docs.opencv.org/master/d8/d40/group__cudacore__init.html#gaefa34186b185de47851836dba537828b) - [ ] **cudaarithm. Operations on Matrices - WORK STARTED** The following functions still need implementation: - [ ] **core** The following functions still need implementation: @@ -224,32 +224,33 @@ Your pull requests will be greatly appreciated! - [ ] [cv::cuda::split](https://docs.opencv.org/master/de/d09/group__cudaarithm__core.html#gabe5013d55d4ff586b20393913726179e) - [ ] [cv::cuda::transpose](https://docs.opencv.org/master/de/d09/group__cudaarithm__core.html#ga327b71c3cb811a904ccf5fba37fc29f2) - - [X] **per-element operations - WORK STARTED** The following functions still need implementation: - - [ ] [cv::cuda::absdiff](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gac062b283cf46ee90f74a773d3382ab54) - - [ ] [cv::cuda::add](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga5d9794bde97ed23d1c1485249074a8b1) + - [ ] **per-element operations - WORK STARTED** The following functions still need implementation: + - [X] [cv::cuda::absdiff](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gac062b283cf46ee90f74a773d3382ab54) + - [X] [cv::cuda::add](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga5d9794bde97ed23d1c1485249074a8b1) - [ ] [cv::cuda::addWeighted](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga2cd14a684ea70c6ab2a63ee90ffe6201) - - [ ] [cv::cuda::bitwise_and](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga78d7c1a013877abd4237fbfc4e13bd76) - - [ ] [cv::cuda::bitwise_not](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gae58159a2259ae1acc76b531c171cf06a) - - [ ] [cv::cuda::bitwise_or](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gafd098ee3e51c68daa793999c1da3dfb7) - - [ ] [cv::cuda::bitwise_xor](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga3d95d4faafb099aacf18e8b915a4ad8d) + - [X] [cv::cuda::bitwise_and](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga78d7c1a013877abd4237fbfc4e13bd76) + - [X] [cv::cuda::bitwise_not](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gae58159a2259ae1acc76b531c171cf06a) + - [X] [cv::cuda::bitwise_or](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gafd098ee3e51c68daa793999c1da3dfb7) + - [X] [cv::cuda::bitwise_xor](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga3d95d4faafb099aacf18e8b915a4ad8d) - [ ] [cv::cuda::cartToPolar](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga82210c7d1c1d42e616e554bf75a53480) - [ ] [cv::cuda::compare](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga4d41cd679f4a83862a3de71a6057db54) - - [ ] [cv::cuda::divide](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga124315aa226260841e25cc0b9ea99dc3) - - [ ] [cv::cuda::exp](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gac6e51541d3bb0a7a396128e4d5919b61) - - [ ] [cv::cuda::log](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gaae9c60739e2d1a977b4d3250a0be42ca) + - [X] [cv::cuda::divide](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga124315aa226260841e25cc0b9ea99dc3) + - [X] [cv::cuda::exp](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gac6e51541d3bb0a7a396128e4d5919b61) + - [ ] [cv::cuda::inRange](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gaf611ab6b1d85e951feb6f485b1ed9672) + - [X] [cv::cuda::log](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gaae9c60739e2d1a977b4d3250a0be42ca) - [ ] [cv::cuda::lshift](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gafd072accecb14c9adccdad45e3bf2300) - [ ] [cv::cuda::magnitude](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga3d17f4fcd79d7c01fadd217969009463) - [ ] [cv::cuda::magnitudeSqr](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga7613e382d257e150033d0ce4d6098f6a) - - [ ] [cv::cuda::max](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gadb5dd3d870f10c0866035755b929b1e7) - - [ ] [cv::cuda::min](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga74f0b05a65b3d949c237abb5e6c60867) - - [ ] [cv::cuda::multiply](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga497cc0615bf717e1e615143b56f00591) + - [X] [cv::cuda::max](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#gadb5dd3d870f10c0866035755b929b1e7) + - [X] [cv::cuda::min](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga74f0b05a65b3d949c237abb5e6c60867) + - [X] [cv::cuda::multiply](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga497cc0615bf717e1e615143b56f00591) - [ ] [cv::cuda::phase](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga5b75ec01be06dcd6e27ada09a0d4656a) - [ ] [cv::cuda::polarToCart](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga01516a286a329c303c2db746513dd9df) - [ ] [cv::cuda::pow](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga82d04ef4bcc4dfa9bfbe76488007c6c4) - [ ] [cv::cuda::rshift](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga87af0b66358cc302676f35c1fd56c2ed) - - [ ] [cv::cuda::sqr](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga8aae233da90ce0ffe309ab8004342acb) - - [ ] [cv::cuda::sqrt](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga09303680cb1a5521a922b6d392028d8c) - - [ ] [cv::cuda::subtract](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga6eab60fc250059e2fda79c5636bd067f) + - [X] [cv::cuda::sqr](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga8aae233da90ce0ffe309ab8004342acb) + - [X] [cv::cuda::sqrt](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga09303680cb1a5521a922b6d392028d8c) + - [X] [cv::cuda::subtract](https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html#ga6eab60fc250059e2fda79c5636bd067f) - [ ] **matrix reductions** The following functions still need implementation: - [ ] [cv::cuda::absSum](https://docs.opencv.org/master/d5/de6/group__cudaarithm__reduce.html#ga690fa79ba4426c53f7d2bebf3d37a32a) @@ -352,7 +353,8 @@ Your pull requests will be greatly appreciated! ## Contrib modules list - [ ] alphamat. Alpha Matting -- [ ] aruco. ArUco Marker Detection +- [X] **aruco. ArUco Marker Detection - WORK STARTED** +- [ ] barcode. Barcode detecting and decoding methods - [X] **bgsegm. Improved Background-Foreground Segmentation Methods - WORK STARTED** - [ ] bioinspired. Biologically inspired vision models and derivated tools - [ ] ccalib. Custom Calibration Pattern for 3D reconstruction @@ -372,11 +374,12 @@ Your pull requests will be greatly appreciated! - [ ] intensity_transform. The module brings implementations of intensity transformation algorithms to adjust image contrast. - [ ] line_descriptor. Binary descriptors for lines extracted from an image - [ ] mcc. Macbeth Chart module -- [ ] matlab. MATLAB Bridge - [ ] optflow. Optical Flow Algorithms - [ ] ovis. OGRE 3D Visualiser - [ ] phase_unwrapping. Phase Unwrapping API - [ ] plot. Plot function for Mat data +- [ ] quality. Image Quality Analysis (IQA) API +- [ ] rapid. silhouette based 3D object tracking - [ ] reg. Image Registration - [ ] rgbd. RGB-Depth Processing - [ ] saliency. Saliency API @@ -390,7 +393,8 @@ Your pull requests will be greatly appreciated! - [ ] **tracking. Tracking API - WORK STARTED** - [ ] videostab. Video Stabilization - [ ] viz. 3D Visualizer +- [X] **wechat_qrcode. WeChat QR code detector for detecting and parsing QR code** - [ ] **xfeatures2d. Extra 2D Features Framework - WORK STARTED** -- [ ] ximgproc. Extended Image Processing +- [ ] **ximgproc. Extended Image Processing - WORK STARTED** - [ ] xobjdetect. Extended object detection -- [ ] **xphoto. Additional photo processing algorithms - WORK STARTED** +- [X] **xphoto. Additional photo processing algorithms** diff --git a/vendor/gocv.io/x/gocv/appveyor_build_opencv.cmd b/vendor/gocv.io/x/gocv/appveyor_build_opencv.cmd index af3af44..82d43d7 100644 --- a/vendor/gocv.io/x/gocv/appveyor_build_opencv.cmd +++ b/vendor/gocv.io/x/gocv/appveyor_build_opencv.cmd @@ -3,23 +3,27 @@ if not exist "C:\opencv" mkdir "C:\opencv" if not exist "C:\opencv\build" mkdir "C:\opencv\build" if not exist "C:\opencv\testdata" mkdir "C:\opencv\testdata" -appveyor DownloadFile https://github.com/opencv/opencv/archive/4.5.3.zip -FileName c:\opencv\opencv-4.5.3.zip -7z x c:\opencv\opencv-4.5.3.zip -oc:\opencv -y -del c:\opencv\opencv-4.5.3.zip /q -appveyor DownloadFile https://github.com/opencv/opencv_contrib/archive/4.5.3.zip -FileName c:\opencv\opencv_contrib-4.5.3.zip -7z x c:\opencv\opencv_contrib-4.5.3.zip -oc:\opencv -y -del c:\opencv\opencv_contrib-4.5.3.zip /q +appveyor DownloadFile https://github.com/opencv/opencv/archive/4.6.0.zip -FileName c:\opencv\opencv-4.6.0.zip +7z x c:\opencv\opencv-4.6.0.zip -oc:\opencv -y +del c:\opencv\opencv-4.6.0.zip /q +appveyor DownloadFile https://github.com/opencv/opencv_contrib/archive/4.6.0.zip -FileName c:\opencv\opencv_contrib-4.6.0.zip +7z x c:\opencv\opencv_contrib-4.6.0.zip -oc:\opencv -y +del c:\opencv\opencv_contrib-4.6.0.zip /q cd C:\opencv\build set PATH=C:\Perl\site\bin;C:\Perl\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\7-Zip;C:\Program Files\Microsoft\Web Platform Installer\;C:\Tools\PsTools;C:\Program Files (x86)\CMake\bin;C:\go\bin;C:\Tools\NuGet;C:\Program Files\LLVM\bin;C:\Tools\curl\bin;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\Yarn\bin;C:\Users\appveyor\AppData\Local\Yarn\bin;C:\Program Files\AppVeyor\BuildAgent\ -set PATH=%PATH%;C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin +set PATH=%PATH%;C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin dir C:\opencv -cmake C:\opencv\opencv-4.5.3 -G "MinGW Makefiles" -BC:\opencv\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.5.3\modules -DBUILD_SHARED_LIBS=ON -DWITH_IPP=OFF -DWITH_MSMF=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=OFF -DBUILD_DOCS=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_wechat_qrcode=OFF -DCPU_DISPATCH= -DBUILD_opencv_gapi=OFF -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON -DWITH_OPENCL_D3D11_NV=OFF -DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=int64_t -Wno-dev +cmake C:\opencv\opencv-4.6.0 -G "MinGW Makefiles" -BC:\opencv\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.6.0\modules -DBUILD_SHARED_LIBS=ON -DWITH_IPP=OFF -DWITH_MSMF=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=OFF -DBUILD_DOCS=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_wechat_qrcode=ON -DCPU_DISPATCH= -DBUILD_opencv_gapi=OFF -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON -DWITH_OPENCL_D3D11_NV=OFF -DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=int64_t -DWITH_TBB=ON -Wno-dev mingw32-make -j%NUMBER_OF_PROCESSORS% mingw32-make install appveyor DownloadFile https://raw.githubusercontent.com/opencv/opencv_extra/master/testdata/dnn/bvlc_googlenet.prototxt -FileName C:\opencv\testdata\bvlc_googlenet.prototxt +appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/detect.caffemodel -FileName C:\opencv\testdata\detect.caffemodel +appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/detect.prototxt -FileName C:\opencv\testdata\detect.prototxt +appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/sr.caffemodel -FileName C:\opencv\testdata\sr.caffemodel +appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/sr.prototxt -FileName C:\opencv\testdata\sr.prototxt appveyor DownloadFile http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel -FileName C:\opencv\testdata\bvlc_googlenet.caffemodel appveyor DownloadFile https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip -FileName C:\opencv\testdata\inception5h.zip -appveyor DownloadFile https://github.com/onnx/models/raw/master/vision/classification/inception_and_googlenet/googlenet/model/googlenet-9.onnx -FileName C:\opencv\testdata\googlenet-9.onnx +appveyor DownloadFile https://github.com/onnx/models/raw/main/vision/classification/inception_and_googlenet/googlenet/model/googlenet-9.onnx -FileName C:\opencv\testdata\googlenet-9.onnx 7z x C:\opencv\testdata\inception5h.zip -oC:\opencv\testdata tensorflow_inception_graph.pb -y -rmdir c:\opencv\opencv-4.5.3 /s /q -rmdir c:\opencv\opencv_contrib-4.5.3 /s /q +rmdir c:\opencv\opencv-4.6.0 /s /q +rmdir c:\opencv\opencv_contrib-4.6.0 /s /q diff --git a/vendor/gocv.io/x/gocv/calib3d.cpp b/vendor/gocv.io/x/gocv/calib3d.cpp index 86bfb4a..b8b262a 100644 --- a/vendor/gocv.io/x/gocv/calib3d.cpp +++ b/vendor/gocv.io/x/gocv/calib3d.cpp @@ -37,6 +37,10 @@ Mat GetOptimalNewCameraMatrixWithParams(Mat cameraMatrix,Mat distCoeffs,Size siz return mat; } +double CalibrateCamera(Points3fVector objectPoints, Points2fVector imagePoints, Size imageSize, Mat cameraMatrix, Mat distCoeffs, Mat rvecs, Mat tvecs, int flag) { + return cv::calibrateCamera(*objectPoints, *imagePoints, cv::Size(imageSize.width, imageSize.height), *cameraMatrix, *distCoeffs, *rvecs, *tvecs, flag); +} + void Undistort(Mat src, Mat dst, Mat cameraMatrix, Mat distCoeffs, Mat newCameraMatrix) { cv::undistort(*src, *dst, *cameraMatrix, *distCoeffs, *newCameraMatrix); } @@ -50,6 +54,16 @@ bool FindChessboardCorners(Mat image, Size patternSize, Mat corners, int flags) return cv::findChessboardCorners(*image, sz, *corners, flags); } +bool FindChessboardCornersSB(Mat image, Size patternSize, Mat corners, int flags) { + cv::Size sz(patternSize.width, patternSize.height); + return cv::findChessboardCornersSB(*image, sz, *corners, flags); +} + +bool FindChessboardCornersSBWithMeta(Mat image, Size patternSize, Mat corners, int flags, Mat meta) { + cv::Size sz(patternSize.width, patternSize.height); + return cv::findChessboardCornersSB(*image, sz, *corners, flags, *meta); +} + void DrawChessboardCorners(Mat image, Size patternSize, Mat corners, bool patternWasFound) { cv::Size sz(patternSize.width, patternSize.height); cv::drawChessboardCorners(*image, sz, *corners, patternWasFound); @@ -58,3 +72,11 @@ void DrawChessboardCorners(Mat image, Size patternSize, Mat corners, bool patter Mat EstimateAffinePartial2D(Point2fVector from, Point2fVector to) { return new cv::Mat(cv::estimateAffinePartial2D(*from, *to)); } + +Mat EstimateAffine2D(Point2fVector from, Point2fVector to) { + return new cv::Mat(cv::estimateAffine2D(*from, *to)); +} + +Mat EstimateAffine2DWithParams(Point2fVector from, Point2fVector to, Mat inliers, int method, double ransacReprojThreshold, size_t maxIters, double confidence, size_t refineIters) { + return new cv::Mat(cv::estimateAffine2D(*from, *to, *inliers, method, ransacReprojThreshold, maxIters, confidence, refineIters)); +} diff --git a/vendor/gocv.io/x/gocv/calib3d.go b/vendor/gocv.io/x/gocv/calib3d.go index 236ff01..48e3c07 100644 --- a/vendor/gocv.io/x/gocv/calib3d.go +++ b/vendor/gocv.io/x/gocv/calib3d.go @@ -5,7 +5,9 @@ package gocv #include "calib3d.h" */ import "C" -import "image" +import ( + "image" +) // Calib is a wrapper around OpenCV's "Camera Calibration and 3D Reconstruction" of // Fisheye Camera model @@ -122,6 +124,22 @@ func GetOptimalNewCameraMatrixWithParams(cameraMatrix Mat, distCoeffs Mat, image return newMat(C.GetOptimalNewCameraMatrixWithParams(cameraMatrix.Ptr(), distCoeffs.Ptr(), sz, C.double(alpha), newSize, &rt, C.bool(centerPrincipalPoint))), toRect(rt) } +// CalibrateCamera finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern. +// +// For further details, please see: +// https://docs.opencv.org/master/d9/d0c/group__calib3d.html#ga3207604e4b1a1758aa66acb6ed5aa65d +// +func CalibrateCamera(objectPoints Points3fVector, imagePoints Points2fVector, imageSize image.Point, + cameraMatrix *Mat, distCoeffs *Mat, rvecs *Mat, tvecs *Mat, calibFlag CalibFlag) float64 { + sz := C.struct_Size{ + width: C.int(imageSize.X), + height: C.int(imageSize.Y), + } + + res := C.CalibrateCamera(objectPoints.p, imagePoints.p, sz, cameraMatrix.p, distCoeffs.p, rvecs.p, tvecs.p, C.int(calibFlag)) + return float64(res) +} + func Undistort(src Mat, dst *Mat, cameraMatrix Mat, distCoeffs Mat, newCameraMatrix Mat) { C.Undistort(src.Ptr(), dst.Ptr(), cameraMatrix.Ptr(), distCoeffs.Ptr(), newCameraMatrix.Ptr()) } @@ -149,9 +167,13 @@ const ( CalibCBFilterQuads // Run a fast check on the image that looks for chessboard corners, and shortcut the call if none is found. This can drastically speed up the call in the degenerate condition when no chessboard is observed. CalibCBFastCheck + // Run an exhaustive search to improve detection rate. CalibCBExhaustive + // Up sample input image to improve sub-pixel accuracy due to aliasing effects. CalibCBAccuracy + // The detected pattern is allowed to be larger than patternSize (see description). CalibCBLarger + // The detected pattern must have a marker (see description). This should be used if an accurate camera calibration is required. CalibCBMarker ) @@ -168,6 +190,32 @@ func FindChessboardCorners(image Mat, patternSize image.Point, corners *Mat, fla return bool(C.FindChessboardCorners(image.Ptr(), sz, corners.Ptr(), C.int(flags))) } +// FindChessboardCorners finds the positions of internal corners of the chessboard using a sector based approach. +// +// For further details, please see: +// https://docs.opencv.org/master/d9/d0c/group__calib3d.html#gadc5bcb05cb21cf1e50963df26986d7c9 +// +func FindChessboardCornersSB(image Mat, patternSize image.Point, corners *Mat, flags CalibCBFlag) bool { + sz := C.struct_Size{ + width: C.int(patternSize.X), + height: C.int(patternSize.Y), + } + return bool(C.FindChessboardCornersSB(image.Ptr(), sz, corners.Ptr(), C.int(flags))) +} + +// FindChessboardCornersSBWithMeta finds the positions of internal corners of the chessboard using a sector based approach. +// +// For further details, please see: +// https://docs.opencv.org/master/d9/d0c/group__calib3d.html#ga93efa9b0aa890de240ca32b11253dd4a +// +func FindChessboardCornersSBWithMeta(image Mat, patternSize image.Point, corners *Mat, flags CalibCBFlag, meta *Mat) bool { + sz := C.struct_Size{ + width: C.int(patternSize.X), + height: C.int(patternSize.Y), + } + return bool(C.FindChessboardCornersSBWithMeta(image.Ptr(), sz, corners.Ptr(), C.int(flags), meta.Ptr())) +} + // DrawChessboardCorners renders the detected chessboard corners. // // For further details, please see: @@ -189,3 +237,20 @@ func DrawChessboardCorners(image *Mat, patternSize image.Point, corners Mat, pat func EstimateAffinePartial2D(from, to Point2fVector) Mat { return newMat(C.EstimateAffinePartial2D(from.p, to.p)) } + +// EstimateAffine2D Computes an optimal affine transformation between two 2D point sets. +// +// For further details, please see: +// https://docs.opencv.org/4.0.0/d9/d0c/group__calib3d.html#ga27865b1d26bac9ce91efaee83e94d4dd +func EstimateAffine2D(from, to Point2fVector) Mat { + return newMat(C.EstimateAffine2D(from.p, to.p)) +} + +// EstimateAffine2DWithParams Computes an optimal affine transformation between two 2D point sets +// with additional optional parameters. +// +// For further details, please see: +// https://docs.opencv.org/4.0.0/d9/d0c/group__calib3d.html#ga27865b1d26bac9ce91efaee83e94d4dd +func EstimateAffine2DWithParams(from Point2fVector, to Point2fVector, inliers Mat, method int, ransacReprojThreshold float64, maxIters uint, confidence float64, refineIters uint) Mat { + return newMat(C.EstimateAffine2DWithParams(from.p, to.p, inliers.p, C.int(method), C.double(ransacReprojThreshold), C.size_t(maxIters), C.double(confidence), C.size_t(refineIters))) +} diff --git a/vendor/gocv.io/x/gocv/calib3d.h b/vendor/gocv.io/x/gocv/calib3d.h index d0cf111..f3d19b9 100644 --- a/vendor/gocv.io/x/gocv/calib3d.h +++ b/vendor/gocv.io/x/gocv/calib3d.h @@ -19,13 +19,18 @@ void Fisheye_EstimateNewCameraMatrixForUndistortRectify(Mat k, Mat d, Size imgSi void InitUndistortRectifyMap(Mat cameraMatrix,Mat distCoeffs,Mat r,Mat newCameraMatrix,Size size,int m1type,Mat map1,Mat map2); Mat GetOptimalNewCameraMatrixWithParams(Mat cameraMatrix,Mat distCoeffs,Size size,double alpha,Size newImgSize,Rect* validPixROI,bool centerPrincipalPoint); +double CalibrateCamera(Points3fVector objectPoints, Points2fVector imagePoints, Size imageSize, Mat cameraMatrix, Mat distCoeffs, Mat rvecs, Mat tvecs, int flag); void Undistort(Mat src, Mat dst, Mat cameraMatrix, Mat distCoeffs, Mat newCameraMatrix); void UndistortPoints(Mat distorted, Mat undistorted, Mat k, Mat d, Mat r, Mat p); bool FindChessboardCorners(Mat image, Size patternSize, Mat corners, int flags); +bool FindChessboardCornersSB(Mat image, Size patternSize, Mat corners, int flags); +bool FindChessboardCornersSBWithMeta(Mat image, Size patternSize, Mat corners, int flags, Mat meta); void DrawChessboardCorners(Mat image, Size patternSize, Mat corners, bool patternWasFound); Mat EstimateAffinePartial2D(Point2fVector from, Point2fVector to); +Mat EstimateAffine2D(Point2fVector from, Point2fVector to); +Mat EstimateAffine2DWithParams(Point2fVector from, Point2fVector to, Mat inliers, int method, double ransacReprojThreshold, size_t maxIters, double confidence, size_t refineIters); #ifdef __cplusplus } #endif -#endif //_OPENCV3_CALIB_H \ No newline at end of file +#endif //_OPENCV3_CALIB_H diff --git a/vendor/gocv.io/x/gocv/cgo.go b/vendor/gocv.io/x/gocv/cgo.go index 02453ed..e314c52 100644 --- a/vendor/gocv.io/x/gocv/cgo.go +++ b/vendor/gocv.io/x/gocv/cgo.go @@ -1,3 +1,4 @@ +//go:build !customenv && !static // +build !customenv,!static package gocv @@ -8,6 +9,6 @@ package gocv #cgo !windows pkg-config: opencv4 #cgo CXXFLAGS: --std=c++11 #cgo windows CPPFLAGS: -IC:/opencv/build/install/include -#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/lib -lopencv_core453 -lopencv_face453 -lopencv_videoio453 -lopencv_imgproc453 -lopencv_highgui453 -lopencv_imgcodecs453 -lopencv_objdetect453 -lopencv_features2d453 -lopencv_video453 -lopencv_dnn453 -lopencv_xfeatures2d453 -lopencv_plot453 -lopencv_tracking453 -lopencv_img_hash453 -lopencv_calib3d453 -lopencv_bgsegm453 -lopencv_photo453 +#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/lib -lopencv_core460 -lopencv_face460 -lopencv_videoio460 -lopencv_imgproc460 -lopencv_highgui460 -lopencv_imgcodecs460 -lopencv_objdetect460 -lopencv_features2d460 -lopencv_video460 -lopencv_dnn460 -lopencv_xfeatures2d460 -lopencv_plot460 -lopencv_tracking460 -lopencv_img_hash460 -lopencv_calib3d460 -lopencv_bgsegm460 -lopencv_photo460 -lopencv_aruco460 -lopencv_wechat_qrcode460 -lopencv_ximgproc460 */ import "C" diff --git a/vendor/gocv.io/x/gocv/cgo_static.go b/vendor/gocv.io/x/gocv/cgo_static.go index 6b88f13..33eaf81 100644 --- a/vendor/gocv.io/x/gocv/cgo_static.go +++ b/vendor/gocv.io/x/gocv/cgo_static.go @@ -1,12 +1,15 @@ -// +build !customenv,static,!windows +//go:build !customenv && static +// +build !customenv,static package gocv -// Changes here should be mirrored in contrib/cgo.go and cuda/cgo.go. +// Changes here should be mirrored in contrib/cgo_static.go and cuda/cgo_static.go. /* #cgo CXXFLAGS: --std=c++11 -#cgo CPPFLAGS: -I/usr/local/include -I/usr/local/include/opencv4 -#cgo LDFLAGS: -L/usr/local/lib -L/usr/local/lib/opencv4/3rdparty -lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_highgui -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_video -lopencv_videoio -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core -littnotify -llibprotobuf -lIlmImf -lquirc -lippiw -lippicv -lade -lz -ljpeg -ldl -lm -lpthread -lrt -lquadmath +#cgo !windows CPPFLAGS: -I/usr/local/include -I/usr/local/include/opencv4 +#cgo !windows LDFLAGS: -L/usr/local/lib -L/usr/local/lib/opencv4/3rdparty -lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_highgui -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_video -lopencv_videoio -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_wechat_qrcode -lopencv_photo -lopencv_imgproc -lopencv_core -littnotify -llibprotobuf -lIlmImf -lquirc -lippiw -lippicv -lade -lz -ljpeg -ldl -lm -lpthread -lrt -lquadmath +#cgo windows CPPFLAGS: -IC:/opencv/build/install/include +#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/staticlib -lopencv_stereo460 -lopencv_tracking460 -lopencv_superres460 -lopencv_stitching460 -lopencv_optflow460 -lopencv_gapi460 -lopencv_face460 -lopencv_dpm460 -lopencv_dnn_objdetect460 -lopencv_ccalib460 -lopencv_bioinspired460 -lopencv_bgsegm460 -lopencv_aruco460 -lopencv_xobjdetect460 -lopencv_ximgproc460 -lopencv_xfeatures2d460 -lopencv_videostab460 -lopencv_video460 -lopencv_structured_light460 -lopencv_shape460 -lopencv_rgbd460 -lopencv_rapid460 -lopencv_objdetect460 -lopencv_mcc460 -lopencv_highgui460 -lopencv_datasets460 -lopencv_calib3d460 -lopencv_videoio460 -lopencv_text460 -lopencv_line_descriptor460 -lopencv_imgcodecs460 -lopencv_img_hash460 -lopencv_hfs460 -lopencv_fuzzy460 -lopencv_features2d460 -lopencv_dnn_superres460 -lopencv_dnn460 -lopencv_xphoto460 -lopencv_wechat_qrcode460 -lopencv_surface_matching460 -lopencv_reg460 -lopencv_quality460 -lopencv_plot460 -lopencv_photo460 -lopencv_phase_unwrapping460 -lopencv_ml460 -lopencv_intensity_transform460 -lopencv_imgproc460 -lopencv_flann460 -lopencv_core460 -lade -lquirc -llibprotobuf -lIlmImf -llibpng -llibopenjp2 -llibwebp -llibtiff -llibjpeg-turbo -lzlib -lkernel32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -luser32 */ import "C" diff --git a/vendor/gocv.io/x/gocv/core.cpp b/vendor/gocv.io/x/gocv/core.cpp index 430fefc..e614c61 100644 --- a/vendor/gocv.io/x/gocv/core.cpp +++ b/vendor/gocv.io/x/gocv/core.cpp @@ -59,18 +59,21 @@ Mat Mat_NewWithSizesFromBytes(IntVector sizes, int type, struct ByteArray buf) { } Mat Eye(int rows, int cols, int type) { - cv::Mat temp = cv::Mat::eye(rows, cols, type); - return new cv::Mat(rows, cols, type, temp.data); + cv::Mat* mat = new cv::Mat(rows, cols, type); + *mat = cv::Mat::eye(rows, cols, type); + return mat; } Mat Zeros(int rows, int cols, int type) { - cv::Mat temp = cv::Mat::zeros(rows, cols, type); - return new cv::Mat(rows, cols, type, temp.data); + cv::Mat* mat = new cv::Mat(rows, cols, type); + *mat = cv::Mat::zeros(rows, cols, type); + return mat; } Mat Ones(int rows, int cols, int type) { - cv::Mat temp = cv::Mat::ones(rows, cols, type); - return new cv::Mat(rows, cols, type, temp.data); + cv::Mat* mat = new cv::Mat(rows, cols, type); + *mat = cv::Mat::ones(rows, cols, type); + return mat; } Mat Mat_FromPtr(Mat m, int rows, int cols, int type, int prow, int pcol) { @@ -207,6 +210,10 @@ int Mat_Total(Mat m) { return m->total(); } +int Mat_ElemSize(Mat m){ + return m->elemSize(); +} + void Mat_Size(Mat m, IntVector* res) { cv::MatSize ms(m->size); int* ids = new int[ms.dims()]; @@ -961,6 +968,7 @@ void Point2fVector_Close(Point2fVector pv) { delete pv; } + void IntVector_Close(struct IntVector ivec) { delete[] ivec.val; } @@ -1026,3 +1034,114 @@ size_t StdByteVectorLen(void *data) { uint8_t* StdByteVectorData(void *data) { return reinterpret_cast