diff --git a/.gitignore b/.gitignore
index 81d776231a..646cb4bec1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,3 +34,4 @@ dist
 vendor/
 /docker/sandbox-bundled/images/tar
 rsts/_tags/
+**/bin/
\ No newline at end of file
diff --git a/cmd/single/start.go b/cmd/single/start.go
index 5fc20b18d5..90d86684bd 100644
--- a/cmd/single/start.go
+++ b/cmd/single/start.go
@@ -3,6 +3,8 @@ package single
 import (
 	"context"
 	"net/http"
+	metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
+	ctrlWebhook "sigs.k8s.io/controller-runtime/pkg/webhook"
 
 	datacatalogConfig "github.com/flyteorg/flyte/datacatalog/pkg/config"
 	datacatalogRepo "github.com/flyteorg/flyte/datacatalog/pkg/repositories"
@@ -105,18 +107,30 @@ func startPropeller(ctx context.Context, cfg Propeller) error {
 	propellerCfg := propellerConfig.GetConfig()
 	propellerScope := promutils.NewScope(propellerConfig.GetConfig().MetricsPrefix).NewSubScope("propeller").NewSubScope(propellerCfg.LimitNamespace)
 	limitNamespace := ""
+	var namespaceConfigs map[string]cache.Config
 	if propellerCfg.LimitNamespace != defaultNamespace {
 		limitNamespace = propellerCfg.LimitNamespace
+		namespaceConfigs = map[string]cache.Config{
+			limitNamespace: {},
+		}
 	}
 
 	options := manager.Options{
-		Namespace:  limitNamespace,
-		SyncPeriod: &propellerCfg.DownstreamEval.Duration,
-		NewClient: func(cache cache.Cache, config *rest.Config, options client.Options, uncachedObjects ...client.Object) (client.Client, error) {
-			return executors.NewFallbackClientBuilder(propellerScope.NewSubScope("kube")).Build(cache, config, options)
+		Cache: cache.Options{
+			SyncPeriod:        &propellerCfg.DownstreamEval.Duration,
+			DefaultNamespaces: namespaceConfigs,
+		},
+		NewClient: func(config *rest.Config, options client.Options) (client.Client, error) {
+			return executors.NewFallbackClientBuilder(propellerScope.NewSubScope("kube")).Build(nil, config, options)
+		},
+		Metrics: metricsserver.Options{
+			// Disable metrics serving
+			BindAddress: "0",
 		},
-		CertDir: webhookConfig.GetConfig().CertDir,
-		Port:    webhookConfig.GetConfig().ListenPort,
+		WebhookServer: ctrlWebhook.NewServer(ctrlWebhook.Options{
+			CertDir: webhookConfig.GetConfig().CertDir,
+			Port:    webhookConfig.GetConfig().ListenPort,
+		}),
 	}
 
 	mgr, err := propellerEntrypoint.CreateControllerManager(ctx, propellerCfg, options)
diff --git a/datacatalog/go.mod b/datacatalog/go.mod
index f33c31e8cb..f350b1e249 100644
--- a/datacatalog/go.mod
+++ b/datacatalog/go.mod
@@ -46,7 +46,7 @@ require (
 	github.com/flyteorg/stow v0.3.7 // indirect
 	github.com/fsnotify/fsnotify v1.5.1 // indirect
 	github.com/ghodss/yaml v1.0.0 // indirect
-	github.com/go-logr/logr v0.4.0 // indirect
+	github.com/go-logr/logr v1.2.4 // indirect
 	github.com/golang-jwt/jwt/v4 v4.4.1 // indirect
 	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
 	github.com/google/go-cmp v0.5.9 // indirect
@@ -87,12 +87,12 @@ require (
 	github.com/stretchr/objx v0.5.0 // indirect
 	github.com/subosito/gotenv v1.2.0 // indirect
 	go.opencensus.io v0.24.0 // indirect
-	golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f // indirect
-	golang.org/x/net v0.9.0 // indirect
-	golang.org/x/oauth2 v0.7.0 // indirect
-	golang.org/x/sys v0.7.0 // indirect
-	golang.org/x/text v0.9.0 // indirect
-	golang.org/x/time v0.1.0 // indirect
+	golang.org/x/crypto v0.11.0 // indirect
+	golang.org/x/net v0.13.0 // indirect
+	golang.org/x/oauth2 v0.8.0 // indirect
+	golang.org/x/sys v0.10.0 // indirect
+	golang.org/x/text v0.11.0 // indirect
+	golang.org/x/time v0.3.0 // indirect
 	golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
 	google.golang.org/api v0.114.0 // indirect
 	google.golang.org/appengine v1.6.7 // indirect
@@ -101,9 +101,10 @@ require (
 	gopkg.in/ini.v1 v1.66.4 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
-	k8s.io/apimachinery v0.20.2 // indirect
+	k8s.io/apimachinery v0.28.2 // indirect
 	k8s.io/client-go v0.0.0-20210217172142-7279fc64d847 // indirect
-	k8s.io/klog/v2 v2.5.0 // indirect
+	k8s.io/klog/v2 v2.100.1 // indirect
+	k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect
 )
 
 replace (
@@ -113,4 +114,11 @@ replace (
 	github.com/flyteorg/flyte/flyteplugins => ../flyteplugins
 	github.com/flyteorg/flyte/flytepropeller => ../flytepropeller
 	github.com/flyteorg/flyte/flytestdlib => ../flytestdlib
+
+	k8s.io/api => k8s.io/api v0.28.2
+	k8s.io/apimachinery => k8s.io/apimachinery v0.28.2
+	k8s.io/client-go => k8s.io/client-go v0.28.2
+	k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f
+	sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.16.2
+
 )
diff --git a/datacatalog/go.sum b/datacatalog/go.sum
index 672f959a95..1c66ba7844 100644
--- a/datacatalog/go.sum
+++ b/datacatalog/go.sum
@@ -58,10 +58,8 @@ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0 h1:0nJeKDmB7a1a8RDMj
 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0/go.mod h1:mbwxKc/fW+IkF0GG591MuXw0KuEQBDkeRoZ9vmVJPxg=
 github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
 github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw=
 github.com/Azure/go-autorest/autorest v0.11.27 h1:F3R3q42aWytozkV8ihzcgMO4OA4cuqr3bNlsEuF6//A=
 github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U=
-github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
 github.com/Azure/go-autorest/autorest/adal v0.9.18 h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ=
 github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ=
 github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
@@ -70,7 +68,6 @@ github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935
 github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw=
 github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU=
 github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
-github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
 github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=
 github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
 github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
@@ -80,12 +77,9 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=
 github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
-github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
 github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
 github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
-github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 github.com/Selvatico/go-mocket v1.0.7 h1:sXuFMnMfVL9b/Os8rGXPgbOFbr4HJm8aHsulD/uMTUk=
 github.com/Selvatico/go-mocket v1.0.7/go.mod h1:4gO2v+uQmsL+jzQgLANy3tyEFzaEzHlymVbZ3GP2Oes=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@@ -94,7 +88,6 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF
 github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
 github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
-github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 github.com/aws/aws-sdk-go v1.44.2 h1:5VBk5r06bgxgRKVaUtm1/4NT/rtrnH2E4cnAYv5zgQc=
 github.com/aws/aws-sdk-go v1.44.2/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
@@ -129,27 +122,18 @@ 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/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c=
 github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko=
-github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
-github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
-github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
-github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
 github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
 github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
 github.com/flyteorg/stow v0.3.7 h1:Cx7j8/Ux6+toD5hp5fy++927V+yAcAttDeQAlUD/864=
 github.com/flyteorg/stow v0.3.7/go.mod h1:5dfBitPM004dwaZdoVylVjxFT4GWAgI0ghAndhNUzCo=
-github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
-github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
 github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
 github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
-github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
@@ -161,24 +145,14 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb
 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
 github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
-github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
-github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
-github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
-github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
-github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
-github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
-github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
-github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
-github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
+github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
+github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
 github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0=
 github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
-github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
 github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
 github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
@@ -233,7 +207,6 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
 github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
 github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
 github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
 github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
@@ -250,7 +223,6 @@ github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLe
 github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
 github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -260,18 +232,13 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
 github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A=
 github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI=
-github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
 github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
-github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
-github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
-github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
 github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo=
@@ -341,8 +308,6 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1
 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
 github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
-github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
-github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
 github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -350,10 +315,8 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv
 github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -365,8 +328,6 @@ github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8=
 github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
 github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
-github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
 github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
@@ -381,32 +342,22 @@ github.com/mattn/go-sqlite3 v1.14.0 h1:mLyGNKR8+Vv9CAU7PphKa2hkEqxxhn8i32J6FPj1/
 github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus=
 github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
 github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8=
-github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
 github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
 github.com/ncw/swift v1.0.53 h1:luHjjTNtekIEvHg5KdAFIBaH7bWfNkefwFnpDffSIks=
 github.com/ncw/swift v1.0.53/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
-github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
-github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM=
 github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8 h1:dy81yyLYJDwMTifq24Oi/IslOslRrDSb3jwDggjz3Z0=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
-github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI=
 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -438,6 +389,7 @@ github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1
 github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
 github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
 github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
 github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
 github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
@@ -454,7 +406,6 @@ github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM
 github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ=
 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
-github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
 github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=
 github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
 github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA=
@@ -463,7 +414,6 @@ github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
 github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
 github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
 github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
-github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
 github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/spf13/viper v1.11.0 h1:7OX/1FS6n7jHD1zGrZTM7WtY13ZELRyosK4k93oPr44=
@@ -478,7 +428,6 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
@@ -516,11 +465,9 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
 golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
 golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
@@ -528,8 +475,8 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f h1:OeJjE6G4dgCY4PIXvIRQbE8+RX+uXZyGhUy/ksMGJoc=
-golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
+golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -566,7 +513,6 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -580,7 +526,6 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
 golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -605,8 +550,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
 golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
-golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
-golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
+golang.org/x/net v0.13.0 h1:Nvo8UFsZ8X3BhAC9699Z1j7XQ3rsZnUUm7jfBEk1ueY=
+golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -617,8 +562,8 @@ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ
 golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g=
-golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
+golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
+golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -631,7 +576,6 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -642,12 +586,10 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -670,7 +612,6 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -685,8 +626,8 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
-golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
+golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -698,16 +639,14 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
-golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
+golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA=
-golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
+golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
@@ -718,7 +657,6 @@ golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBn
 golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -750,7 +688,6 @@ golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roY
 golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
@@ -759,7 +696,6 @@ golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4f
 golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
 golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -875,12 +811,9 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8
 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
-gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
 gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=
-gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
 gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4=
 gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
 gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -907,23 +840,14 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-k8s.io/api v0.0.0-20210217171935-8e2decd92398/go.mod h1:60tmSUpHxGPFerNHbo/ayI2lKxvtrhbxFyXuEIWJd78=
-k8s.io/apimachinery v0.0.0-20210217011835-527a61b4dffe/go.mod h1:Z7ps/g0rjlTeMstYrMOUttJfT2Gg34DEaG/f2PYLCWY=
-k8s.io/apimachinery v0.20.2 h1:hFx6Sbt1oG0n6DZ+g4bFt5f6BoMkOjKWsQFu077M3Vg=
-k8s.io/apimachinery v0.20.2/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
-k8s.io/client-go v0.0.0-20210217172142-7279fc64d847 h1:d+LBRNY3c/KGp7lDblRlUJkayx4Vla7WUTIazoGMdYo=
-k8s.io/client-go v0.0.0-20210217172142-7279fc64d847/go.mod h1:q0EaghmVye2uui19vxSZ2NG6ssgUWgjudO6vrwXneSI=
-k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
-k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
-k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
-k8s.io/klog/v2 v2.5.0 h1:8mOnjf1RmUPW6KRqQCfYSZq/K20Unmp3IhuZUhxl8KI=
-k8s.io/klog/v2 v2.5.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
-k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM=
-k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
+k8s.io/apimachinery v0.28.2 h1:KCOJLrc6gu+wV1BYgwik4AF4vXOlVJPdiqn0yAWWwXQ=
+k8s.io/apimachinery v0.28.2/go.mod h1:RdzF87y/ngqk9H4z3EL2Rppv5jj95vGS/HaFXrLDApU=
+k8s.io/client-go v0.28.2 h1:DNoYI1vGq0slMBN/SWKMZMw0Rq+0EQW6/AK4v9+3VeY=
+k8s.io/client-go v0.28.2/go.mod h1:sMkApowspLuc7omj1FOSUxSoqjr+d5Q0Yc0LOFnYFJY=
+k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
+k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
-sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
diff --git a/flyteadmin/go.mod b/flyteadmin/go.mod
index 72806a06af..dd288ad171 100644
--- a/flyteadmin/go.mod
+++ b/flyteadmin/go.mod
@@ -4,15 +4,15 @@ go 1.19
 
 require (
 	cloud.google.com/go/iam v0.13.0
-	cloud.google.com/go/storage v1.28.1
+	cloud.google.com/go/storage v1.29.0
 	github.com/NYTimes/gizmo v1.3.6
 	github.com/Selvatico/go-mocket v1.0.7
 	github.com/aws/aws-sdk-go v1.44.2
-	github.com/benbjohnson/clock v1.1.0
+	github.com/benbjohnson/clock v1.3.0
 	github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.8.0
 	github.com/cloudevents/sdk-go/v2 v2.8.0
 	github.com/coreos/go-oidc v2.2.1+incompatible
-	github.com/evanphx/json-patch v4.12.0+incompatible
+	github.com/evanphx/json-patch v5.6.0+incompatible
 	github.com/flyteorg/flyte/flyteidl v0.0.0-00010101000000-000000000000
 	github.com/flyteorg/flyte/flyteplugins v0.0.0-00010101000000-000000000000
 	github.com/flyteorg/flyte/flytepropeller v0.0.0-00010101000000-000000000000
@@ -21,7 +21,7 @@ require (
 	github.com/ghodss/yaml v1.0.0
 	github.com/go-gormigrate/gormigrate/v2 v2.0.0
 	github.com/gogo/protobuf v1.3.2
-	github.com/golang-jwt/jwt/v4 v4.4.1
+	github.com/golang-jwt/jwt/v4 v4.5.0
 	github.com/golang/glog v1.1.0
 	github.com/golang/protobuf v1.5.3
 	github.com/google/uuid v1.3.0
@@ -39,26 +39,26 @@ require (
 	github.com/ory/fosite v0.42.2
 	github.com/ory/x v0.0.214
 	github.com/pkg/errors v0.9.1
-	github.com/prometheus/client_golang v1.12.1
-	github.com/prometheus/client_model v0.2.0
+	github.com/prometheus/client_golang v1.16.0
+	github.com/prometheus/client_model v0.4.0
 	github.com/robfig/cron/v3 v3.0.0
 	github.com/sendgrid/sendgrid-go v3.10.0+incompatible
-	github.com/spf13/cobra v1.4.0
+	github.com/spf13/cobra v1.7.0
 	github.com/spf13/pflag v1.0.5
 	github.com/stretchr/testify v1.8.4
-	golang.org/x/oauth2 v0.7.0
+	golang.org/x/oauth2 v0.8.0
 	golang.org/x/time v0.3.0
 	google.golang.org/api v0.114.0
-	google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1
+	google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54
 	google.golang.org/grpc v1.56.1
 	google.golang.org/protobuf v1.30.0
 	gorm.io/driver/mysql v1.4.4
 	gorm.io/driver/postgres v1.4.5
 	gorm.io/driver/sqlite v1.1.1
 	gorm.io/gorm v1.24.1-0.20221019064659-5dd2bb482755
-	k8s.io/api v0.24.1
-	k8s.io/apimachinery v0.24.1
-	k8s.io/client-go v0.24.1
+	k8s.io/api v0.28.2
+	k8s.io/apimachinery v0.28.2
+	k8s.io/client-go v0.28.1
 	sigs.k8s.io/controller-runtime v0.12.1
 )
 
@@ -92,12 +92,13 @@ require (
 	github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect
 	github.com/eapache/queue v1.1.0 // indirect
 	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
+	github.com/evanphx/json-patch/v5 v5.6.0 // indirect
 	github.com/fatih/color v1.13.0 // indirect
-	github.com/felixge/httpsnoop v1.0.1 // indirect
-	github.com/fsnotify/fsnotify v1.5.1 // indirect
-	github.com/go-logr/logr v1.2.3 // indirect
+	github.com/felixge/httpsnoop v1.0.3 // indirect
+	github.com/fsnotify/fsnotify v1.6.0 // indirect
+	github.com/go-logr/logr v1.2.4 // indirect
 	github.com/go-openapi/jsonpointer v0.19.6 // indirect
-	github.com/go-openapi/jsonreference v0.20.1 // indirect
+	github.com/go-openapi/jsonreference v0.20.2 // indirect
 	github.com/go-openapi/swag v0.22.3 // indirect
 	github.com/go-sql-driver/mysql v1.7.0 // indirect
 	github.com/go-test/deep v1.0.7 // indirect
@@ -105,7 +106,7 @@ require (
 	github.com/gofrs/uuid v4.2.0+incompatible // indirect
 	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
 	github.com/golang/snappy v0.0.3 // indirect
-	github.com/google/gnostic v0.5.7-v3refs // indirect
+	github.com/google/gnostic-models v0.6.8 // indirect
 	github.com/google/go-cmp v0.5.9 // indirect
 	github.com/google/gofuzz v1.2.0 // indirect
 	github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
@@ -113,7 +114,7 @@ require (
 	github.com/hashicorp/go-uuid v1.0.2 // indirect
 	github.com/hashicorp/golang-lru v0.5.4 // indirect
 	github.com/hashicorp/hcl v1.0.0 // indirect
-	github.com/inconshreveable/mousetrap v1.0.0 // indirect
+	github.com/inconshreveable/mousetrap v1.1.0 // indirect
 	github.com/jackc/chunkreader/v2 v2.0.1 // indirect
 	github.com/jackc/pgio v1.0.0 // indirect
 	github.com/jackc/pgpassfile v1.0.0 // indirect
@@ -136,10 +137,10 @@ require (
 	github.com/lib/pq v1.10.4 // indirect
 	github.com/mailru/easyjson v0.7.7 // indirect
 	github.com/mattn/go-colorable v0.1.12 // indirect
-	github.com/mattn/go-isatty v0.0.14 // indirect
+	github.com/mattn/go-isatty v0.0.16 // indirect
 	github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect
 	github.com/mattn/goveralls v0.0.6 // indirect
-	github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
+	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
 	github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
@@ -154,10 +155,10 @@ require (
 	github.com/pierrec/lz4 v2.5.2+incompatible // indirect
 	github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 // indirect
 	github.com/pmezard/go-difflib v1.0.0 // indirect
-	github.com/prometheus/procfs v0.7.3 // indirect
+	github.com/prometheus/procfs v0.10.1 // indirect
 	github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect
 	github.com/sendgrid/rest v2.6.8+incompatible // indirect
-	github.com/sirupsen/logrus v1.8.1 // indirect
+	github.com/sirupsen/logrus v1.9.0 // indirect
 	github.com/spf13/afero v1.9.2 // indirect
 	github.com/spf13/cast v1.4.1 // indirect
 	github.com/spf13/jwalterweatherman v1.1.0 // indirect
@@ -175,6 +176,8 @@ require (
 	golang.org/x/tools v0.13.0 // indirect
 	golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
 	google.golang.org/appengine v1.6.7 // indirect
+	google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
 	gopkg.in/ini.v1 v1.66.4 // indirect
 	gopkg.in/jcmturner/aescts.v1 v1.0.1 // indirect
@@ -184,7 +187,7 @@ require (
 	gopkg.in/square/go-jose.v2 v2.5.2-0.20210529014059-a5c7eec3c614 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
-	k8s.io/apiextensions-apiserver v0.24.1 // indirect
+	k8s.io/apiextensions-apiserver v0.28.0 // indirect
 	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
 	sigs.k8s.io/yaml v1.3.0 // indirect
 )
@@ -196,13 +199,12 @@ require (
 	github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.8.0
 	github.com/imdario/mergo v0.3.13 // indirect
 	github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 // indirect
-	github.com/prometheus/common v0.32.1 // indirect
-	go.uber.org/atomic v1.7.0 // indirect
-	go.uber.org/multierr v1.6.0 // indirect
-	go.uber.org/zap v1.19.1 // indirect
-	k8s.io/klog/v2 v2.90.1 // indirect
-	k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
-	k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
+	github.com/prometheus/common v0.44.0 // indirect
+	go.uber.org/multierr v1.11.0 // indirect
+	go.uber.org/zap v1.25.0 // indirect
+	k8s.io/klog/v2 v2.100.1 // indirect
+	k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect
+	k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect
 	sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
 )
 
@@ -218,4 +220,9 @@ replace (
 	github.com/flyteorg/flyte/flytepropeller => ../flytepropeller
 	github.com/flyteorg/flyte/flytestdlib => ../flytestdlib
 	github.com/robfig/cron/v3 => github.com/unionai/cron/v3 v3.0.2-0.20220915080349-5790c370e63a
+	k8s.io/api => k8s.io/api v0.28.2
+	k8s.io/apimachinery => k8s.io/apimachinery v0.28.2
+	k8s.io/client-go => k8s.io/client-go v0.28.2
+	k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f
+	sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.16.2
 )
diff --git a/flyteadmin/go.sum b/flyteadmin/go.sum
index 7604bb29ec..dba5520a03 100644
--- a/flyteadmin/go.sum
+++ b/flyteadmin/go.sum
@@ -20,9 +20,6 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb
 cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
 cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
 cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
-cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
-cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
-cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
 cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys=
 cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY=
 cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
@@ -37,7 +34,6 @@ cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGB
 cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
 cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
 cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
-cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
 cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k=
 cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0=
 cloud.google.com/go/kms v1.10.1 h1:7hm1bRqGCA1GBRQUrp831TwJ9TWhP+tvLuP497CQS2g=
@@ -55,8 +51,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
 cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
 cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
 cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
-cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI=
-cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y=
+cloud.google.com/go/storage v1.29.0 h1:6weCgzRvMg7lzuUurI4697AqIRPU1SvzHhynwpW31jI=
+cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4=
 contrib.go.opencensus.io/exporter/stackdriver v0.13.1/go.mod h1:z2tyTZtPmQ2HvWH4cOmVDgtY+1lomfKdbLnkJvZdc8c=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
 github.com/Azure/azure-sdk-for-go v63.4.0+incompatible h1:fle3M5Q7vr8auaiPffKyUQmLbvYeqpw30bKU6PrWJFo=
@@ -69,13 +65,10 @@ github.com/Azure/azure-sdk-for-go/sdk/internal v0.9.2/go.mod h1:CdSJQNNzZhCkwDaV
 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0 h1:0nJeKDmB7a1a8RDMjTltahlPsaNlWjq/LpkZleSwINk=
 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0/go.mod h1:mbwxKc/fW+IkF0GG591MuXw0KuEQBDkeRoZ9vmVJPxg=
 github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
 github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
 github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA=
 github.com/Azure/go-autorest/autorest v0.11.27 h1:F3R3q42aWytozkV8ihzcgMO4OA4cuqr3bNlsEuF6//A=
 github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U=
-github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M=
 github.com/Azure/go-autorest/autorest/adal v0.9.18 h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ=
 github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ=
 github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
@@ -95,8 +88,8 @@ github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q
 github.com/DataDog/datadog-go v3.4.1+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
 github.com/DataDog/datadog-go v4.0.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
 github.com/DataDog/opencensus-go-exporter-datadog v0.0.0-20191210083620-6965a1cfed68/go.mod h1:gMGUEe16aZh0QN941HgDjwrdjU4iTthPoz2/AtDRADE=
+github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc=
 github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
-github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
 github.com/Masterminds/semver/v3 v3.0.3/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
 github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=
 github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
@@ -104,8 +97,6 @@ github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcy
 github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
 github.com/NYTimes/gizmo v1.3.6 h1:K+GRagPdAxojsT1TlTQlMkTeOmgfLxSdvuOhdki7GG0=
 github.com/NYTimes/gizmo v1.3.6/go.mod h1:8S8QVnITA40p/1jGsUMcPI8R9SSKkoKu+8WF13s9Uhw=
-github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
-github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
 github.com/NYTimes/logrotate v1.0.0/go.mod h1:GxNz1cSw1c6t99PXoZlw+nm90H6cyQyrH66pjVv7x88=
 github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk=
 github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
@@ -125,19 +116,11 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMx
 github.com/ajg/form v0.0.0-20160822230020-523a5da1a92f/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=
 github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
 github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
 github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
-github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
 github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
-github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
-github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
 github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
-github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
 github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
@@ -149,18 +132,14 @@ github.com/aws/aws-sdk-go v1.31.3/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU
 github.com/aws/aws-sdk-go v1.44.2 h1:5VBk5r06bgxgRKVaUtm1/4NT/rtrnH2E4cnAYv5zgQc=
 github.com/aws/aws-sdk-go v1.44.2/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
 github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04=
-github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
-github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
-github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
+github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A=
+github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
 github.com/benlaurie/objecthash v0.0.0-20180202135721-d1e3d6079fc1 h1:VRtJdDi2lqc3MFwmouppm2jlm6icF+7H3WYKpLENMTo=
 github.com/benlaurie/objecthash v0.0.0-20180202135721-d1e3d6079fc1/go.mod h1:jvdWlw8vowVGnZqSDC7yhPd7AifQeQbRDkZcQXV2nRg=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
 github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
 github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
-github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
-github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
 github.com/bmatcuk/doublestar/v2 v2.0.3/go.mod h1:QMmcs3H2AUQICWhfzLXz+IYln8lRQmTZRptLie8RgRw=
 github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
 github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737 h1:rRISKWyXfVxvoa702s91Zl5oREZTrR3yv+tXrrX7G/g=
@@ -169,12 +148,8 @@ github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QH
 github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
 github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
-github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
 github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
 github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
 github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927 h1:SKI1/fuSdodxmNNyVBR8d7X/HuLnRpvvFO0AgyQk764=
@@ -192,15 +167,11 @@ github.com/cloudevents/sdk-go/v2 v2.8.0/go.mod h1:GpCBmUj7DIRiDhVvsK5d6WCbgTWs8D
 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
 github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I=
 github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
 github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=
 github.com/cockroachdb/cockroach-go v0.0.0-20190925194419-606b3d062051/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=
 github.com/cockroachdb/cockroach-go v0.0.0-20200312223839-f565e4789405/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=
-github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
-github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA=
-github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI=
 github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
 github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0=
 github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
@@ -211,23 +182,18 @@ github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEka
 github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY=
 github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
 github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
-github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
 github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
-github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
 github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk=
 github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
 github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
 github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
 github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
 github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
-github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
 github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/cucumber/godog v0.8.1/go.mod h1:vSh3r/lM+psC1BPXvdkSEuNjmXfpVqrMGYAElF6hxnA=
 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=
@@ -253,7 +219,6 @@ github.com/docker/docker v17.12.0-ce-rc1.0.20201201034508-7d75c1d40d88+incompati
 github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
 github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
 github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/dustin/go-humanize v0.0.0-20180713052910-9f541cc9db5d/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
@@ -266,10 +231,7 @@ github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=
 github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
 github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0=
 github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU=
-github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
 github.com/elazarl/goproxy v0.0.0-20181003060214-f58a169a71a5/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
-github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
-github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
 github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
 github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
@@ -278,25 +240,24 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
 github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
 github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
-github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U=
+github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww=
+github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4=
 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
 github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
 github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
 github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
 github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
-github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ=
 github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
+github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
+github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
 github.com/flyteorg/stow v0.3.7 h1:Cx7j8/Ux6+toD5hp5fy++927V+yAcAttDeQAlUD/864=
 github.com/flyteorg/stow v0.3.7/go.mod h1:5dfBitPM004dwaZdoVylVjxFT4GWAgI0ghAndhNUzCo=
 github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
-github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
-github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
 github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
 github.com/frankban/quicktest v1.4.1/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ=
@@ -305,10 +266,8 @@ github.com/frankban/quicktest v1.10.0 h1:Gfh+GAJZOAoKZsIZeZbdn2JF10kN1XHNvjsvQK8
 github.com/frankban/quicktest v1.10.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y=
 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
-github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
-github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
-github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=
-github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
+github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
+github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
 github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
@@ -325,13 +284,10 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb
 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
 github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
-github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
-github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
 github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
-github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/zapr v1.2.0 h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk=
-github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro=
+github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
+github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo=
 github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
 github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
 github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
@@ -349,16 +305,14 @@ github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwds
 github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
 github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
 github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
 github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
 github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
 github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
 github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
 github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
 github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
-github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
-github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=
-github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
+github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
+github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
 github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
 github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
 github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
@@ -389,7 +343,6 @@ github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh
 github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
 github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
 github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
-github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
 github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
 github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
 github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
@@ -403,6 +356,7 @@ github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LB
 github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
 github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
 github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M=
 github.com/go-test/deep v1.0.7/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8=
 github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
@@ -655,7 +609,6 @@ github.com/gobuffalo/x v0.0.0-20181003152136-452098b06085/go.mod h1:WevpGD+5YOre
 github.com/gobuffalo/x v0.0.0-20181007152206-913e47c59ca7/go.mod h1:9rDPXaB3kXdKWzMc4odGQQdG2e2DIEmANy5aSJ9yesY=
 github.com/goccy/go-json v0.4.8 h1:TfwOxfSp8hXH+ivoOk36RyDNmXATUETRdaNWDaZglf8=
 github.com/goccy/go-json v0.4.8/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
-github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 github.com/gofrs/uuid v3.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
 github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
 github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
@@ -666,21 +619,19 @@ github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFG
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
-github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
 github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
 github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
-github.com/golang-jwt/jwt/v4 v4.4.1 h1:pC5DB52sCeK48Wlb9oPcdhnjkz1TKt1D/P7WKJ0kUcQ=
-github.com/golang-jwt/jwt/v4 v4.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
+github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
+github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
 github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY=
 github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
 github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 github.com/golang/gddo v0.0.0-20180828051604-96d2a289f41e/go.mod h1:xEhNfoBDX1hzLm2Nf80qUvZ2sVwoMZ8d6IE2SrsQfh4=
 github.com/golang/gddo v0.0.0-20190904175337-72a348e765d2/go.mod h1:xEhNfoBDX1hzLm2Nf80qUvZ2sVwoMZ8d6IE2SrsQfh4=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
 github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE=
 github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ=
 github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -696,7 +647,6 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
 github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
-github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
 github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
 github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
 github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -715,8 +665,6 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
 github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
 github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
@@ -725,11 +673,8 @@ github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
 github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
-github.com/google/cel-go v0.10.1/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w=
-github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA=
-github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
-github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
+github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
+github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -745,7 +690,6 @@ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
 github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/go-jsonnet v0.16.0/go.mod h1:sOcuej3UW1vpPTZOr8L7RQimqai1a57bt5j22LzGZCw=
 github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
 github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
@@ -763,8 +707,7 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf
 github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -800,7 +743,6 @@ github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0U
 github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
 github.com/gotestyourself/gotestyourself v1.3.0/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY=
 github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY=
-github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
 github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
 github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s=
 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
@@ -812,41 +754,26 @@ github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4
 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
 github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69 h1:7xsUJsB2NrdcttQPa7JLEaGzvdbk7KvfrjgHZXOQRo0=
 github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69/go.mod h1:YLEMZOtU+AZ7dhN9T/IpGhXVGly2bvkJQ+zxj3WeVQo=
-github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
-github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
-github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
 github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
 github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
-github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
-github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
-github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
 github.com/hashicorp/go-retryablehttp v0.6.8/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
-github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
-github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
-github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
-github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
 github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
 github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=
 github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
 github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
-github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
-github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
-github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
-github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
 github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg=
-github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
+github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 github.com/inhies/go-bytesize v0.0.0-20201103132853-d0aed0d254f8/go.mod h1:KrtyD5PFj++GKkFS/7/RRrfnRhAMGQwy75GLCHWrCNs=
 github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo=
 github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk=
@@ -945,13 +872,10 @@ github.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqx
 github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
 github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
 github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
-github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
 github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
-github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
 github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
 github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
@@ -959,7 +883,6 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X
 github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
-github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
 github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=
 github.com/karrick/godirwalk v1.7.7/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=
@@ -991,8 +914,8 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
 github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
@@ -1036,7 +959,6 @@ github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN
 github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
-github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
 github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
 github.com/markbates/deplist v1.0.4/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM=
@@ -1069,7 +991,6 @@ github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope
 github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
 github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
-github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
 github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
 github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
 github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
@@ -1077,8 +998,9 @@ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd
 github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
 github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
 github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
-github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
 github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
+github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
+github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
 github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
@@ -1089,28 +1011,19 @@ github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpe
 github.com/mattn/goveralls v0.0.6 h1:cr8Y0VMo/MnEZBjxNN/vh6G90SZ7IMb6lms1dzMoO+Y=
 github.com/mattn/goveralls v0.0.6/go.mod h1:h8b4ow6FxSPMQHF6o2ve3qsclnffZjYTNEKmLesRwqw=
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
-github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
+github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
+github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
 github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=
 github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc=
-github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
 github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
-github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
-github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
-github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.2.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
 github.com/moby/term v0.0.0-20200915141129-7f0af18e79f2/go.mod h1:TjQg8pa4iejrUrjiz0MCtMV38jdMNW4doKSiBrEvCQQ=
-github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -1125,35 +1038,26 @@ github.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGE
 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
 github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
 github.com/moul/http2curl v0.0.0-20170919181001-9ac6cf4d929b/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ=
-github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
 github.com/ncw/swift v1.0.53 h1:luHjjTNtekIEvHg5KdAFIBaH7bWfNkefwFnpDffSIks=
 github.com/ncw/swift v1.0.53/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
 github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
 github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U=
-github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
-github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
 github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
 github.com/oleiade/reflections v1.0.0/go.mod h1:RbATFBbKYkVdqmSFtx13Bb/tVhR0lgOBXunWTZKeL4w=
 github.com/oleiade/reflections v1.0.1 h1:D1XO3LVEYroYskEsoSiGItp9RUxG6jWnCVvrqH0HHQM=
 github.com/oleiade/reflections v1.0.1/go.mod h1:rdFxbxq4QXVZWj0F+e9jqjDkc7dbp97vkRixKo2JR60=
-github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.9.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.10.3 h1:OoxbjfXVZyod1fmWYhI7SEyaD8B00ynP3T+D5GiyHOY=
 github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
-github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
-github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
-github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY=
-github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
+github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU=
 github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
 github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
@@ -1161,8 +1065,7 @@ github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa
 github.com/onsi/gomega v1.6.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
-github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw=
+github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
 github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
 github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
 github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
@@ -1204,7 +1107,6 @@ github.com/ory/x v0.0.127/go.mod h1:FwUujfFuCj5d+xgLn4fGMYPnzriR5bdAIulFXMtnK0M=
 github.com/ory/x v0.0.214 h1:nz5ijvm5MVhYxWsQSuUrW1hj9F5QLZvPn/nLo5s06T4=
 github.com/ory/x v0.0.214/go.mod h1:aRl57gzyD4GF0HQCekovXhv0xTZgAgiht3o8eVhsm9Q=
 github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE=
-github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
 github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g=
 github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
 github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
@@ -1216,7 +1118,6 @@ github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhEC
 github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8 h1:dy81yyLYJDwMTifq24Oi/IslOslRrDSb3jwDggjz3Z0=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
-github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE=
 github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
 github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
@@ -1236,38 +1137,30 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ
 github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
 github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM=
 github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
 github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
 github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
 github.com/prometheus/client_golang v0.9.4/go.mod h1:oCXIBxdI62A4cR6aTRJCgetEjecSIYzOEaeAn4iYEpM=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
-github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk=
-github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
+github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
+github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
 github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
 github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
+github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
 github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
 github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
-github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
-github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=
-github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
+github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
+github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
-github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
-github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
+github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg=
+github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
 github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
 github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
 github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
@@ -1284,6 +1177,7 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
 github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
 github.com/rogpeppe/go-internal v1.4.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
 github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
 github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
 github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
 github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
@@ -1292,11 +1186,9 @@ github.com/rubenv/sql-migrate v0.0.0-20190212093014-1007f53448d7/go.mod h1:WS0rl
 github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
 github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
 github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4=
 github.com/santhosh-tekuri/jsonschema/v2 v2.1.0/go.mod h1:yzJzKUGV4RbWqWIBBP4wSOBqavX5saE02yirLS0OTyg=
 github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
-github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
 github.com/seatgeek/logrus-gelf-formatter v0.0.0-20210219220335-367fa274be2c/go.mod h1:/THDZYi7F/BsVEcYzYPqdcWFQ+1C2InkawTKfLOAnzg=
 github.com/segmentio/analytics-go v3.0.1+incompatible/go.mod h1:C7CYBtQWk4vRk2RyLu0qOcbHJ18E3F1HV2C/8JvKN48=
 github.com/segmentio/analytics-go v3.1.0+incompatible/go.mod h1:C7CYBtQWk4vRk2RyLu0qOcbHJ18E3F1HV2C/8JvKN48=
@@ -1334,14 +1226,12 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
 github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo=
 github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
-github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
-github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
-github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
+github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
+github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
 github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
 github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
 github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
 github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
-github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
 github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE=
 github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA=
 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ=
@@ -1350,7 +1240,6 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B
 github.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
 github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
 github.com/spf13/afero v1.3.2/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
-github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
 github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=
 github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
 github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg=
@@ -1365,9 +1254,8 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL
 github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
 github.com/spf13/cobra v0.0.7/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
 github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
-github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
-github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
-github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
+github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
+github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
 github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
 github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
 github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
@@ -1380,12 +1268,10 @@ github.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaN
 github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
 github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
 github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
-github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
 github.com/spf13/viper v1.11.0 h1:7OX/1FS6n7jHD1zGrZTM7WtY13ZELRyosK4k93oPr44=
 github.com/spf13/viper v1.11.0/go.mod h1:djo0X/bA5+tYVoCn+C7cAYJGcVn/qYLFTG8gdUsX7Zk=
 github.com/sqs/goreturns v0.0.0-20181028201513-538ac6014518/go.mod h1:CKI4AZ4XmGV240rTHfO0hfE83S6/a3/Q1siZJ/vXf7A=
 github.com/square/go-jose/v3 v3.0.0-20200630053402-0a67ce9b0693/go.mod h1:6hSY48PjDm4UObWmGLyJE9DxYVKTgR9kbCspXXJEhcU=
-github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
 github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -1419,7 +1305,6 @@ github.com/tidwall/sjson v1.0.4/go.mod h1:bURseu1nuBkFpIES5cz6zBtjmYeOQmEESshn7V
 github.com/tidwall/sjson v1.1.5/go.mod h1:VuJzsZnTowhSxWdOgsAnb886i4AjEyTkk7tNtsL7EYE=
 github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
 github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g=
 github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
 github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
@@ -1446,7 +1331,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
 github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
 github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
 go.elastic.co/apm v1.8.0/go.mod h1:tCw6CkOJgkWnzEthFN9HUP1uL3Gjc/Ur6m7gRPLaoH0=
@@ -1454,17 +1338,6 @@ go.elastic.co/apm/module/apmhttp v1.8.0/go.mod h1:9LPFlEON51/lRbnWDfqAWErihIiAFD
 go.elastic.co/apm/module/apmot v1.8.0/go.mod h1:Q5Xzabte8G/fkvDjr1jlDuOSUt9hkVWNZEHh6ZNaTjI=
 go.elastic.co/fastjson v1.0.0/go.mod h1:PmeUOMMtLHQr9ZS9J9owrAVg0FkaZDRZJEFTTGHtchs=
 go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4=
-go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
-go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
-go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
-go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
-go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
-go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0=
-go.etcd.io/etcd/client/v3 v3.5.1/go.mod h1:OnjH4M8OnAotwaB2l9bVgZzRFKru7/ZMoS46OtKyd3Q=
-go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE=
-go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc=
-go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4=
 go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
@@ -1476,50 +1349,31 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
-go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
 go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
 go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
 go.opentelemetry.io/contrib v0.18.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
-go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E=
 go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.18.0/go.mod h1:iK1G0FgHurSJ/aYLg5LpnPI0pqdanM73S3dhyDp0Lk4=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4=
 go.opentelemetry.io/otel v0.18.0/go.mod h1:PT5zQj4lTsR1YeARt8YNKcFb88/c2IKoSABK9mX0r78=
-go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo=
-go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM=
 go.opentelemetry.io/otel/metric v0.18.0/go.mod h1:kEH2QtzAyBy3xDVQfGZKIcok4ZZFvd5xyKPfPcuK6pE=
-go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU=
 go.opentelemetry.io/otel/oteltest v0.18.0/go.mod h1:NyierCU3/G8DLTva7KRzGii2fdxdR89zXKH1bNWY7Bo=
-go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw=
-go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc=
-go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE=
-go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE=
 go.opentelemetry.io/otel/trace v0.18.0/go.mod h1:FzdUu3BPwZSZebfQ1vl5/tAa8LyMLXSJN57AXIt/iDk=
-go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
-go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
 go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
 go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
 go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
-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.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
-go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
-go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=
+go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
 go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
 go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
 go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
-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/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
+go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
 go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
-go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
-go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
-go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI=
-go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
+go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c=
+go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk=
 golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20180830192347-182538f80094/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -1530,7 +1384,6 @@ golang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnf
 golang.org/x/crypto v0.0.0-20181024171144-74cb1d3d52f4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181025113841-85e1b3f9139a/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181106171534-e4dc69e5b2fd/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -1560,7 +1413,6 @@ golang.org/x/crypto v0.0.0-20200320181102-891825fb96df/go.mod h1:LzIPMQfyMNhhGPh
 golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 golang.org/x/crypto v0.0.0-20201217014255-9d1352758620/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
@@ -1569,7 +1421,6 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck=
 golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
@@ -1603,7 +1454,6 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu
 golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
 golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
 golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
@@ -1615,7 +1465,6 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
 golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
 golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1631,7 +1480,6 @@ golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73r
 golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1662,7 +1510,6 @@ golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/
 golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
@@ -1672,16 +1519,10 @@ golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwY
 golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
 golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
 golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
@@ -1696,12 +1537,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ
 golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g=
-golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
+golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
+golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1717,7 +1554,6 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
 golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
 golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180831094639-fa5fdf94c789/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1757,16 +1593,13 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191025021431-6c3a3bfe00ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191105231009-c1f44814a5cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200121082415-34d275377bf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1781,41 +1614,28 @@ golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
 golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
@@ -1829,7 +1649,6 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
@@ -1837,9 +1656,7 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
 golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -1900,8 +1717,6 @@ golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtn
 golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -1926,7 +1741,6 @@ golang.org/x/tools v0.0.0-20200308013534-11ec41452d41/go.mod h1:o4KQGtdN14AW+yjs
 golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
 golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
 golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@@ -1946,9 +1760,6 @@ golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4f
 golang.org/x/tools v0.0.0-20210114065538-d78b04bdf963/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
 golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
 golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=
 golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
 golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1959,7 +1770,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
 golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
-gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY=
+gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
 gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
 gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
 gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
@@ -1987,8 +1798,6 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513
 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
 google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
 google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
-google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
-google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
 google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE=
 google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
@@ -2037,24 +1846,18 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
 google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201102152239-715cce707fb0/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
-google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
-google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
-google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
-google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
 google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
@@ -2078,10 +1881,6 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv
 google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
 google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
 google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
 google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ=
 google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
 google.golang.org/grpc/examples v0.0.0-20210304020650-930c79186c99/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE=
@@ -2097,7 +1896,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
 google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
 google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 gopkg.in/DataDog/dd-trace-go.v1 v1.22.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg=
@@ -2138,13 +1936,11 @@ gopkg.in/jcmturner/gokrb5.v7 v7.5.0/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuv
 gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU=
 gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8=
 gopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw=
-gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
 gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
 gopkg.in/square/go-jose.v2 v2.1.9/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
 gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
 gopkg.in/square/go-jose.v2 v2.5.2-0.20210529014059-a5c7eec3c614 h1:lwJmuuJQGclcankpPJwh8rorzB0bNbVALv8phDGh8TQ=
 gopkg.in/square/go-jose.v2 v2.5.2-0.20210529014059-a5c7eec3c614/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
 gopkg.in/validator.v2 v2.0.0-20180514200540-135c24b11c19/go.mod h1:o4V0GXN9/CAmCsvJ0oXYZvrZOe7syiDZSN1GWGZTGzc=
 gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
@@ -2152,7 +1948,6 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -2161,7 +1956,6 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
@@ -2183,7 +1977,6 @@ gorm.io/gorm v1.24.1-0.20221019064659-5dd2bb482755/go.mod h1:DVrVomtaYTbqs7gB/x2
 gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
 gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
 gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
-gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
@@ -2192,32 +1985,21 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0=
-k8s.io/api v0.24.1 h1:BjCMRDcyEYz03joa3K1+rbshwh1Ay6oB53+iUx2H8UY=
-k8s.io/api v0.24.1/go.mod h1:JhoOvNiLXKTPQ60zh2g0ewpA+bnEYf5q44Flhquh4vQ=
-k8s.io/apiextensions-apiserver v0.24.1 h1:5yBh9+ueTq/kfnHQZa0MAo6uNcPrtxPMpNQgorBaKS0=
-k8s.io/apiextensions-apiserver v0.24.1/go.mod h1:A6MHfaLDGfjOc/We2nM7uewD5Oa/FnEbZ6cD7g2ca4Q=
-k8s.io/apimachinery v0.24.1 h1:ShD4aDxTQKN5zNf8K1RQ2u98ELLdIW7jEnlO9uAMX/I=
-k8s.io/apimachinery v0.24.1/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM=
-k8s.io/apiserver v0.24.1/go.mod h1:dQWNMx15S8NqJMp0gpYfssyvhYnkilc1LpExd/dkLh0=
-k8s.io/client-go v0.24.1 h1:w1hNdI9PFrzu3OlovVeTnf4oHDt+FJLd9Ndluvnb42E=
-k8s.io/client-go v0.24.1/go.mod h1:f1kIDqcEYmwXS/vTbbhopMUbhKp2JhOeVTfxgaCIlF8=
-k8s.io/code-generator v0.24.1/go.mod h1:dpVhs00hTuTdTY6jvVxvTFCk6gSMrtfRydbhZwHI15w=
-k8s.io/component-base v0.24.1 h1:APv6W/YmfOWZfo+XJ1mZwep/f7g7Tpwvdbo9CQLDuts=
-k8s.io/component-base v0.24.1/go.mod h1:DW5vQGYVCog8WYpNob3PMmmsY8A3L9QZNg4j/dV3s38=
-k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
-k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
-k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
-k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
-k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
-k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk=
-k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg=
-k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg=
-k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=
-k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/api v0.28.2 h1:9mpl5mOb6vXZvqbQmankOfPIGiudghwCoLl1EYfUZbw=
+k8s.io/api v0.28.2/go.mod h1:RVnJBsjU8tcMq7C3iaRSGMeaKt2TWEUXcpIt/90fjEg=
+k8s.io/apiextensions-apiserver v0.28.0 h1:CszgmBL8CizEnj4sj7/PtLGey6Na3YgWyGCPONv7E9E=
+k8s.io/apiextensions-apiserver v0.28.0/go.mod h1:uRdYiwIuu0SyqJKriKmqEN2jThIJPhVmOWETm8ud1VE=
+k8s.io/apimachinery v0.28.2 h1:KCOJLrc6gu+wV1BYgwik4AF4vXOlVJPdiqn0yAWWwXQ=
+k8s.io/apimachinery v0.28.2/go.mod h1:RdzF87y/ngqk9H4z3EL2Rppv5jj95vGS/HaFXrLDApU=
+k8s.io/client-go v0.28.2 h1:DNoYI1vGq0slMBN/SWKMZMw0Rq+0EQW6/AK4v9+3VeY=
+k8s.io/client-go v0.28.2/go.mod h1:sMkApowspLuc7omj1FOSUxSoqjr+d5Q0Yc0LOFnYFJY=
+k8s.io/component-base v0.28.1 h1:LA4AujMlK2mr0tZbQDZkjWbdhTV5bRyEyAFe0TJxlWg=
+k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
+k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f h1:eeEUOoGYWhOz7EyXqhlR2zHKNw2mNJ9vzJmub6YN6kk=
+k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
 modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
 modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
 modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
@@ -2227,16 +2009,11 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8
 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.30/go.mod h1:fEO7lRTdivWO2qYVCVG7dEADOMo/MLDCVr8So2g88Uw=
-sigs.k8s.io/controller-runtime v0.12.1 h1:4BJY01xe9zKQti8oRjj/NeHKRXthf1YkYJAgLONFFoI=
-sigs.k8s.io/controller-runtime v0.12.1/go.mod h1:BKhxlA4l7FPK4AQcsuL4X6vZeWnKDXez/vp1Y8dxTU0=
-sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY=
+sigs.k8s.io/controller-runtime v0.16.2 h1:mwXAVuEk3EQf478PQwQ48zGOXvW27UJc8NHktQVuIPU=
+sigs.k8s.io/controller-runtime v0.16.2/go.mod h1:vpMu3LpI5sYWtujJOa2uPK61nB5rbwlN7BAB8aSLvGU=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
-sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
 sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
 sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
diff --git a/flyteadmin/pkg/async/notifications/implementations/gcp_processor_test.go b/flyteadmin/pkg/async/notifications/implementations/gcp_processor_test.go
index e83cf7b1d3..da5bda2610 100644
--- a/flyteadmin/pkg/async/notifications/implementations/gcp_processor_test.go
+++ b/flyteadmin/pkg/async/notifications/implementations/gcp_processor_test.go
@@ -48,7 +48,7 @@ func TestGcpProcessor_StartProcessing(t *testing.T) {
 	m := &dto.Metric{}
 	err := testGcpProcessor.(*GcpProcessor).systemMetrics.MessageSuccess.Write(m)
 	assert.Nil(t, err)
-	assert.Equal(t, "counter:<value:1 > ", m.String())
+	assert.Equal(t, "counter:{value:1}", m.String())
 }
 
 func TestGcpProcessor_StartProcessingNoMessages(t *testing.T) {
@@ -63,7 +63,7 @@ func TestGcpProcessor_StartProcessingNoMessages(t *testing.T) {
 	m := &dto.Metric{}
 	err := testGcpProcessor.(*GcpProcessor).systemMetrics.MessageSuccess.Write(m)
 	assert.Nil(t, err)
-	assert.Equal(t, "counter:<value:0 > ", m.String())
+	assert.Equal(t, "counter:{value:0}", m.String())
 }
 
 func TestGcpProcessor_StartProcessingError(t *testing.T) {
@@ -96,7 +96,7 @@ func TestGcpProcessor_StartProcessingEmailError(t *testing.T) {
 	m := &dto.Metric{}
 	err := testGcpProcessor.(*GcpProcessor).systemMetrics.MessageProcessorError.Write(m)
 	assert.Nil(t, err)
-	assert.Equal(t, "counter:<value:1 > ", m.String())
+	assert.Equal(t, "counter:{value:1}", m.String())
 }
 
 func TestGcpProcessor_StopProcessing(t *testing.T) {
diff --git a/flytecopilot/go.mod b/flytecopilot/go.mod
index 6565cf119f..2fed5aaa2f 100644
--- a/flytecopilot/go.mod
+++ b/flytecopilot/go.mod
@@ -14,8 +14,8 @@ require (
 	github.com/spf13/cobra v1.4.0
 	github.com/spf13/pflag v1.0.5
 	github.com/stretchr/testify v1.8.4
-	k8s.io/api v0.20.4
-	k8s.io/apimachinery v0.20.4
+	k8s.io/api v0.28.2
+	k8s.io/apimachinery v0.28.2
 	k8s.io/client-go v0.20.4
 	k8s.io/klog v1.0.0
 )
@@ -41,31 +41,38 @@ require (
 	github.com/cespare/xxhash/v2 v2.2.0 // indirect
 	github.com/coocood/freecache v1.1.1 // indirect
 	github.com/davecgh/go-spew v1.1.1 // indirect
+	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
 	github.com/fatih/color v1.13.0 // indirect
 	github.com/flyteorg/stow v0.3.7 // indirect
-	github.com/go-logr/logr v0.4.0 // indirect
+	github.com/go-logr/logr v1.2.4 // indirect
+	github.com/go-openapi/jsonpointer v0.19.6 // indirect
+	github.com/go-openapi/jsonreference v0.20.2 // indirect
+	github.com/go-openapi/swag v0.22.3 // indirect
 	github.com/gofrs/uuid v4.2.0+incompatible // indirect
 	github.com/gogo/protobuf v1.3.2 // indirect
 	github.com/golang-jwt/jwt/v4 v4.4.1 // indirect
 	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
+	github.com/google/gnostic-models v0.6.8 // indirect
 	github.com/google/go-cmp v0.5.9 // indirect
-	github.com/google/gofuzz v1.1.0 // indirect
+	github.com/google/gofuzz v1.2.0 // indirect
 	github.com/google/uuid v1.3.0 // indirect
 	github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
 	github.com/googleapis/gax-go/v2 v2.7.1 // indirect
-	github.com/googleapis/gnostic v0.4.1 // indirect
 	github.com/hashicorp/hcl v1.0.0 // indirect
 	github.com/imdario/mergo v0.3.11 // indirect
 	github.com/inconshreveable/mousetrap v1.0.0 // indirect
 	github.com/jmespath/go-jmespath v0.4.0 // indirect
+	github.com/josharian/intern v1.0.0 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
 	github.com/magiconair/properties v1.8.6 // indirect
+	github.com/mailru/easyjson v0.7.7 // indirect
 	github.com/mattn/go-colorable v0.1.12 // indirect
 	github.com/mattn/go-isatty v0.0.14 // indirect
 	github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
 	github.com/mitchellh/mapstructure v1.5.0 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
+	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
 	github.com/ncw/swift v1.0.53 // indirect
 	github.com/pelletier/go-toml v1.9.4 // indirect
 	github.com/pelletier/go-toml/v2 v2.0.0-beta.8 // indirect
@@ -81,13 +88,13 @@ require (
 	github.com/spf13/viper v1.11.0 // indirect
 	github.com/subosito/gotenv v1.2.0 // indirect
 	go.opencensus.io v0.24.0 // indirect
-	golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f // indirect
-	golang.org/x/net v0.9.0 // indirect
-	golang.org/x/oauth2 v0.7.0 // indirect
-	golang.org/x/sys v0.7.0 // indirect
-	golang.org/x/term v0.7.0 // indirect
-	golang.org/x/text v0.9.0 // indirect
-	golang.org/x/time v0.1.0 // indirect
+	golang.org/x/crypto v0.11.0 // indirect
+	golang.org/x/net v0.13.0 // indirect
+	golang.org/x/oauth2 v0.8.0 // indirect
+	golang.org/x/sys v0.10.0 // indirect
+	golang.org/x/term v0.10.0 // indirect
+	golang.org/x/text v0.11.0 // indirect
+	golang.org/x/time v0.3.0 // indirect
 	golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
 	google.golang.org/api v0.114.0 // indirect
 	google.golang.org/appengine v1.6.7 // indirect
@@ -98,10 +105,12 @@ require (
 	gopkg.in/ini.v1 v1.66.4 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
-	k8s.io/klog/v2 v2.5.0 // indirect
-	k8s.io/utils v0.0.0-20210111153108-fddb29f9d009 // indirect
-	sigs.k8s.io/structured-merge-diff/v4 v4.0.3 // indirect
-	sigs.k8s.io/yaml v1.2.0 // indirect
+	k8s.io/klog/v2 v2.100.1 // indirect
+	k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect
+	k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect
+	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
+	sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
+	sigs.k8s.io/yaml v1.3.0 // indirect
 )
 
 replace (
@@ -112,4 +121,9 @@ replace (
 	github.com/flyteorg/flyte/flyteplugins => ../flyteplugins
 	github.com/flyteorg/flyte/flytepropeller => ../flytepropeller
 	github.com/flyteorg/flyte/flytestdlib => ../flytestdlib
+	k8s.io/api => k8s.io/api v0.28.2
+	k8s.io/apimachinery => k8s.io/apimachinery v0.28.2
+	k8s.io/client-go => k8s.io/client-go v0.28.2
+	k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f
+	sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.16.2
 )
diff --git a/flytecopilot/go.sum b/flytecopilot/go.sum
index 3b2bf17b22..8db4c93b84 100644
--- a/flytecopilot/go.sum
+++ b/flytecopilot/go.sum
@@ -58,21 +58,16 @@ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0 h1:0nJeKDmB7a1a8RDMj
 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0/go.mod h1:mbwxKc/fW+IkF0GG591MuXw0KuEQBDkeRoZ9vmVJPxg=
 github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
 github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
 github.com/Azure/go-autorest/autorest v0.11.27 h1:F3R3q42aWytozkV8ihzcgMO4OA4cuqr3bNlsEuF6//A=
 github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U=
-github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg=
-github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
 github.com/Azure/go-autorest/autorest/adal v0.9.18 h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ=
 github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ=
 github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
 github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
-github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
 github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
 github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw=
 github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU=
 github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
-github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
 github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=
 github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
 github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
@@ -80,17 +75,13 @@ github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBp
 github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 h1:WVsrXCnHlDDX8ls+tootqRE87/hL9S/g4ewig9RsD/c=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
-github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
 github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
-github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
-github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 github.com/aws/aws-sdk-go v1.44.2 h1:5VBk5r06bgxgRKVaUtm1/4NT/rtrnH2E4cnAYv5zgQc=
 github.com/aws/aws-sdk-go v1.44.2/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
@@ -115,33 +106,26 @@ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnht
 github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEkaPc=
 github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY=
 github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 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/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
 github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c=
 github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko=
-github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
-github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
-github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
-github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
+github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
+github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
 github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
 github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
 github.com/flyteorg/stow v0.3.7 h1:Cx7j8/Ux6+toD5hp5fy++927V+yAcAttDeQAlUD/864=
 github.com/flyteorg/stow v0.3.7/go.mod h1:5dfBitPM004dwaZdoVylVjxFT4GWAgI0ghAndhNUzCo=
-github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
-github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
 github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
 github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
-github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
@@ -154,22 +138,21 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9
 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
 github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
 github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
-github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
-github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
-github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
-github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
-github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
-github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
-github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
-github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
+github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
+github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
+github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
+github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
+github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
+github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
+github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
 github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M=
 github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0=
 github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
@@ -210,6 +193,8 @@ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg
 github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
+github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -224,8 +209,8 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
 github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
 github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g=
-github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
+github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
 github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
 github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
@@ -241,8 +226,8 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf
 github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
 github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -252,18 +237,13 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
 github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A=
 github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI=
-github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I=
-github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
 github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
-github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
-github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA=
 github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
 github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
@@ -272,6 +252,8 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y
 github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
+github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
+github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
 github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
 github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
@@ -282,7 +264,6 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1
 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
 github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
-github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
 github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -290,17 +271,17 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv
 github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
+github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
 github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
 github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
 github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
-github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
+github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
 github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
 github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
@@ -311,7 +292,6 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0j
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
 github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
 github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
-github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -322,22 +302,18 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb
 github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
 github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
 github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8=
-github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
 github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
 github.com/ncw/swift v1.0.53 h1:luHjjTNtekIEvHg5KdAFIBaH7bWfNkefwFnpDffSIks=
 github.com/ncw/swift v1.0.53/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
-github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
-github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/onsi/ginkgo/v2 v2.9.4 h1:xR7vG4IXt5RWx6FfIjyAtsoMAtnc3C/rFXBBd2AjZwE=
+github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE=
 github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM=
 github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8 h1:dy81yyLYJDwMTifq24Oi/IslOslRrDSb3jwDggjz3Z0=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
-github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI=
 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -369,6 +345,7 @@ github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1
 github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
 github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
@@ -377,7 +354,6 @@ github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM
 github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ=
 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
-github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
 github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=
 github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
 github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA=
@@ -386,21 +362,18 @@ github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
 github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
 github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
 github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
-github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
 github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/spf13/viper v1.11.0 h1:7OX/1FS6n7jHD1zGrZTM7WtY13ZELRyosK4k93oPr44=
 github.com/spf13/viper v1.11.0/go.mod h1:djo0X/bA5+tYVoCn+C7cAYJGcVn/qYLFTG8gdUsX7Zk=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
 github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
 github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
@@ -425,16 +398,14 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f h1:OeJjE6G4dgCY4PIXvIRQbE8+RX+uXZyGhUy/ksMGJoc=
-golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
+golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -470,7 +441,6 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -483,7 +453,6 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -508,8 +477,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
 golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
-golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
-golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
+golang.org/x/net v0.13.0 h1:Nvo8UFsZ8X3BhAC9699Z1j7XQ3rsZnUUm7jfBEk1ueY=
+golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -520,8 +489,8 @@ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ
 golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g=
-golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
+golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
+golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -534,7 +503,6 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -543,11 +511,9 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -570,7 +536,6 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -585,12 +550,12 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
-golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
+golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ=
-golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
+golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c=
+golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -599,16 +564,14 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
-golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
+golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA=
-golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
+golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
@@ -618,7 +581,6 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBn
 golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -658,6 +620,7 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f
 golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
+golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -766,15 +729,14 @@ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw
 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 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/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
-gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
 gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
 gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
 gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4=
 gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
 gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -793,29 +755,26 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-k8s.io/api v0.20.4 h1:xZjKidCirayzX6tHONRQyTNDVIR55TYVqgATqo6ZULY=
-k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ=
-k8s.io/apimachinery v0.20.4 h1:vhxQ0PPUUU2Ns1b9r4/UFp13UPs8cw2iOoTjnY9faa0=
-k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
-k8s.io/client-go v0.20.4 h1:85crgh1IotNkLpKYKZHVNI1JT86nr/iDCvq2iWKsql4=
-k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k=
-k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
+k8s.io/api v0.28.2 h1:9mpl5mOb6vXZvqbQmankOfPIGiudghwCoLl1EYfUZbw=
+k8s.io/api v0.28.2/go.mod h1:RVnJBsjU8tcMq7C3iaRSGMeaKt2TWEUXcpIt/90fjEg=
+k8s.io/apimachinery v0.28.2 h1:KCOJLrc6gu+wV1BYgwik4AF4vXOlVJPdiqn0yAWWwXQ=
+k8s.io/apimachinery v0.28.2/go.mod h1:RdzF87y/ngqk9H4z3EL2Rppv5jj95vGS/HaFXrLDApU=
+k8s.io/client-go v0.28.2 h1:DNoYI1vGq0slMBN/SWKMZMw0Rq+0EQW6/AK4v9+3VeY=
+k8s.io/client-go v0.28.2/go.mod h1:sMkApowspLuc7omj1FOSUxSoqjr+d5Q0Yc0LOFnYFJY=
 k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
 k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
-k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
-k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
-k8s.io/klog/v2 v2.5.0 h1:8mOnjf1RmUPW6KRqQCfYSZq/K20Unmp3IhuZUhxl8KI=
-k8s.io/klog/v2 v2.5.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
-k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM=
-k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20210111153108-fddb29f9d009 h1:0T5IaWHO3sJTEmCP6mUlBvMukxPKUQWqiI/YuiBNMiQ=
-k8s.io/utils v0.0.0-20210111153108-fddb29f9d009/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
+k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
+k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f h1:eeEUOoGYWhOz7EyXqhlR2zHKNw2mNJ9vzJmub6YN6kk=
+k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
-sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
-sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
+sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
+sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
+sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
+sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
+sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
+sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.grpc.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.grpc.pb.cc
deleted file mode 100644
index a47db3745b..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.grpc.pb.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-// Generated by the gRPC C++ plugin.
-// If you make any local change, they will be lost.
-// source: flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto
-
-#include "flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.h"
-#include "flyteidl/plugins/sagemaker/hyperparameter_tuning_job.grpc.pb.h"
-
-#include <functional>
-#include <grpcpp/impl/codegen/async_stream.h>
-#include <grpcpp/impl/codegen/async_unary_call.h>
-#include <grpcpp/impl/codegen/channel_interface.h>
-#include <grpcpp/impl/codegen/client_unary_call.h>
-#include <grpcpp/impl/codegen/client_callback.h>
-#include <grpcpp/impl/codegen/method_handler_impl.h>
-#include <grpcpp/impl/codegen/rpc_service_method.h>
-#include <grpcpp/impl/codegen/server_callback.h>
-#include <grpcpp/impl/codegen/service_type.h>
-#include <grpcpp/impl/codegen/sync_stream.h>
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-
-}  // namespace flyteidl
-}  // namespace plugins
-}  // namespace sagemaker
-
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.grpc.pb.h b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.grpc.pb.h
deleted file mode 100644
index c01143b03f..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.grpc.pb.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// Generated by the gRPC C++ plugin.
-// If you make any local change, they will be lost.
-// source: flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto
-#ifndef GRPC_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto__INCLUDED
-#define GRPC_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto__INCLUDED
-
-#include "flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.h"
-
-#include <functional>
-#include <grpcpp/impl/codegen/async_generic_service.h>
-#include <grpcpp/impl/codegen/async_stream.h>
-#include <grpcpp/impl/codegen/async_unary_call.h>
-#include <grpcpp/impl/codegen/client_callback.h>
-#include <grpcpp/impl/codegen/method_handler_impl.h>
-#include <grpcpp/impl/codegen/proto_utils.h>
-#include <grpcpp/impl/codegen/rpc_method.h>
-#include <grpcpp/impl/codegen/server_callback.h>
-#include <grpcpp/impl/codegen/service_type.h>
-#include <grpcpp/impl/codegen/status.h>
-#include <grpcpp/impl/codegen/stub_options.h>
-#include <grpcpp/impl/codegen/sync_stream.h>
-
-namespace grpc_impl {
-class Channel;
-class CompletionQueue;
-class ServerCompletionQueue;
-}  // namespace grpc_impl
-
-namespace grpc {
-namespace experimental {
-template <typename RequestT, typename ResponseT>
-class MessageAllocator;
-}  // namespace experimental
-}  // namespace grpc_impl
-
-namespace grpc {
-class ServerContext;
-}  // namespace grpc
-
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-
-
-#endif  // GRPC_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto__INCLUDED
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.cc
deleted file mode 100644
index 41dae829c8..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.cc
+++ /dev/null
@@ -1,2175 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto
-
-#include "flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.h"
-
-#include <algorithm>
-
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite_inl.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/reflection_ops.h>
-#include <google/protobuf/wire_format.h>
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-
-extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_HyperparameterTuningObjective_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_ParameterRanges_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_TrainingJob_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-class HyperparameterTuningJobDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<HyperparameterTuningJob> _instance;
-} _HyperparameterTuningJob_default_instance_;
-class HyperparameterTuningObjectiveTypeDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<HyperparameterTuningObjectiveType> _instance;
-} _HyperparameterTuningObjectiveType_default_instance_;
-class HyperparameterTuningObjectiveDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<HyperparameterTuningObjective> _instance;
-} _HyperparameterTuningObjective_default_instance_;
-class HyperparameterTuningStrategyDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<HyperparameterTuningStrategy> _instance;
-} _HyperparameterTuningStrategy_default_instance_;
-class TrainingJobEarlyStoppingTypeDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<TrainingJobEarlyStoppingType> _instance;
-} _TrainingJobEarlyStoppingType_default_instance_;
-class HyperparameterTuningJobConfigDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<HyperparameterTuningJobConfig> _instance;
-} _HyperparameterTuningJobConfig_default_instance_;
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-static void InitDefaultsHyperparameterTuningJob_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_HyperparameterTuningJob_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::HyperparameterTuningJob();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::HyperparameterTuningJob::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<1> scc_info_HyperparameterTuningJob_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsHyperparameterTuningJob_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto}, {
-      &scc_info_TrainingJob_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base,}};
-
-static void InitDefaultsHyperparameterTuningObjectiveType_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_HyperparameterTuningObjectiveType_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_HyperparameterTuningObjectiveType_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsHyperparameterTuningObjectiveType_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto}, {}};
-
-static void InitDefaultsHyperparameterTuningObjective_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_HyperparameterTuningObjective_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_HyperparameterTuningObjective_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsHyperparameterTuningObjective_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto}, {}};
-
-static void InitDefaultsHyperparameterTuningStrategy_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_HyperparameterTuningStrategy_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_HyperparameterTuningStrategy_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsHyperparameterTuningStrategy_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto}, {}};
-
-static void InitDefaultsTrainingJobEarlyStoppingType_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_TrainingJobEarlyStoppingType_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_TrainingJobEarlyStoppingType_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsTrainingJobEarlyStoppingType_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto}, {}};
-
-static void InitDefaultsHyperparameterTuningJobConfig_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_HyperparameterTuningJobConfig_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<2> scc_info_HyperparameterTuningJobConfig_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsHyperparameterTuningJobConfig_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto}, {
-      &scc_info_ParameterRanges_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base,
-      &scc_info_HyperparameterTuningObjective_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base,}};
-
-void InitDefaults_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto() {
-  ::google::protobuf::internal::InitSCC(&scc_info_HyperparameterTuningJob_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_HyperparameterTuningObjectiveType_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_HyperparameterTuningObjective_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_HyperparameterTuningStrategy_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_TrainingJobEarlyStoppingType_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_HyperparameterTuningJobConfig_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-}
-
-::google::protobuf::Metadata file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[6];
-const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[3];
-constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto = nullptr;
-
-const ::google::protobuf::uint32 TableStruct_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningJob, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningJob, training_job_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningJob, max_number_of_training_jobs_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningJob, max_parallel_training_jobs_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningObjective, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningObjective, objective_type_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningObjective, metric_name_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig, hyperparameter_ranges_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig, tuning_strategy_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig, tuning_objective_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig, training_job_early_stopping_type_),
-};
-static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  { 0, -1, sizeof(::flyteidl::plugins::sagemaker::HyperparameterTuningJob)},
-  { 8, -1, sizeof(::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType)},
-  { 13, -1, sizeof(::flyteidl::plugins::sagemaker::HyperparameterTuningObjective)},
-  { 20, -1, sizeof(::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy)},
-  { 25, -1, sizeof(::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType)},
-  { 30, -1, sizeof(::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig)},
-};
-
-static ::google::protobuf::Message const * const file_default_instances[] = {
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_HyperparameterTuningJob_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_HyperparameterTuningObjectiveType_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_HyperparameterTuningObjective_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_HyperparameterTuningStrategy_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_TrainingJobEarlyStoppingType_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_HyperparameterTuningJobConfig_default_instance_),
-};
-
-::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto = {
-  {}, AddDescriptors_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto, "flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto", schemas,
-  file_default_instances, TableStruct_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto::offsets,
-  file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto, 6, file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto, file_level_service_descriptors_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto,
-};
-
-const char descriptor_table_protodef_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[] =
-  "\n:flyteidl/plugins/sagemaker/hyperparame"
-  "ter_tuning_job.proto\022\032flyteidl.plugins.s"
-  "agemaker\0321flyteidl/plugins/sagemaker/par"
-  "ameter_ranges.proto\032-flyteidl/plugins/sa"
-  "gemaker/training_job.proto\"\241\001\n\027Hyperpara"
-  "meterTuningJob\022=\n\014training_job\030\001 \001(\0132\'.f"
-  "lyteidl.plugins.sagemaker.TrainingJob\022#\n"
-  "\033max_number_of_training_jobs\030\002 \001(\003\022\"\n\032ma"
-  "x_parallel_training_jobs\030\003 \001(\003\"H\n!Hyperp"
-  "arameterTuningObjectiveType\"#\n\005Value\022\014\n\010"
-  "MINIMIZE\020\000\022\014\n\010MAXIMIZE\020\001\"\221\001\n\035Hyperparame"
-  "terTuningObjective\022[\n\016objective_type\030\001 \001"
-  "(\0162C.flyteidl.plugins.sagemaker.Hyperpar"
-  "ameterTuningObjectiveType.Value\022\023\n\013metri"
-  "c_name\030\002 \001(\t\"A\n\034HyperparameterTuningStra"
-  "tegy\"!\n\005Value\022\014\n\010BAYESIAN\020\000\022\n\n\006RANDOM\020\001\""
-  ":\n\034TrainingJobEarlyStoppingType\"\032\n\005Value"
-  "\022\007\n\003OFF\020\000\022\010\n\004AUTO\020\001\"\203\003\n\035HyperparameterTu"
-  "ningJobConfig\022J\n\025hyperparameter_ranges\030\001"
-  " \001(\0132+.flyteidl.plugins.sagemaker.Parame"
-  "terRanges\022W\n\017tuning_strategy\030\002 \001(\0162>.fly"
-  "teidl.plugins.sagemaker.HyperparameterTu"
-  "ningStrategy.Value\022S\n\020tuning_objective\030\003"
-  " \001(\01329.flyteidl.plugins.sagemaker.Hyperp"
-  "arameterTuningObjective\022h\n training_job_"
-  "early_stopping_type\030\004 \001(\0162>.flyteidl.plu"
-  "gins.sagemaker.TrainingJobEarlyStoppingT"
-  "ype.ValueB\?Z=github.com/flyteorg/flyte/f"
-  "lyteidl/gen/pb-go/flyteidl/pluginsb\006prot"
-  "o3"
-  ;
-::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto = {
-  false, InitDefaults_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto, 
-  descriptor_table_protodef_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto,
-  "flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto", &assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto, 1162,
-};
-
-void AddDescriptors_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto() {
-  static constexpr ::google::protobuf::internal::InitFunc deps[2] =
-  {
-    ::AddDescriptors_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto,
-    ::AddDescriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto,
-  };
- ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto, deps, 2);
-}
-
-// Force running AddDescriptors() at dynamic initialization time.
-static bool dynamic_init_dummy_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto = []() { AddDescriptors_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto(); return true; }();
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-const ::google::protobuf::EnumDescriptor* HyperparameterTuningObjectiveType_Value_descriptor() {
-  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto);
-  return file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[0];
-}
-bool HyperparameterTuningObjectiveType_Value_IsValid(int value) {
-  switch (value) {
-    case 0:
-    case 1:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const HyperparameterTuningObjectiveType_Value HyperparameterTuningObjectiveType::MINIMIZE;
-const HyperparameterTuningObjectiveType_Value HyperparameterTuningObjectiveType::MAXIMIZE;
-const HyperparameterTuningObjectiveType_Value HyperparameterTuningObjectiveType::Value_MIN;
-const HyperparameterTuningObjectiveType_Value HyperparameterTuningObjectiveType::Value_MAX;
-const int HyperparameterTuningObjectiveType::Value_ARRAYSIZE;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-const ::google::protobuf::EnumDescriptor* HyperparameterTuningStrategy_Value_descriptor() {
-  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto);
-  return file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[1];
-}
-bool HyperparameterTuningStrategy_Value_IsValid(int value) {
-  switch (value) {
-    case 0:
-    case 1:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const HyperparameterTuningStrategy_Value HyperparameterTuningStrategy::BAYESIAN;
-const HyperparameterTuningStrategy_Value HyperparameterTuningStrategy::RANDOM;
-const HyperparameterTuningStrategy_Value HyperparameterTuningStrategy::Value_MIN;
-const HyperparameterTuningStrategy_Value HyperparameterTuningStrategy::Value_MAX;
-const int HyperparameterTuningStrategy::Value_ARRAYSIZE;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-const ::google::protobuf::EnumDescriptor* TrainingJobEarlyStoppingType_Value_descriptor() {
-  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto);
-  return file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[2];
-}
-bool TrainingJobEarlyStoppingType_Value_IsValid(int value) {
-  switch (value) {
-    case 0:
-    case 1:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const TrainingJobEarlyStoppingType_Value TrainingJobEarlyStoppingType::OFF;
-const TrainingJobEarlyStoppingType_Value TrainingJobEarlyStoppingType::AUTO;
-const TrainingJobEarlyStoppingType_Value TrainingJobEarlyStoppingType::Value_MIN;
-const TrainingJobEarlyStoppingType_Value TrainingJobEarlyStoppingType::Value_MAX;
-const int TrainingJobEarlyStoppingType::Value_ARRAYSIZE;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-// ===================================================================
-
-void HyperparameterTuningJob::InitAsDefaultInstance() {
-  ::flyteidl::plugins::sagemaker::_HyperparameterTuningJob_default_instance_._instance.get_mutable()->training_job_ = const_cast< ::flyteidl::plugins::sagemaker::TrainingJob*>(
-      ::flyteidl::plugins::sagemaker::TrainingJob::internal_default_instance());
-}
-class HyperparameterTuningJob::HasBitSetters {
- public:
-  static const ::flyteidl::plugins::sagemaker::TrainingJob& training_job(const HyperparameterTuningJob* msg);
-};
-
-const ::flyteidl::plugins::sagemaker::TrainingJob&
-HyperparameterTuningJob::HasBitSetters::training_job(const HyperparameterTuningJob* msg) {
-  return *msg->training_job_;
-}
-void HyperparameterTuningJob::clear_training_job() {
-  if (GetArenaNoVirtual() == nullptr && training_job_ != nullptr) {
-    delete training_job_;
-  }
-  training_job_ = nullptr;
-}
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int HyperparameterTuningJob::kTrainingJobFieldNumber;
-const int HyperparameterTuningJob::kMaxNumberOfTrainingJobsFieldNumber;
-const int HyperparameterTuningJob::kMaxParallelTrainingJobsFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-HyperparameterTuningJob::HyperparameterTuningJob()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-}
-HyperparameterTuningJob::HyperparameterTuningJob(const HyperparameterTuningJob& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from.has_training_job()) {
-    training_job_ = new ::flyteidl::plugins::sagemaker::TrainingJob(*from.training_job_);
-  } else {
-    training_job_ = nullptr;
-  }
-  ::memcpy(&max_number_of_training_jobs_, &from.max_number_of_training_jobs_,
-    static_cast<size_t>(reinterpret_cast<char*>(&max_parallel_training_jobs_) -
-    reinterpret_cast<char*>(&max_number_of_training_jobs_)) + sizeof(max_parallel_training_jobs_));
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-}
-
-void HyperparameterTuningJob::SharedCtor() {
-  ::google::protobuf::internal::InitSCC(
-      &scc_info_HyperparameterTuningJob_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  ::memset(&training_job_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&max_parallel_training_jobs_) -
-      reinterpret_cast<char*>(&training_job_)) + sizeof(max_parallel_training_jobs_));
-}
-
-HyperparameterTuningJob::~HyperparameterTuningJob() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  SharedDtor();
-}
-
-void HyperparameterTuningJob::SharedDtor() {
-  if (this != internal_default_instance()) delete training_job_;
-}
-
-void HyperparameterTuningJob::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const HyperparameterTuningJob& HyperparameterTuningJob::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_HyperparameterTuningJob_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void HyperparameterTuningJob::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && training_job_ != nullptr) {
-    delete training_job_;
-  }
-  training_job_ = nullptr;
-  ::memset(&max_number_of_training_jobs_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&max_parallel_training_jobs_) -
-      reinterpret_cast<char*>(&max_number_of_training_jobs_)) + sizeof(max_parallel_training_jobs_));
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* HyperparameterTuningJob::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<HyperparameterTuningJob*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // .flyteidl.plugins.sagemaker.TrainingJob training_job = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        parser_till_end = ::flyteidl::plugins::sagemaker::TrainingJob::_InternalParse;
-        object = msg->mutable_training_job();
-        if (size > end - ptr) goto len_delim_till_end;
-        ptr += size;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
-            {parser_till_end, object}, ptr - size, ptr));
-        break;
-      }
-      // int64 max_number_of_training_jobs = 2;
-      case 2: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual;
-        msg->set_max_number_of_training_jobs(::google::protobuf::internal::ReadVarint(&ptr));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      // int64 max_parallel_training_jobs = 3;
-      case 3: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 24) goto handle_unusual;
-        msg->set_max_parallel_training_jobs(::google::protobuf::internal::ReadVarint(&ptr));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-len_delim_till_end:
-  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
-                               {parser_till_end, object}, size);
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool HyperparameterTuningJob::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // .flyteidl.plugins.sagemaker.TrainingJob training_job = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
-               input, mutable_training_job()));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // int64 max_number_of_training_jobs = 2;
-      case 2: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) {
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &max_number_of_training_jobs_)));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // int64 max_parallel_training_jobs = 3;
-      case 3: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (24 & 0xFF)) {
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &max_parallel_training_jobs_)));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void HyperparameterTuningJob::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.TrainingJob training_job = 1;
-  if (this->has_training_job()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, HasBitSetters::training_job(this), output);
-  }
-
-  // int64 max_number_of_training_jobs = 2;
-  if (this->max_number_of_training_jobs() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->max_number_of_training_jobs(), output);
-  }
-
-  // int64 max_parallel_training_jobs = 3;
-  if (this->max_parallel_training_jobs() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(3, this->max_parallel_training_jobs(), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-}
-
-::google::protobuf::uint8* HyperparameterTuningJob::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.TrainingJob training_job = 1;
-  if (this->has_training_job()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageToArray(
-        1, HasBitSetters::training_job(this), target);
-  }
-
-  // int64 max_number_of_training_jobs = 2;
-  if (this->max_number_of_training_jobs() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->max_number_of_training_jobs(), target);
-  }
-
-  // int64 max_parallel_training_jobs = 3;
-  if (this->max_parallel_training_jobs() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(3, this->max_parallel_training_jobs(), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  return target;
-}
-
-size_t HyperparameterTuningJob::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.TrainingJob training_job = 1;
-  if (this->has_training_job()) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *training_job_);
-  }
-
-  // int64 max_number_of_training_jobs = 2;
-  if (this->max_number_of_training_jobs() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->max_number_of_training_jobs());
-  }
-
-  // int64 max_parallel_training_jobs = 3;
-  if (this->max_parallel_training_jobs() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->max_parallel_training_jobs());
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void HyperparameterTuningJob::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  GOOGLE_DCHECK_NE(&from, this);
-  const HyperparameterTuningJob* source =
-      ::google::protobuf::DynamicCastToGenerated<HyperparameterTuningJob>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-    MergeFrom(*source);
-  }
-}
-
-void HyperparameterTuningJob::MergeFrom(const HyperparameterTuningJob& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_training_job()) {
-    mutable_training_job()->::flyteidl::plugins::sagemaker::TrainingJob::MergeFrom(from.training_job());
-  }
-  if (from.max_number_of_training_jobs() != 0) {
-    set_max_number_of_training_jobs(from.max_number_of_training_jobs());
-  }
-  if (from.max_parallel_training_jobs() != 0) {
-    set_max_parallel_training_jobs(from.max_parallel_training_jobs());
-  }
-}
-
-void HyperparameterTuningJob::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void HyperparameterTuningJob::CopyFrom(const HyperparameterTuningJob& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool HyperparameterTuningJob::IsInitialized() const {
-  return true;
-}
-
-void HyperparameterTuningJob::Swap(HyperparameterTuningJob* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void HyperparameterTuningJob::InternalSwap(HyperparameterTuningJob* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(training_job_, other->training_job_);
-  swap(max_number_of_training_jobs_, other->max_number_of_training_jobs_);
-  swap(max_parallel_training_jobs_, other->max_parallel_training_jobs_);
-}
-
-::google::protobuf::Metadata HyperparameterTuningJob::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void HyperparameterTuningObjectiveType::InitAsDefaultInstance() {
-}
-class HyperparameterTuningObjectiveType::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-HyperparameterTuningObjectiveType::HyperparameterTuningObjectiveType()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-}
-HyperparameterTuningObjectiveType::HyperparameterTuningObjectiveType(const HyperparameterTuningObjectiveType& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-}
-
-void HyperparameterTuningObjectiveType::SharedCtor() {
-}
-
-HyperparameterTuningObjectiveType::~HyperparameterTuningObjectiveType() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  SharedDtor();
-}
-
-void HyperparameterTuningObjectiveType::SharedDtor() {
-}
-
-void HyperparameterTuningObjectiveType::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const HyperparameterTuningObjectiveType& HyperparameterTuningObjectiveType::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_HyperparameterTuningObjectiveType_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void HyperparameterTuningObjectiveType::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* HyperparameterTuningObjectiveType::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<HyperparameterTuningObjectiveType*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      default: {
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool HyperparameterTuningObjectiveType::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-  handle_unusual:
-    if (tag == 0) {
-      goto success;
-    }
-    DO_(::google::protobuf::internal::WireFormat::SkipField(
-          input, tag, _internal_metadata_.mutable_unknown_fields()));
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void HyperparameterTuningObjectiveType::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-}
-
-::google::protobuf::uint8* HyperparameterTuningObjectiveType::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  return target;
-}
-
-size_t HyperparameterTuningObjectiveType::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void HyperparameterTuningObjectiveType::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  GOOGLE_DCHECK_NE(&from, this);
-  const HyperparameterTuningObjectiveType* source =
-      ::google::protobuf::DynamicCastToGenerated<HyperparameterTuningObjectiveType>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-    MergeFrom(*source);
-  }
-}
-
-void HyperparameterTuningObjectiveType::MergeFrom(const HyperparameterTuningObjectiveType& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-}
-
-void HyperparameterTuningObjectiveType::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void HyperparameterTuningObjectiveType::CopyFrom(const HyperparameterTuningObjectiveType& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool HyperparameterTuningObjectiveType::IsInitialized() const {
-  return true;
-}
-
-void HyperparameterTuningObjectiveType::Swap(HyperparameterTuningObjectiveType* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void HyperparameterTuningObjectiveType::InternalSwap(HyperparameterTuningObjectiveType* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-}
-
-::google::protobuf::Metadata HyperparameterTuningObjectiveType::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void HyperparameterTuningObjective::InitAsDefaultInstance() {
-}
-class HyperparameterTuningObjective::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int HyperparameterTuningObjective::kObjectiveTypeFieldNumber;
-const int HyperparameterTuningObjective::kMetricNameFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-HyperparameterTuningObjective::HyperparameterTuningObjective()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-}
-HyperparameterTuningObjective::HyperparameterTuningObjective(const HyperparameterTuningObjective& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  metric_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (from.metric_name().size() > 0) {
-    metric_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.metric_name_);
-  }
-  objective_type_ = from.objective_type_;
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-}
-
-void HyperparameterTuningObjective::SharedCtor() {
-  ::google::protobuf::internal::InitSCC(
-      &scc_info_HyperparameterTuningObjective_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  metric_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  objective_type_ = 0;
-}
-
-HyperparameterTuningObjective::~HyperparameterTuningObjective() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  SharedDtor();
-}
-
-void HyperparameterTuningObjective::SharedDtor() {
-  metric_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-void HyperparameterTuningObjective::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const HyperparameterTuningObjective& HyperparameterTuningObjective::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_HyperparameterTuningObjective_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void HyperparameterTuningObjective::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  metric_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  objective_type_ = 0;
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* HyperparameterTuningObjective::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<HyperparameterTuningObjective*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // .flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual;
-        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
-        msg->set_objective_type(static_cast<::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType_Value>(val));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      // string metric_name = 2;
-      case 2: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        ctx->extra_parse_data().SetFieldName("flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name");
-        object = msg->mutable_metric_name();
-        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
-          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
-          goto string_till_end;
-        }
-        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
-        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
-        ptr += size;
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-string_till_end:
-  static_cast<::std::string*>(object)->clear();
-  static_cast<::std::string*>(object)->reserve(size);
-  goto len_delim_till_end;
-len_delim_till_end:
-  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
-                               {parser_till_end, object}, size);
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool HyperparameterTuningObjective::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // .flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) {
-          int value = 0;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          set_objective_type(static_cast< ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType_Value >(value));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // string metric_name = 2;
-      case 2: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_metric_name()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->metric_name().data(), static_cast<int>(this->metric_name().length()),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name"));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void HyperparameterTuningObjective::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;
-  if (this->objective_type() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      1, this->objective_type(), output);
-  }
-
-  // string metric_name = 2;
-  if (this->metric_name().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->metric_name().data(), static_cast<int>(this->metric_name().length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      2, this->metric_name(), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-}
-
-::google::protobuf::uint8* HyperparameterTuningObjective::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;
-  if (this->objective_type() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      1, this->objective_type(), target);
-  }
-
-  // string metric_name = 2;
-  if (this->metric_name().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->metric_name().data(), static_cast<int>(this->metric_name().length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        2, this->metric_name(), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  return target;
-}
-
-size_t HyperparameterTuningObjective::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // string metric_name = 2;
-  if (this->metric_name().size() > 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->metric_name());
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;
-  if (this->objective_type() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::EnumSize(this->objective_type());
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void HyperparameterTuningObjective::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  GOOGLE_DCHECK_NE(&from, this);
-  const HyperparameterTuningObjective* source =
-      ::google::protobuf::DynamicCastToGenerated<HyperparameterTuningObjective>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-    MergeFrom(*source);
-  }
-}
-
-void HyperparameterTuningObjective::MergeFrom(const HyperparameterTuningObjective& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.metric_name().size() > 0) {
-
-    metric_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.metric_name_);
-  }
-  if (from.objective_type() != 0) {
-    set_objective_type(from.objective_type());
-  }
-}
-
-void HyperparameterTuningObjective::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void HyperparameterTuningObjective::CopyFrom(const HyperparameterTuningObjective& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool HyperparameterTuningObjective::IsInitialized() const {
-  return true;
-}
-
-void HyperparameterTuningObjective::Swap(HyperparameterTuningObjective* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void HyperparameterTuningObjective::InternalSwap(HyperparameterTuningObjective* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  metric_name_.Swap(&other->metric_name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(objective_type_, other->objective_type_);
-}
-
-::google::protobuf::Metadata HyperparameterTuningObjective::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void HyperparameterTuningStrategy::InitAsDefaultInstance() {
-}
-class HyperparameterTuningStrategy::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-HyperparameterTuningStrategy::HyperparameterTuningStrategy()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-}
-HyperparameterTuningStrategy::HyperparameterTuningStrategy(const HyperparameterTuningStrategy& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-}
-
-void HyperparameterTuningStrategy::SharedCtor() {
-}
-
-HyperparameterTuningStrategy::~HyperparameterTuningStrategy() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  SharedDtor();
-}
-
-void HyperparameterTuningStrategy::SharedDtor() {
-}
-
-void HyperparameterTuningStrategy::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const HyperparameterTuningStrategy& HyperparameterTuningStrategy::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_HyperparameterTuningStrategy_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void HyperparameterTuningStrategy::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* HyperparameterTuningStrategy::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<HyperparameterTuningStrategy*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      default: {
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool HyperparameterTuningStrategy::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-  handle_unusual:
-    if (tag == 0) {
-      goto success;
-    }
-    DO_(::google::protobuf::internal::WireFormat::SkipField(
-          input, tag, _internal_metadata_.mutable_unknown_fields()));
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void HyperparameterTuningStrategy::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-}
-
-::google::protobuf::uint8* HyperparameterTuningStrategy::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  return target;
-}
-
-size_t HyperparameterTuningStrategy::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void HyperparameterTuningStrategy::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  GOOGLE_DCHECK_NE(&from, this);
-  const HyperparameterTuningStrategy* source =
-      ::google::protobuf::DynamicCastToGenerated<HyperparameterTuningStrategy>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-    MergeFrom(*source);
-  }
-}
-
-void HyperparameterTuningStrategy::MergeFrom(const HyperparameterTuningStrategy& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-}
-
-void HyperparameterTuningStrategy::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void HyperparameterTuningStrategy::CopyFrom(const HyperparameterTuningStrategy& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool HyperparameterTuningStrategy::IsInitialized() const {
-  return true;
-}
-
-void HyperparameterTuningStrategy::Swap(HyperparameterTuningStrategy* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void HyperparameterTuningStrategy::InternalSwap(HyperparameterTuningStrategy* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-}
-
-::google::protobuf::Metadata HyperparameterTuningStrategy::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void TrainingJobEarlyStoppingType::InitAsDefaultInstance() {
-}
-class TrainingJobEarlyStoppingType::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-TrainingJobEarlyStoppingType::TrainingJobEarlyStoppingType()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-}
-TrainingJobEarlyStoppingType::TrainingJobEarlyStoppingType(const TrainingJobEarlyStoppingType& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-}
-
-void TrainingJobEarlyStoppingType::SharedCtor() {
-}
-
-TrainingJobEarlyStoppingType::~TrainingJobEarlyStoppingType() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  SharedDtor();
-}
-
-void TrainingJobEarlyStoppingType::SharedDtor() {
-}
-
-void TrainingJobEarlyStoppingType::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const TrainingJobEarlyStoppingType& TrainingJobEarlyStoppingType::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_TrainingJobEarlyStoppingType_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void TrainingJobEarlyStoppingType::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* TrainingJobEarlyStoppingType::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<TrainingJobEarlyStoppingType*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      default: {
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool TrainingJobEarlyStoppingType::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-  handle_unusual:
-    if (tag == 0) {
-      goto success;
-    }
-    DO_(::google::protobuf::internal::WireFormat::SkipField(
-          input, tag, _internal_metadata_.mutable_unknown_fields()));
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void TrainingJobEarlyStoppingType::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-}
-
-::google::protobuf::uint8* TrainingJobEarlyStoppingType::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  return target;
-}
-
-size_t TrainingJobEarlyStoppingType::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void TrainingJobEarlyStoppingType::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  GOOGLE_DCHECK_NE(&from, this);
-  const TrainingJobEarlyStoppingType* source =
-      ::google::protobuf::DynamicCastToGenerated<TrainingJobEarlyStoppingType>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-    MergeFrom(*source);
-  }
-}
-
-void TrainingJobEarlyStoppingType::MergeFrom(const TrainingJobEarlyStoppingType& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-}
-
-void TrainingJobEarlyStoppingType::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void TrainingJobEarlyStoppingType::CopyFrom(const TrainingJobEarlyStoppingType& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool TrainingJobEarlyStoppingType::IsInitialized() const {
-  return true;
-}
-
-void TrainingJobEarlyStoppingType::Swap(TrainingJobEarlyStoppingType* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void TrainingJobEarlyStoppingType::InternalSwap(TrainingJobEarlyStoppingType* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-}
-
-::google::protobuf::Metadata TrainingJobEarlyStoppingType::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void HyperparameterTuningJobConfig::InitAsDefaultInstance() {
-  ::flyteidl::plugins::sagemaker::_HyperparameterTuningJobConfig_default_instance_._instance.get_mutable()->hyperparameter_ranges_ = const_cast< ::flyteidl::plugins::sagemaker::ParameterRanges*>(
-      ::flyteidl::plugins::sagemaker::ParameterRanges::internal_default_instance());
-  ::flyteidl::plugins::sagemaker::_HyperparameterTuningJobConfig_default_instance_._instance.get_mutable()->tuning_objective_ = const_cast< ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective*>(
-      ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective::internal_default_instance());
-}
-class HyperparameterTuningJobConfig::HasBitSetters {
- public:
-  static const ::flyteidl::plugins::sagemaker::ParameterRanges& hyperparameter_ranges(const HyperparameterTuningJobConfig* msg);
-  static const ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective& tuning_objective(const HyperparameterTuningJobConfig* msg);
-};
-
-const ::flyteidl::plugins::sagemaker::ParameterRanges&
-HyperparameterTuningJobConfig::HasBitSetters::hyperparameter_ranges(const HyperparameterTuningJobConfig* msg) {
-  return *msg->hyperparameter_ranges_;
-}
-const ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective&
-HyperparameterTuningJobConfig::HasBitSetters::tuning_objective(const HyperparameterTuningJobConfig* msg) {
-  return *msg->tuning_objective_;
-}
-void HyperparameterTuningJobConfig::clear_hyperparameter_ranges() {
-  if (GetArenaNoVirtual() == nullptr && hyperparameter_ranges_ != nullptr) {
-    delete hyperparameter_ranges_;
-  }
-  hyperparameter_ranges_ = nullptr;
-}
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int HyperparameterTuningJobConfig::kHyperparameterRangesFieldNumber;
-const int HyperparameterTuningJobConfig::kTuningStrategyFieldNumber;
-const int HyperparameterTuningJobConfig::kTuningObjectiveFieldNumber;
-const int HyperparameterTuningJobConfig::kTrainingJobEarlyStoppingTypeFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-HyperparameterTuningJobConfig::HyperparameterTuningJobConfig()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-}
-HyperparameterTuningJobConfig::HyperparameterTuningJobConfig(const HyperparameterTuningJobConfig& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from.has_hyperparameter_ranges()) {
-    hyperparameter_ranges_ = new ::flyteidl::plugins::sagemaker::ParameterRanges(*from.hyperparameter_ranges_);
-  } else {
-    hyperparameter_ranges_ = nullptr;
-  }
-  if (from.has_tuning_objective()) {
-    tuning_objective_ = new ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective(*from.tuning_objective_);
-  } else {
-    tuning_objective_ = nullptr;
-  }
-  ::memcpy(&tuning_strategy_, &from.tuning_strategy_,
-    static_cast<size_t>(reinterpret_cast<char*>(&training_job_early_stopping_type_) -
-    reinterpret_cast<char*>(&tuning_strategy_)) + sizeof(training_job_early_stopping_type_));
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-}
-
-void HyperparameterTuningJobConfig::SharedCtor() {
-  ::google::protobuf::internal::InitSCC(
-      &scc_info_HyperparameterTuningJobConfig_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  ::memset(&hyperparameter_ranges_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&training_job_early_stopping_type_) -
-      reinterpret_cast<char*>(&hyperparameter_ranges_)) + sizeof(training_job_early_stopping_type_));
-}
-
-HyperparameterTuningJobConfig::~HyperparameterTuningJobConfig() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  SharedDtor();
-}
-
-void HyperparameterTuningJobConfig::SharedDtor() {
-  if (this != internal_default_instance()) delete hyperparameter_ranges_;
-  if (this != internal_default_instance()) delete tuning_objective_;
-}
-
-void HyperparameterTuningJobConfig::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const HyperparameterTuningJobConfig& HyperparameterTuningJobConfig::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_HyperparameterTuningJobConfig_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void HyperparameterTuningJobConfig::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && hyperparameter_ranges_ != nullptr) {
-    delete hyperparameter_ranges_;
-  }
-  hyperparameter_ranges_ = nullptr;
-  if (GetArenaNoVirtual() == nullptr && tuning_objective_ != nullptr) {
-    delete tuning_objective_;
-  }
-  tuning_objective_ = nullptr;
-  ::memset(&tuning_strategy_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&training_job_early_stopping_type_) -
-      reinterpret_cast<char*>(&tuning_strategy_)) + sizeof(training_job_early_stopping_type_));
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* HyperparameterTuningJobConfig::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<HyperparameterTuningJobConfig*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // .flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        parser_till_end = ::flyteidl::plugins::sagemaker::ParameterRanges::_InternalParse;
-        object = msg->mutable_hyperparameter_ranges();
-        if (size > end - ptr) goto len_delim_till_end;
-        ptr += size;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
-            {parser_till_end, object}, ptr - size, ptr));
-        break;
-      }
-      // .flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;
-      case 2: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual;
-        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
-        msg->set_tuning_strategy(static_cast<::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy_Value>(val));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      // .flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;
-      case 3: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        parser_till_end = ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective::_InternalParse;
-        object = msg->mutable_tuning_objective();
-        if (size > end - ptr) goto len_delim_till_end;
-        ptr += size;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
-            {parser_till_end, object}, ptr - size, ptr));
-        break;
-      }
-      // .flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;
-      case 4: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 32) goto handle_unusual;
-        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
-        msg->set_training_job_early_stopping_type(static_cast<::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType_Value>(val));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-len_delim_till_end:
-  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
-                               {parser_till_end, object}, size);
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool HyperparameterTuningJobConfig::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // .flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
-               input, mutable_hyperparameter_ranges()));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // .flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;
-      case 2: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) {
-          int value = 0;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          set_tuning_strategy(static_cast< ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy_Value >(value));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // .flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;
-      case 3: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
-               input, mutable_tuning_objective()));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // .flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;
-      case 4: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (32 & 0xFF)) {
-          int value = 0;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          set_training_job_early_stopping_type(static_cast< ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType_Value >(value));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void HyperparameterTuningJobConfig::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;
-  if (this->has_hyperparameter_ranges()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, HasBitSetters::hyperparameter_ranges(this), output);
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;
-  if (this->tuning_strategy() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      2, this->tuning_strategy(), output);
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;
-  if (this->has_tuning_objective()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      3, HasBitSetters::tuning_objective(this), output);
-  }
-
-  // .flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;
-  if (this->training_job_early_stopping_type() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      4, this->training_job_early_stopping_type(), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-}
-
-::google::protobuf::uint8* HyperparameterTuningJobConfig::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;
-  if (this->has_hyperparameter_ranges()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageToArray(
-        1, HasBitSetters::hyperparameter_ranges(this), target);
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;
-  if (this->tuning_strategy() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      2, this->tuning_strategy(), target);
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;
-  if (this->has_tuning_objective()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageToArray(
-        3, HasBitSetters::tuning_objective(this), target);
-  }
-
-  // .flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;
-  if (this->training_job_early_stopping_type() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      4, this->training_job_early_stopping_type(), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  return target;
-}
-
-size_t HyperparameterTuningJobConfig::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;
-  if (this->has_hyperparameter_ranges()) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *hyperparameter_ranges_);
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;
-  if (this->has_tuning_objective()) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *tuning_objective_);
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;
-  if (this->tuning_strategy() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::EnumSize(this->tuning_strategy());
-  }
-
-  // .flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;
-  if (this->training_job_early_stopping_type() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::EnumSize(this->training_job_early_stopping_type());
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void HyperparameterTuningJobConfig::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  GOOGLE_DCHECK_NE(&from, this);
-  const HyperparameterTuningJobConfig* source =
-      ::google::protobuf::DynamicCastToGenerated<HyperparameterTuningJobConfig>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-    MergeFrom(*source);
-  }
-}
-
-void HyperparameterTuningJobConfig::MergeFrom(const HyperparameterTuningJobConfig& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_hyperparameter_ranges()) {
-    mutable_hyperparameter_ranges()->::flyteidl::plugins::sagemaker::ParameterRanges::MergeFrom(from.hyperparameter_ranges());
-  }
-  if (from.has_tuning_objective()) {
-    mutable_tuning_objective()->::flyteidl::plugins::sagemaker::HyperparameterTuningObjective::MergeFrom(from.tuning_objective());
-  }
-  if (from.tuning_strategy() != 0) {
-    set_tuning_strategy(from.tuning_strategy());
-  }
-  if (from.training_job_early_stopping_type() != 0) {
-    set_training_job_early_stopping_type(from.training_job_early_stopping_type());
-  }
-}
-
-void HyperparameterTuningJobConfig::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void HyperparameterTuningJobConfig::CopyFrom(const HyperparameterTuningJobConfig& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool HyperparameterTuningJobConfig::IsInitialized() const {
-  return true;
-}
-
-void HyperparameterTuningJobConfig::Swap(HyperparameterTuningJobConfig* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void HyperparameterTuningJobConfig::InternalSwap(HyperparameterTuningJobConfig* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(hyperparameter_ranges_, other->hyperparameter_ranges_);
-  swap(tuning_objective_, other->tuning_objective_);
-  swap(tuning_strategy_, other->tuning_strategy_);
-  swap(training_job_early_stopping_type_, other->training_job_early_stopping_type_);
-}
-
-::google::protobuf::Metadata HyperparameterTuningJobConfig::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-namespace google {
-namespace protobuf {
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::HyperparameterTuningJob* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::HyperparameterTuningJob >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::HyperparameterTuningJob >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig >(arena);
-}
-}  // namespace protobuf
-}  // namespace google
-
-// @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.h b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.h
deleted file mode 100644
index 1e09a9443a..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.h
+++ /dev/null
@@ -1,1283 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto
-
-#ifndef PROTOBUF_INCLUDED_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto
-#define PROTOBUF_INCLUDED_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto
-
-#include <limits>
-#include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3007000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3007000 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include <google/protobuf/generated_enum_reflection.h>
-#include <google/protobuf/unknown_field_set.h>
-#include "flyteidl/plugins/sagemaker/parameter_ranges.pb.h"
-#include "flyteidl/plugins/sagemaker/training_job.pb.h"
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-#define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto
-
-// Internal implementation detail -- do not use these members.
-struct TableStruct_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto {
-  static const ::google::protobuf::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::google::protobuf::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::google::protobuf::internal::ParseTable schema[6]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
-  static const ::google::protobuf::internal::SerializationTable serialization_table[];
-  static const ::google::protobuf::uint32 offsets[];
-};
-void AddDescriptors_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto();
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-class HyperparameterTuningJob;
-class HyperparameterTuningJobDefaultTypeInternal;
-extern HyperparameterTuningJobDefaultTypeInternal _HyperparameterTuningJob_default_instance_;
-class HyperparameterTuningJobConfig;
-class HyperparameterTuningJobConfigDefaultTypeInternal;
-extern HyperparameterTuningJobConfigDefaultTypeInternal _HyperparameterTuningJobConfig_default_instance_;
-class HyperparameterTuningObjective;
-class HyperparameterTuningObjectiveDefaultTypeInternal;
-extern HyperparameterTuningObjectiveDefaultTypeInternal _HyperparameterTuningObjective_default_instance_;
-class HyperparameterTuningObjectiveType;
-class HyperparameterTuningObjectiveTypeDefaultTypeInternal;
-extern HyperparameterTuningObjectiveTypeDefaultTypeInternal _HyperparameterTuningObjectiveType_default_instance_;
-class HyperparameterTuningStrategy;
-class HyperparameterTuningStrategyDefaultTypeInternal;
-extern HyperparameterTuningStrategyDefaultTypeInternal _HyperparameterTuningStrategy_default_instance_;
-class TrainingJobEarlyStoppingType;
-class TrainingJobEarlyStoppingTypeDefaultTypeInternal;
-extern TrainingJobEarlyStoppingTypeDefaultTypeInternal _TrainingJobEarlyStoppingType_default_instance_;
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-namespace google {
-namespace protobuf {
-template<> ::flyteidl::plugins::sagemaker::HyperparameterTuningJob* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::HyperparameterTuningJob>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::HyperparameterTuningJobConfig>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::HyperparameterTuningObjective>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType>(Arena*);
-}  // namespace protobuf
-}  // namespace google
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-
-enum HyperparameterTuningObjectiveType_Value {
-  HyperparameterTuningObjectiveType_Value_MINIMIZE = 0,
-  HyperparameterTuningObjectiveType_Value_MAXIMIZE = 1,
-  HyperparameterTuningObjectiveType_Value_HyperparameterTuningObjectiveType_Value_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
-  HyperparameterTuningObjectiveType_Value_HyperparameterTuningObjectiveType_Value_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
-};
-bool HyperparameterTuningObjectiveType_Value_IsValid(int value);
-const HyperparameterTuningObjectiveType_Value HyperparameterTuningObjectiveType_Value_Value_MIN = HyperparameterTuningObjectiveType_Value_MINIMIZE;
-const HyperparameterTuningObjectiveType_Value HyperparameterTuningObjectiveType_Value_Value_MAX = HyperparameterTuningObjectiveType_Value_MAXIMIZE;
-const int HyperparameterTuningObjectiveType_Value_Value_ARRAYSIZE = HyperparameterTuningObjectiveType_Value_Value_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* HyperparameterTuningObjectiveType_Value_descriptor();
-inline const ::std::string& HyperparameterTuningObjectiveType_Value_Name(HyperparameterTuningObjectiveType_Value value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    HyperparameterTuningObjectiveType_Value_descriptor(), value);
-}
-inline bool HyperparameterTuningObjectiveType_Value_Parse(
-    const ::std::string& name, HyperparameterTuningObjectiveType_Value* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<HyperparameterTuningObjectiveType_Value>(
-    HyperparameterTuningObjectiveType_Value_descriptor(), name, value);
-}
-enum HyperparameterTuningStrategy_Value {
-  HyperparameterTuningStrategy_Value_BAYESIAN = 0,
-  HyperparameterTuningStrategy_Value_RANDOM = 1,
-  HyperparameterTuningStrategy_Value_HyperparameterTuningStrategy_Value_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
-  HyperparameterTuningStrategy_Value_HyperparameterTuningStrategy_Value_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
-};
-bool HyperparameterTuningStrategy_Value_IsValid(int value);
-const HyperparameterTuningStrategy_Value HyperparameterTuningStrategy_Value_Value_MIN = HyperparameterTuningStrategy_Value_BAYESIAN;
-const HyperparameterTuningStrategy_Value HyperparameterTuningStrategy_Value_Value_MAX = HyperparameterTuningStrategy_Value_RANDOM;
-const int HyperparameterTuningStrategy_Value_Value_ARRAYSIZE = HyperparameterTuningStrategy_Value_Value_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* HyperparameterTuningStrategy_Value_descriptor();
-inline const ::std::string& HyperparameterTuningStrategy_Value_Name(HyperparameterTuningStrategy_Value value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    HyperparameterTuningStrategy_Value_descriptor(), value);
-}
-inline bool HyperparameterTuningStrategy_Value_Parse(
-    const ::std::string& name, HyperparameterTuningStrategy_Value* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<HyperparameterTuningStrategy_Value>(
-    HyperparameterTuningStrategy_Value_descriptor(), name, value);
-}
-enum TrainingJobEarlyStoppingType_Value {
-  TrainingJobEarlyStoppingType_Value_OFF = 0,
-  TrainingJobEarlyStoppingType_Value_AUTO = 1,
-  TrainingJobEarlyStoppingType_Value_TrainingJobEarlyStoppingType_Value_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
-  TrainingJobEarlyStoppingType_Value_TrainingJobEarlyStoppingType_Value_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
-};
-bool TrainingJobEarlyStoppingType_Value_IsValid(int value);
-const TrainingJobEarlyStoppingType_Value TrainingJobEarlyStoppingType_Value_Value_MIN = TrainingJobEarlyStoppingType_Value_OFF;
-const TrainingJobEarlyStoppingType_Value TrainingJobEarlyStoppingType_Value_Value_MAX = TrainingJobEarlyStoppingType_Value_AUTO;
-const int TrainingJobEarlyStoppingType_Value_Value_ARRAYSIZE = TrainingJobEarlyStoppingType_Value_Value_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* TrainingJobEarlyStoppingType_Value_descriptor();
-inline const ::std::string& TrainingJobEarlyStoppingType_Value_Name(TrainingJobEarlyStoppingType_Value value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    TrainingJobEarlyStoppingType_Value_descriptor(), value);
-}
-inline bool TrainingJobEarlyStoppingType_Value_Parse(
-    const ::std::string& name, TrainingJobEarlyStoppingType_Value* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<TrainingJobEarlyStoppingType_Value>(
-    TrainingJobEarlyStoppingType_Value_descriptor(), name, value);
-}
-// ===================================================================
-
-class HyperparameterTuningJob final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.HyperparameterTuningJob) */ {
- public:
-  HyperparameterTuningJob();
-  virtual ~HyperparameterTuningJob();
-
-  HyperparameterTuningJob(const HyperparameterTuningJob& from);
-
-  inline HyperparameterTuningJob& operator=(const HyperparameterTuningJob& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  HyperparameterTuningJob(HyperparameterTuningJob&& from) noexcept
-    : HyperparameterTuningJob() {
-    *this = ::std::move(from);
-  }
-
-  inline HyperparameterTuningJob& operator=(HyperparameterTuningJob&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const HyperparameterTuningJob& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const HyperparameterTuningJob* internal_default_instance() {
-    return reinterpret_cast<const HyperparameterTuningJob*>(
-               &_HyperparameterTuningJob_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    0;
-
-  void Swap(HyperparameterTuningJob* other);
-  friend void swap(HyperparameterTuningJob& a, HyperparameterTuningJob& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline HyperparameterTuningJob* New() const final {
-    return CreateMaybeMessage<HyperparameterTuningJob>(nullptr);
-  }
-
-  HyperparameterTuningJob* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<HyperparameterTuningJob>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const HyperparameterTuningJob& from);
-  void MergeFrom(const HyperparameterTuningJob& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(HyperparameterTuningJob* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // .flyteidl.plugins.sagemaker.TrainingJob training_job = 1;
-  bool has_training_job() const;
-  void clear_training_job();
-  static const int kTrainingJobFieldNumber = 1;
-  const ::flyteidl::plugins::sagemaker::TrainingJob& training_job() const;
-  ::flyteidl::plugins::sagemaker::TrainingJob* release_training_job();
-  ::flyteidl::plugins::sagemaker::TrainingJob* mutable_training_job();
-  void set_allocated_training_job(::flyteidl::plugins::sagemaker::TrainingJob* training_job);
-
-  // int64 max_number_of_training_jobs = 2;
-  void clear_max_number_of_training_jobs();
-  static const int kMaxNumberOfTrainingJobsFieldNumber = 2;
-  ::google::protobuf::int64 max_number_of_training_jobs() const;
-  void set_max_number_of_training_jobs(::google::protobuf::int64 value);
-
-  // int64 max_parallel_training_jobs = 3;
-  void clear_max_parallel_training_jobs();
-  static const int kMaxParallelTrainingJobsFieldNumber = 3;
-  ::google::protobuf::int64 max_parallel_training_jobs() const;
-  void set_max_parallel_training_jobs(::google::protobuf::int64 value);
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::flyteidl::plugins::sagemaker::TrainingJob* training_job_;
-  ::google::protobuf::int64 max_number_of_training_jobs_;
-  ::google::protobuf::int64 max_parallel_training_jobs_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class HyperparameterTuningObjectiveType final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType) */ {
- public:
-  HyperparameterTuningObjectiveType();
-  virtual ~HyperparameterTuningObjectiveType();
-
-  HyperparameterTuningObjectiveType(const HyperparameterTuningObjectiveType& from);
-
-  inline HyperparameterTuningObjectiveType& operator=(const HyperparameterTuningObjectiveType& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  HyperparameterTuningObjectiveType(HyperparameterTuningObjectiveType&& from) noexcept
-    : HyperparameterTuningObjectiveType() {
-    *this = ::std::move(from);
-  }
-
-  inline HyperparameterTuningObjectiveType& operator=(HyperparameterTuningObjectiveType&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const HyperparameterTuningObjectiveType& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const HyperparameterTuningObjectiveType* internal_default_instance() {
-    return reinterpret_cast<const HyperparameterTuningObjectiveType*>(
-               &_HyperparameterTuningObjectiveType_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    1;
-
-  void Swap(HyperparameterTuningObjectiveType* other);
-  friend void swap(HyperparameterTuningObjectiveType& a, HyperparameterTuningObjectiveType& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline HyperparameterTuningObjectiveType* New() const final {
-    return CreateMaybeMessage<HyperparameterTuningObjectiveType>(nullptr);
-  }
-
-  HyperparameterTuningObjectiveType* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<HyperparameterTuningObjectiveType>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const HyperparameterTuningObjectiveType& from);
-  void MergeFrom(const HyperparameterTuningObjectiveType& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(HyperparameterTuningObjectiveType* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  typedef HyperparameterTuningObjectiveType_Value Value;
-  static const Value MINIMIZE =
-    HyperparameterTuningObjectiveType_Value_MINIMIZE;
-  static const Value MAXIMIZE =
-    HyperparameterTuningObjectiveType_Value_MAXIMIZE;
-  static inline bool Value_IsValid(int value) {
-    return HyperparameterTuningObjectiveType_Value_IsValid(value);
-  }
-  static const Value Value_MIN =
-    HyperparameterTuningObjectiveType_Value_Value_MIN;
-  static const Value Value_MAX =
-    HyperparameterTuningObjectiveType_Value_Value_MAX;
-  static const int Value_ARRAYSIZE =
-    HyperparameterTuningObjectiveType_Value_Value_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  Value_descriptor() {
-    return HyperparameterTuningObjectiveType_Value_descriptor();
-  }
-  static inline const ::std::string& Value_Name(Value value) {
-    return HyperparameterTuningObjectiveType_Value_Name(value);
-  }
-  static inline bool Value_Parse(const ::std::string& name,
-      Value* value) {
-    return HyperparameterTuningObjectiveType_Value_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class HyperparameterTuningObjective final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.HyperparameterTuningObjective) */ {
- public:
-  HyperparameterTuningObjective();
-  virtual ~HyperparameterTuningObjective();
-
-  HyperparameterTuningObjective(const HyperparameterTuningObjective& from);
-
-  inline HyperparameterTuningObjective& operator=(const HyperparameterTuningObjective& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  HyperparameterTuningObjective(HyperparameterTuningObjective&& from) noexcept
-    : HyperparameterTuningObjective() {
-    *this = ::std::move(from);
-  }
-
-  inline HyperparameterTuningObjective& operator=(HyperparameterTuningObjective&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const HyperparameterTuningObjective& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const HyperparameterTuningObjective* internal_default_instance() {
-    return reinterpret_cast<const HyperparameterTuningObjective*>(
-               &_HyperparameterTuningObjective_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    2;
-
-  void Swap(HyperparameterTuningObjective* other);
-  friend void swap(HyperparameterTuningObjective& a, HyperparameterTuningObjective& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline HyperparameterTuningObjective* New() const final {
-    return CreateMaybeMessage<HyperparameterTuningObjective>(nullptr);
-  }
-
-  HyperparameterTuningObjective* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<HyperparameterTuningObjective>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const HyperparameterTuningObjective& from);
-  void MergeFrom(const HyperparameterTuningObjective& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(HyperparameterTuningObjective* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // string metric_name = 2;
-  void clear_metric_name();
-  static const int kMetricNameFieldNumber = 2;
-  const ::std::string& metric_name() const;
-  void set_metric_name(const ::std::string& value);
-  #if LANG_CXX11
-  void set_metric_name(::std::string&& value);
-  #endif
-  void set_metric_name(const char* value);
-  void set_metric_name(const char* value, size_t size);
-  ::std::string* mutable_metric_name();
-  ::std::string* release_metric_name();
-  void set_allocated_metric_name(::std::string* metric_name);
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;
-  void clear_objective_type();
-  static const int kObjectiveTypeFieldNumber = 1;
-  ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType_Value objective_type() const;
-  void set_objective_type(::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType_Value value);
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::internal::ArenaStringPtr metric_name_;
-  int objective_type_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class HyperparameterTuningStrategy final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy) */ {
- public:
-  HyperparameterTuningStrategy();
-  virtual ~HyperparameterTuningStrategy();
-
-  HyperparameterTuningStrategy(const HyperparameterTuningStrategy& from);
-
-  inline HyperparameterTuningStrategy& operator=(const HyperparameterTuningStrategy& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  HyperparameterTuningStrategy(HyperparameterTuningStrategy&& from) noexcept
-    : HyperparameterTuningStrategy() {
-    *this = ::std::move(from);
-  }
-
-  inline HyperparameterTuningStrategy& operator=(HyperparameterTuningStrategy&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const HyperparameterTuningStrategy& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const HyperparameterTuningStrategy* internal_default_instance() {
-    return reinterpret_cast<const HyperparameterTuningStrategy*>(
-               &_HyperparameterTuningStrategy_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    3;
-
-  void Swap(HyperparameterTuningStrategy* other);
-  friend void swap(HyperparameterTuningStrategy& a, HyperparameterTuningStrategy& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline HyperparameterTuningStrategy* New() const final {
-    return CreateMaybeMessage<HyperparameterTuningStrategy>(nullptr);
-  }
-
-  HyperparameterTuningStrategy* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<HyperparameterTuningStrategy>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const HyperparameterTuningStrategy& from);
-  void MergeFrom(const HyperparameterTuningStrategy& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(HyperparameterTuningStrategy* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  typedef HyperparameterTuningStrategy_Value Value;
-  static const Value BAYESIAN =
-    HyperparameterTuningStrategy_Value_BAYESIAN;
-  static const Value RANDOM =
-    HyperparameterTuningStrategy_Value_RANDOM;
-  static inline bool Value_IsValid(int value) {
-    return HyperparameterTuningStrategy_Value_IsValid(value);
-  }
-  static const Value Value_MIN =
-    HyperparameterTuningStrategy_Value_Value_MIN;
-  static const Value Value_MAX =
-    HyperparameterTuningStrategy_Value_Value_MAX;
-  static const int Value_ARRAYSIZE =
-    HyperparameterTuningStrategy_Value_Value_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  Value_descriptor() {
-    return HyperparameterTuningStrategy_Value_descriptor();
-  }
-  static inline const ::std::string& Value_Name(Value value) {
-    return HyperparameterTuningStrategy_Value_Name(value);
-  }
-  static inline bool Value_Parse(const ::std::string& name,
-      Value* value) {
-    return HyperparameterTuningStrategy_Value_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class TrainingJobEarlyStoppingType final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType) */ {
- public:
-  TrainingJobEarlyStoppingType();
-  virtual ~TrainingJobEarlyStoppingType();
-
-  TrainingJobEarlyStoppingType(const TrainingJobEarlyStoppingType& from);
-
-  inline TrainingJobEarlyStoppingType& operator=(const TrainingJobEarlyStoppingType& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  TrainingJobEarlyStoppingType(TrainingJobEarlyStoppingType&& from) noexcept
-    : TrainingJobEarlyStoppingType() {
-    *this = ::std::move(from);
-  }
-
-  inline TrainingJobEarlyStoppingType& operator=(TrainingJobEarlyStoppingType&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const TrainingJobEarlyStoppingType& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const TrainingJobEarlyStoppingType* internal_default_instance() {
-    return reinterpret_cast<const TrainingJobEarlyStoppingType*>(
-               &_TrainingJobEarlyStoppingType_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    4;
-
-  void Swap(TrainingJobEarlyStoppingType* other);
-  friend void swap(TrainingJobEarlyStoppingType& a, TrainingJobEarlyStoppingType& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline TrainingJobEarlyStoppingType* New() const final {
-    return CreateMaybeMessage<TrainingJobEarlyStoppingType>(nullptr);
-  }
-
-  TrainingJobEarlyStoppingType* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<TrainingJobEarlyStoppingType>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const TrainingJobEarlyStoppingType& from);
-  void MergeFrom(const TrainingJobEarlyStoppingType& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(TrainingJobEarlyStoppingType* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  typedef TrainingJobEarlyStoppingType_Value Value;
-  static const Value OFF =
-    TrainingJobEarlyStoppingType_Value_OFF;
-  static const Value AUTO =
-    TrainingJobEarlyStoppingType_Value_AUTO;
-  static inline bool Value_IsValid(int value) {
-    return TrainingJobEarlyStoppingType_Value_IsValid(value);
-  }
-  static const Value Value_MIN =
-    TrainingJobEarlyStoppingType_Value_Value_MIN;
-  static const Value Value_MAX =
-    TrainingJobEarlyStoppingType_Value_Value_MAX;
-  static const int Value_ARRAYSIZE =
-    TrainingJobEarlyStoppingType_Value_Value_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  Value_descriptor() {
-    return TrainingJobEarlyStoppingType_Value_descriptor();
-  }
-  static inline const ::std::string& Value_Name(Value value) {
-    return TrainingJobEarlyStoppingType_Value_Name(value);
-  }
-  static inline bool Value_Parse(const ::std::string& name,
-      Value* value) {
-    return TrainingJobEarlyStoppingType_Value_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class HyperparameterTuningJobConfig final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig) */ {
- public:
-  HyperparameterTuningJobConfig();
-  virtual ~HyperparameterTuningJobConfig();
-
-  HyperparameterTuningJobConfig(const HyperparameterTuningJobConfig& from);
-
-  inline HyperparameterTuningJobConfig& operator=(const HyperparameterTuningJobConfig& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  HyperparameterTuningJobConfig(HyperparameterTuningJobConfig&& from) noexcept
-    : HyperparameterTuningJobConfig() {
-    *this = ::std::move(from);
-  }
-
-  inline HyperparameterTuningJobConfig& operator=(HyperparameterTuningJobConfig&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const HyperparameterTuningJobConfig& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const HyperparameterTuningJobConfig* internal_default_instance() {
-    return reinterpret_cast<const HyperparameterTuningJobConfig*>(
-               &_HyperparameterTuningJobConfig_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    5;
-
-  void Swap(HyperparameterTuningJobConfig* other);
-  friend void swap(HyperparameterTuningJobConfig& a, HyperparameterTuningJobConfig& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline HyperparameterTuningJobConfig* New() const final {
-    return CreateMaybeMessage<HyperparameterTuningJobConfig>(nullptr);
-  }
-
-  HyperparameterTuningJobConfig* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<HyperparameterTuningJobConfig>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const HyperparameterTuningJobConfig& from);
-  void MergeFrom(const HyperparameterTuningJobConfig& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(HyperparameterTuningJobConfig* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // .flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;
-  bool has_hyperparameter_ranges() const;
-  void clear_hyperparameter_ranges();
-  static const int kHyperparameterRangesFieldNumber = 1;
-  const ::flyteidl::plugins::sagemaker::ParameterRanges& hyperparameter_ranges() const;
-  ::flyteidl::plugins::sagemaker::ParameterRanges* release_hyperparameter_ranges();
-  ::flyteidl::plugins::sagemaker::ParameterRanges* mutable_hyperparameter_ranges();
-  void set_allocated_hyperparameter_ranges(::flyteidl::plugins::sagemaker::ParameterRanges* hyperparameter_ranges);
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;
-  bool has_tuning_objective() const;
-  void clear_tuning_objective();
-  static const int kTuningObjectiveFieldNumber = 3;
-  const ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective& tuning_objective() const;
-  ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective* release_tuning_objective();
-  ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective* mutable_tuning_objective();
-  void set_allocated_tuning_objective(::flyteidl::plugins::sagemaker::HyperparameterTuningObjective* tuning_objective);
-
-  // .flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;
-  void clear_tuning_strategy();
-  static const int kTuningStrategyFieldNumber = 2;
-  ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy_Value tuning_strategy() const;
-  void set_tuning_strategy(::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy_Value value);
-
-  // .flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;
-  void clear_training_job_early_stopping_type();
-  static const int kTrainingJobEarlyStoppingTypeFieldNumber = 4;
-  ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType_Value training_job_early_stopping_type() const;
-  void set_training_job_early_stopping_type(::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType_Value value);
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::flyteidl::plugins::sagemaker::ParameterRanges* hyperparameter_ranges_;
-  ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective* tuning_objective_;
-  int tuning_strategy_;
-  int training_job_early_stopping_type_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#endif  // __GNUC__
-// HyperparameterTuningJob
-
-// .flyteidl.plugins.sagemaker.TrainingJob training_job = 1;
-inline bool HyperparameterTuningJob::has_training_job() const {
-  return this != internal_default_instance() && training_job_ != nullptr;
-}
-inline const ::flyteidl::plugins::sagemaker::TrainingJob& HyperparameterTuningJob::training_job() const {
-  const ::flyteidl::plugins::sagemaker::TrainingJob* p = training_job_;
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.HyperparameterTuningJob.training_job)
-  return p != nullptr ? *p : *reinterpret_cast<const ::flyteidl::plugins::sagemaker::TrainingJob*>(
-      &::flyteidl::plugins::sagemaker::_TrainingJob_default_instance_);
-}
-inline ::flyteidl::plugins::sagemaker::TrainingJob* HyperparameterTuningJob::release_training_job() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.HyperparameterTuningJob.training_job)
-  
-  ::flyteidl::plugins::sagemaker::TrainingJob* temp = training_job_;
-  training_job_ = nullptr;
-  return temp;
-}
-inline ::flyteidl::plugins::sagemaker::TrainingJob* HyperparameterTuningJob::mutable_training_job() {
-  
-  if (training_job_ == nullptr) {
-    auto* p = CreateMaybeMessage<::flyteidl::plugins::sagemaker::TrainingJob>(GetArenaNoVirtual());
-    training_job_ = p;
-  }
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.HyperparameterTuningJob.training_job)
-  return training_job_;
-}
-inline void HyperparameterTuningJob::set_allocated_training_job(::flyteidl::plugins::sagemaker::TrainingJob* training_job) {
-  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::google::protobuf::MessageLite*>(training_job_);
-  }
-  if (training_job) {
-    ::google::protobuf::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      training_job = ::google::protobuf::internal::GetOwnedMessage(
-          message_arena, training_job, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  training_job_ = training_job;
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.HyperparameterTuningJob.training_job)
-}
-
-// int64 max_number_of_training_jobs = 2;
-inline void HyperparameterTuningJob::clear_max_number_of_training_jobs() {
-  max_number_of_training_jobs_ = PROTOBUF_LONGLONG(0);
-}
-inline ::google::protobuf::int64 HyperparameterTuningJob::max_number_of_training_jobs() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.HyperparameterTuningJob.max_number_of_training_jobs)
-  return max_number_of_training_jobs_;
-}
-inline void HyperparameterTuningJob::set_max_number_of_training_jobs(::google::protobuf::int64 value) {
-  
-  max_number_of_training_jobs_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.HyperparameterTuningJob.max_number_of_training_jobs)
-}
-
-// int64 max_parallel_training_jobs = 3;
-inline void HyperparameterTuningJob::clear_max_parallel_training_jobs() {
-  max_parallel_training_jobs_ = PROTOBUF_LONGLONG(0);
-}
-inline ::google::protobuf::int64 HyperparameterTuningJob::max_parallel_training_jobs() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.HyperparameterTuningJob.max_parallel_training_jobs)
-  return max_parallel_training_jobs_;
-}
-inline void HyperparameterTuningJob::set_max_parallel_training_jobs(::google::protobuf::int64 value) {
-  
-  max_parallel_training_jobs_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.HyperparameterTuningJob.max_parallel_training_jobs)
-}
-
-// -------------------------------------------------------------------
-
-// HyperparameterTuningObjectiveType
-
-// -------------------------------------------------------------------
-
-// HyperparameterTuningObjective
-
-// .flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;
-inline void HyperparameterTuningObjective::clear_objective_type() {
-  objective_type_ = 0;
-}
-inline ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType_Value HyperparameterTuningObjective::objective_type() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.HyperparameterTuningObjective.objective_type)
-  return static_cast< ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType_Value >(objective_type_);
-}
-inline void HyperparameterTuningObjective::set_objective_type(::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType_Value value) {
-  
-  objective_type_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.HyperparameterTuningObjective.objective_type)
-}
-
-// string metric_name = 2;
-inline void HyperparameterTuningObjective::clear_metric_name() {
-  metric_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline const ::std::string& HyperparameterTuningObjective::metric_name() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name)
-  return metric_name_.GetNoArena();
-}
-inline void HyperparameterTuningObjective::set_metric_name(const ::std::string& value) {
-  
-  metric_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name)
-}
-#if LANG_CXX11
-inline void HyperparameterTuningObjective::set_metric_name(::std::string&& value) {
-  
-  metric_name_.SetNoArena(
-    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name)
-}
-#endif
-inline void HyperparameterTuningObjective::set_metric_name(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  metric_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name)
-}
-inline void HyperparameterTuningObjective::set_metric_name(const char* value, size_t size) {
-  
-  metric_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name)
-}
-inline ::std::string* HyperparameterTuningObjective::mutable_metric_name() {
-  
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name)
-  return metric_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* HyperparameterTuningObjective::release_metric_name() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name)
-  
-  return metric_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void HyperparameterTuningObjective::set_allocated_metric_name(::std::string* metric_name) {
-  if (metric_name != nullptr) {
-    
-  } else {
-    
-  }
-  metric_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), metric_name);
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.HyperparameterTuningObjective.metric_name)
-}
-
-// -------------------------------------------------------------------
-
-// HyperparameterTuningStrategy
-
-// -------------------------------------------------------------------
-
-// TrainingJobEarlyStoppingType
-
-// -------------------------------------------------------------------
-
-// HyperparameterTuningJobConfig
-
-// .flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;
-inline bool HyperparameterTuningJobConfig::has_hyperparameter_ranges() const {
-  return this != internal_default_instance() && hyperparameter_ranges_ != nullptr;
-}
-inline const ::flyteidl::plugins::sagemaker::ParameterRanges& HyperparameterTuningJobConfig::hyperparameter_ranges() const {
-  const ::flyteidl::plugins::sagemaker::ParameterRanges* p = hyperparameter_ranges_;
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.hyperparameter_ranges)
-  return p != nullptr ? *p : *reinterpret_cast<const ::flyteidl::plugins::sagemaker::ParameterRanges*>(
-      &::flyteidl::plugins::sagemaker::_ParameterRanges_default_instance_);
-}
-inline ::flyteidl::plugins::sagemaker::ParameterRanges* HyperparameterTuningJobConfig::release_hyperparameter_ranges() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.hyperparameter_ranges)
-  
-  ::flyteidl::plugins::sagemaker::ParameterRanges* temp = hyperparameter_ranges_;
-  hyperparameter_ranges_ = nullptr;
-  return temp;
-}
-inline ::flyteidl::plugins::sagemaker::ParameterRanges* HyperparameterTuningJobConfig::mutable_hyperparameter_ranges() {
-  
-  if (hyperparameter_ranges_ == nullptr) {
-    auto* p = CreateMaybeMessage<::flyteidl::plugins::sagemaker::ParameterRanges>(GetArenaNoVirtual());
-    hyperparameter_ranges_ = p;
-  }
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.hyperparameter_ranges)
-  return hyperparameter_ranges_;
-}
-inline void HyperparameterTuningJobConfig::set_allocated_hyperparameter_ranges(::flyteidl::plugins::sagemaker::ParameterRanges* hyperparameter_ranges) {
-  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::google::protobuf::MessageLite*>(hyperparameter_ranges_);
-  }
-  if (hyperparameter_ranges) {
-    ::google::protobuf::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      hyperparameter_ranges = ::google::protobuf::internal::GetOwnedMessage(
-          message_arena, hyperparameter_ranges, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  hyperparameter_ranges_ = hyperparameter_ranges;
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.hyperparameter_ranges)
-}
-
-// .flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;
-inline void HyperparameterTuningJobConfig::clear_tuning_strategy() {
-  tuning_strategy_ = 0;
-}
-inline ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy_Value HyperparameterTuningJobConfig::tuning_strategy() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.tuning_strategy)
-  return static_cast< ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy_Value >(tuning_strategy_);
-}
-inline void HyperparameterTuningJobConfig::set_tuning_strategy(::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy_Value value) {
-  
-  tuning_strategy_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.tuning_strategy)
-}
-
-// .flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;
-inline bool HyperparameterTuningJobConfig::has_tuning_objective() const {
-  return this != internal_default_instance() && tuning_objective_ != nullptr;
-}
-inline void HyperparameterTuningJobConfig::clear_tuning_objective() {
-  if (GetArenaNoVirtual() == nullptr && tuning_objective_ != nullptr) {
-    delete tuning_objective_;
-  }
-  tuning_objective_ = nullptr;
-}
-inline const ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective& HyperparameterTuningJobConfig::tuning_objective() const {
-  const ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective* p = tuning_objective_;
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.tuning_objective)
-  return p != nullptr ? *p : *reinterpret_cast<const ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective*>(
-      &::flyteidl::plugins::sagemaker::_HyperparameterTuningObjective_default_instance_);
-}
-inline ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective* HyperparameterTuningJobConfig::release_tuning_objective() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.tuning_objective)
-  
-  ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective* temp = tuning_objective_;
-  tuning_objective_ = nullptr;
-  return temp;
-}
-inline ::flyteidl::plugins::sagemaker::HyperparameterTuningObjective* HyperparameterTuningJobConfig::mutable_tuning_objective() {
-  
-  if (tuning_objective_ == nullptr) {
-    auto* p = CreateMaybeMessage<::flyteidl::plugins::sagemaker::HyperparameterTuningObjective>(GetArenaNoVirtual());
-    tuning_objective_ = p;
-  }
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.tuning_objective)
-  return tuning_objective_;
-}
-inline void HyperparameterTuningJobConfig::set_allocated_tuning_objective(::flyteidl::plugins::sagemaker::HyperparameterTuningObjective* tuning_objective) {
-  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete tuning_objective_;
-  }
-  if (tuning_objective) {
-    ::google::protobuf::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      tuning_objective = ::google::protobuf::internal::GetOwnedMessage(
-          message_arena, tuning_objective, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  tuning_objective_ = tuning_objective;
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.tuning_objective)
-}
-
-// .flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;
-inline void HyperparameterTuningJobConfig::clear_training_job_early_stopping_type() {
-  training_job_early_stopping_type_ = 0;
-}
-inline ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType_Value HyperparameterTuningJobConfig::training_job_early_stopping_type() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.training_job_early_stopping_type)
-  return static_cast< ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType_Value >(training_job_early_stopping_type_);
-}
-inline void HyperparameterTuningJobConfig::set_training_job_early_stopping_type(::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType_Value value) {
-  
-  training_job_early_stopping_type_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig.training_job_early_stopping_type)
-}
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic pop
-#endif  // __GNUC__
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-
-namespace google {
-namespace protobuf {
-
-template <> struct is_proto_enum< ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType_Value> : ::std::true_type {};
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType_Value>() {
-  return ::flyteidl::plugins::sagemaker::HyperparameterTuningObjectiveType_Value_descriptor();
-}
-template <> struct is_proto_enum< ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy_Value> : ::std::true_type {};
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy_Value>() {
-  return ::flyteidl::plugins::sagemaker::HyperparameterTuningStrategy_Value_descriptor();
-}
-template <> struct is_proto_enum< ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType_Value> : ::std::true_type {};
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType_Value>() {
-  return ::flyteidl::plugins::sagemaker::TrainingJobEarlyStoppingType_Value_descriptor();
-}
-
-}  // namespace protobuf
-}  // namespace google
-
-// @@protoc_insertion_point(global_scope)
-
-#include <google/protobuf/port_undef.inc>
-#endif  // PROTOBUF_INCLUDED_flyteidl_2fplugins_2fsagemaker_2fhyperparameter_5ftuning_5fjob_2eproto
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.grpc.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.grpc.pb.cc
deleted file mode 100644
index 7c840ad690..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.grpc.pb.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-// Generated by the gRPC C++ plugin.
-// If you make any local change, they will be lost.
-// source: flyteidl/plugins/sagemaker/parameter_ranges.proto
-
-#include "flyteidl/plugins/sagemaker/parameter_ranges.pb.h"
-#include "flyteidl/plugins/sagemaker/parameter_ranges.grpc.pb.h"
-
-#include <functional>
-#include <grpcpp/impl/codegen/async_stream.h>
-#include <grpcpp/impl/codegen/async_unary_call.h>
-#include <grpcpp/impl/codegen/channel_interface.h>
-#include <grpcpp/impl/codegen/client_unary_call.h>
-#include <grpcpp/impl/codegen/client_callback.h>
-#include <grpcpp/impl/codegen/method_handler_impl.h>
-#include <grpcpp/impl/codegen/rpc_service_method.h>
-#include <grpcpp/impl/codegen/server_callback.h>
-#include <grpcpp/impl/codegen/service_type.h>
-#include <grpcpp/impl/codegen/sync_stream.h>
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-
-}  // namespace flyteidl
-}  // namespace plugins
-}  // namespace sagemaker
-
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.grpc.pb.h b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.grpc.pb.h
deleted file mode 100644
index c314f50a3e..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.grpc.pb.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// Generated by the gRPC C++ plugin.
-// If you make any local change, they will be lost.
-// source: flyteidl/plugins/sagemaker/parameter_ranges.proto
-#ifndef GRPC_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto__INCLUDED
-#define GRPC_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto__INCLUDED
-
-#include "flyteidl/plugins/sagemaker/parameter_ranges.pb.h"
-
-#include <functional>
-#include <grpcpp/impl/codegen/async_generic_service.h>
-#include <grpcpp/impl/codegen/async_stream.h>
-#include <grpcpp/impl/codegen/async_unary_call.h>
-#include <grpcpp/impl/codegen/client_callback.h>
-#include <grpcpp/impl/codegen/method_handler_impl.h>
-#include <grpcpp/impl/codegen/proto_utils.h>
-#include <grpcpp/impl/codegen/rpc_method.h>
-#include <grpcpp/impl/codegen/server_callback.h>
-#include <grpcpp/impl/codegen/service_type.h>
-#include <grpcpp/impl/codegen/status.h>
-#include <grpcpp/impl/codegen/stub_options.h>
-#include <grpcpp/impl/codegen/sync_stream.h>
-
-namespace grpc_impl {
-class Channel;
-class CompletionQueue;
-class ServerCompletionQueue;
-}  // namespace grpc_impl
-
-namespace grpc {
-namespace experimental {
-template <typename RequestT, typename ResponseT>
-class MessageAllocator;
-}  // namespace experimental
-}  // namespace grpc_impl
-
-namespace grpc {
-class ServerContext;
-}  // namespace grpc
-
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-
-
-#endif  // GRPC_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto__INCLUDED
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.pb.cc
deleted file mode 100644
index 6933bc399b..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.pb.cc
+++ /dev/null
@@ -1,2460 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: flyteidl/plugins/sagemaker/parameter_ranges.proto
-
-#include "flyteidl/plugins/sagemaker/parameter_ranges.pb.h"
-
-#include <algorithm>
-
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite_inl.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/reflection_ops.h>
-#include <google/protobuf/wire_format.h>
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-
-extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_CategoricalParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ContinuousParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_IntegerParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_ParameterRanges_ParameterRangeMapEntry_DoNotUse_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto ::google::protobuf::internal::SCCInfo<3> scc_info_ParameterRangeOneOf_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-class HyperparameterScalingTypeDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<HyperparameterScalingType> _instance;
-} _HyperparameterScalingType_default_instance_;
-class ContinuousParameterRangeDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<ContinuousParameterRange> _instance;
-} _ContinuousParameterRange_default_instance_;
-class IntegerParameterRangeDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<IntegerParameterRange> _instance;
-} _IntegerParameterRange_default_instance_;
-class CategoricalParameterRangeDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<CategoricalParameterRange> _instance;
-} _CategoricalParameterRange_default_instance_;
-class ParameterRangeOneOfDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<ParameterRangeOneOf> _instance;
-  const ::flyteidl::plugins::sagemaker::ContinuousParameterRange* continuous_parameter_range_;
-  const ::flyteidl::plugins::sagemaker::IntegerParameterRange* integer_parameter_range_;
-  const ::flyteidl::plugins::sagemaker::CategoricalParameterRange* categorical_parameter_range_;
-} _ParameterRangeOneOf_default_instance_;
-class ParameterRanges_ParameterRangeMapEntry_DoNotUseDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<ParameterRanges_ParameterRangeMapEntry_DoNotUse> _instance;
-} _ParameterRanges_ParameterRangeMapEntry_DoNotUse_default_instance_;
-class ParameterRangesDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<ParameterRanges> _instance;
-} _ParameterRanges_default_instance_;
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-static void InitDefaultsHyperparameterScalingType_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_HyperparameterScalingType_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::HyperparameterScalingType();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::HyperparameterScalingType::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_HyperparameterScalingType_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsHyperparameterScalingType_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto}, {}};
-
-static void InitDefaultsContinuousParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_ContinuousParameterRange_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::ContinuousParameterRange();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::ContinuousParameterRange::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_ContinuousParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsContinuousParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto}, {}};
-
-static void InitDefaultsIntegerParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_IntegerParameterRange_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::IntegerParameterRange();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::IntegerParameterRange::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_IntegerParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsIntegerParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto}, {}};
-
-static void InitDefaultsCategoricalParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_CategoricalParameterRange_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::CategoricalParameterRange();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::CategoricalParameterRange::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_CategoricalParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsCategoricalParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto}, {}};
-
-static void InitDefaultsParameterRangeOneOf_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_ParameterRangeOneOf_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::ParameterRangeOneOf();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::ParameterRangeOneOf::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<3> scc_info_ParameterRangeOneOf_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsParameterRangeOneOf_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto}, {
-      &scc_info_ContinuousParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base,
-      &scc_info_IntegerParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base,
-      &scc_info_CategoricalParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base,}};
-
-static void InitDefaultsParameterRanges_ParameterRangeMapEntry_DoNotUse_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_ParameterRanges_ParameterRangeMapEntry_DoNotUse_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse();
-  }
-  ::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<1> scc_info_ParameterRanges_ParameterRangeMapEntry_DoNotUse_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsParameterRanges_ParameterRangeMapEntry_DoNotUse_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto}, {
-      &scc_info_ParameterRangeOneOf_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base,}};
-
-static void InitDefaultsParameterRanges_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_ParameterRanges_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::ParameterRanges();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::ParameterRanges::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<1> scc_info_ParameterRanges_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsParameterRanges_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto}, {
-      &scc_info_ParameterRanges_ParameterRangeMapEntry_DoNotUse_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base,}};
-
-void InitDefaults_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto() {
-  ::google::protobuf::internal::InitSCC(&scc_info_HyperparameterScalingType_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_ContinuousParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_IntegerParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_CategoricalParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_ParameterRangeOneOf_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_ParameterRanges_ParameterRangeMapEntry_DoNotUse_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_ParameterRanges_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-}
-
-::google::protobuf::Metadata file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto[7];
-const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto[1];
-constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto = nullptr;
-
-const ::google::protobuf::uint32 TableStruct_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::HyperparameterScalingType, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ContinuousParameterRange, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ContinuousParameterRange, max_value_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ContinuousParameterRange, min_value_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ContinuousParameterRange, scaling_type_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::IntegerParameterRange, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::IntegerParameterRange, max_value_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::IntegerParameterRange, min_value_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::IntegerParameterRange, scaling_type_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::CategoricalParameterRange, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::CategoricalParameterRange, values_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ParameterRangeOneOf, _internal_metadata_),
-  ~0u,  // no _extensions_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ParameterRangeOneOf, _oneof_case_[0]),
-  ~0u,  // no _weak_field_map_
-  offsetof(::flyteidl::plugins::sagemaker::ParameterRangeOneOfDefaultTypeInternal, continuous_parameter_range_),
-  offsetof(::flyteidl::plugins::sagemaker::ParameterRangeOneOfDefaultTypeInternal, integer_parameter_range_),
-  offsetof(::flyteidl::plugins::sagemaker::ParameterRangeOneOfDefaultTypeInternal, categorical_parameter_range_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ParameterRangeOneOf, parameter_range_type_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse, _has_bits_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse, key_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse, value_),
-  0,
-  1,
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ParameterRanges, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::ParameterRanges, parameter_range_map_),
-};
-static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  { 0, -1, sizeof(::flyteidl::plugins::sagemaker::HyperparameterScalingType)},
-  { 5, -1, sizeof(::flyteidl::plugins::sagemaker::ContinuousParameterRange)},
-  { 13, -1, sizeof(::flyteidl::plugins::sagemaker::IntegerParameterRange)},
-  { 21, -1, sizeof(::flyteidl::plugins::sagemaker::CategoricalParameterRange)},
-  { 27, -1, sizeof(::flyteidl::plugins::sagemaker::ParameterRangeOneOf)},
-  { 36, 43, sizeof(::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse)},
-  { 45, -1, sizeof(::flyteidl::plugins::sagemaker::ParameterRanges)},
-};
-
-static ::google::protobuf::Message const * const file_default_instances[] = {
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_HyperparameterScalingType_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_ContinuousParameterRange_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_IntegerParameterRange_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_CategoricalParameterRange_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_ParameterRangeOneOf_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_ParameterRanges_ParameterRangeMapEntry_DoNotUse_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_ParameterRanges_default_instance_),
-};
-
-::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto = {
-  {}, AddDescriptors_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto, "flyteidl/plugins/sagemaker/parameter_ranges.proto", schemas,
-  file_default_instances, TableStruct_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto::offsets,
-  file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto, 7, file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto, file_level_service_descriptors_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto,
-};
-
-const char descriptor_table_protodef_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto[] =
-  "\n1flyteidl/plugins/sagemaker/parameter_r"
-  "anges.proto\022\032flyteidl.plugins.sagemaker\""
-  "c\n\031HyperparameterScalingType\"F\n\005Value\022\010\n"
-  "\004AUTO\020\000\022\n\n\006LINEAR\020\001\022\017\n\013LOGARITHMIC\020\002\022\026\n\022"
-  "REVERSELOGARITHMIC\020\003\"\223\001\n\030ContinuousParam"
-  "eterRange\022\021\n\tmax_value\030\001 \001(\001\022\021\n\tmin_valu"
-  "e\030\002 \001(\001\022Q\n\014scaling_type\030\003 \001(\0162;.flyteidl"
-  ".plugins.sagemaker.HyperparameterScaling"
-  "Type.Value\"\220\001\n\025IntegerParameterRange\022\021\n\t"
-  "max_value\030\001 \001(\003\022\021\n\tmin_value\030\002 \001(\003\022Q\n\014sc"
-  "aling_type\030\003 \001(\0162;.flyteidl.plugins.sage"
-  "maker.HyperparameterScalingType.Value\"+\n"
-  "\031CategoricalParameterRange\022\016\n\006values\030\001 \003"
-  "(\t\"\275\002\n\023ParameterRangeOneOf\022Z\n\032continuous"
-  "_parameter_range\030\001 \001(\01324.flyteidl.plugin"
-  "s.sagemaker.ContinuousParameterRangeH\000\022T"
-  "\n\027integer_parameter_range\030\002 \001(\01321.flytei"
-  "dl.plugins.sagemaker.IntegerParameterRan"
-  "geH\000\022\\\n\033categorical_parameter_range\030\003 \001("
-  "\01325.flyteidl.plugins.sagemaker.Categoric"
-  "alParameterRangeH\000B\026\n\024parameter_range_ty"
-  "pe\"\335\001\n\017ParameterRanges\022_\n\023parameter_rang"
-  "e_map\030\001 \003(\0132B.flyteidl.plugins.sagemaker"
-  ".ParameterRanges.ParameterRangeMapEntry\032"
-  "i\n\026ParameterRangeMapEntry\022\013\n\003key\030\001 \001(\t\022>"
-  "\n\005value\030\002 \001(\0132/.flyteidl.plugins.sagemak"
-  "er.ParameterRangeOneOf:\0028\001B\?Z=github.com"
-  "/flyteorg/flyte/flyteidl/gen/pb-go/flyte"
-  "idl/pluginsb\006proto3"
-  ;
-::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto = {
-  false, InitDefaults_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto, 
-  descriptor_table_protodef_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto,
-  "flyteidl/plugins/sagemaker/parameter_ranges.proto", &assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto, 1139,
-};
-
-void AddDescriptors_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto() {
-  static constexpr ::google::protobuf::internal::InitFunc deps[1] =
-  {
-  };
- ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto, deps, 0);
-}
-
-// Force running AddDescriptors() at dynamic initialization time.
-static bool dynamic_init_dummy_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto = []() { AddDescriptors_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto(); return true; }();
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-const ::google::protobuf::EnumDescriptor* HyperparameterScalingType_Value_descriptor() {
-  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto);
-  return file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto[0];
-}
-bool HyperparameterScalingType_Value_IsValid(int value) {
-  switch (value) {
-    case 0:
-    case 1:
-    case 2:
-    case 3:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const HyperparameterScalingType_Value HyperparameterScalingType::AUTO;
-const HyperparameterScalingType_Value HyperparameterScalingType::LINEAR;
-const HyperparameterScalingType_Value HyperparameterScalingType::LOGARITHMIC;
-const HyperparameterScalingType_Value HyperparameterScalingType::REVERSELOGARITHMIC;
-const HyperparameterScalingType_Value HyperparameterScalingType::Value_MIN;
-const HyperparameterScalingType_Value HyperparameterScalingType::Value_MAX;
-const int HyperparameterScalingType::Value_ARRAYSIZE;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-// ===================================================================
-
-void HyperparameterScalingType::InitAsDefaultInstance() {
-}
-class HyperparameterScalingType::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-HyperparameterScalingType::HyperparameterScalingType()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-}
-HyperparameterScalingType::HyperparameterScalingType(const HyperparameterScalingType& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-}
-
-void HyperparameterScalingType::SharedCtor() {
-}
-
-HyperparameterScalingType::~HyperparameterScalingType() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  SharedDtor();
-}
-
-void HyperparameterScalingType::SharedDtor() {
-}
-
-void HyperparameterScalingType::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const HyperparameterScalingType& HyperparameterScalingType::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_HyperparameterScalingType_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void HyperparameterScalingType::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* HyperparameterScalingType::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<HyperparameterScalingType*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      default: {
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool HyperparameterScalingType::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-  handle_unusual:
-    if (tag == 0) {
-      goto success;
-    }
-    DO_(::google::protobuf::internal::WireFormat::SkipField(
-          input, tag, _internal_metadata_.mutable_unknown_fields()));
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void HyperparameterScalingType::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-}
-
-::google::protobuf::uint8* HyperparameterScalingType::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  return target;
-}
-
-size_t HyperparameterScalingType::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void HyperparameterScalingType::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  GOOGLE_DCHECK_NE(&from, this);
-  const HyperparameterScalingType* source =
-      ::google::protobuf::DynamicCastToGenerated<HyperparameterScalingType>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-    MergeFrom(*source);
-  }
-}
-
-void HyperparameterScalingType::MergeFrom(const HyperparameterScalingType& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-}
-
-void HyperparameterScalingType::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void HyperparameterScalingType::CopyFrom(const HyperparameterScalingType& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool HyperparameterScalingType::IsInitialized() const {
-  return true;
-}
-
-void HyperparameterScalingType::Swap(HyperparameterScalingType* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void HyperparameterScalingType::InternalSwap(HyperparameterScalingType* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-}
-
-::google::protobuf::Metadata HyperparameterScalingType::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void ContinuousParameterRange::InitAsDefaultInstance() {
-}
-class ContinuousParameterRange::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int ContinuousParameterRange::kMaxValueFieldNumber;
-const int ContinuousParameterRange::kMinValueFieldNumber;
-const int ContinuousParameterRange::kScalingTypeFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-ContinuousParameterRange::ContinuousParameterRange()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-}
-ContinuousParameterRange::ContinuousParameterRange(const ContinuousParameterRange& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::memcpy(&max_value_, &from.max_value_,
-    static_cast<size_t>(reinterpret_cast<char*>(&scaling_type_) -
-    reinterpret_cast<char*>(&max_value_)) + sizeof(scaling_type_));
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-}
-
-void ContinuousParameterRange::SharedCtor() {
-  ::memset(&max_value_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&scaling_type_) -
-      reinterpret_cast<char*>(&max_value_)) + sizeof(scaling_type_));
-}
-
-ContinuousParameterRange::~ContinuousParameterRange() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  SharedDtor();
-}
-
-void ContinuousParameterRange::SharedDtor() {
-}
-
-void ContinuousParameterRange::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const ContinuousParameterRange& ContinuousParameterRange::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_ContinuousParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void ContinuousParameterRange::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  ::memset(&max_value_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&scaling_type_) -
-      reinterpret_cast<char*>(&max_value_)) + sizeof(scaling_type_));
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* ContinuousParameterRange::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<ContinuousParameterRange*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // double max_value = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 9) goto handle_unusual;
-        msg->set_max_value(::google::protobuf::io::UnalignedLoad<double>(ptr));
-        ptr += sizeof(double);
-        break;
-      }
-      // double min_value = 2;
-      case 2: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 17) goto handle_unusual;
-        msg->set_min_value(::google::protobuf::io::UnalignedLoad<double>(ptr));
-        ptr += sizeof(double);
-        break;
-      }
-      // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-      case 3: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 24) goto handle_unusual;
-        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
-        msg->set_scaling_type(static_cast<::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value>(val));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool ContinuousParameterRange::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // double max_value = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (9 & 0xFF)) {
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &max_value_)));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // double min_value = 2;
-      case 2: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (17 & 0xFF)) {
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &min_value_)));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-      case 3: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (24 & 0xFF)) {
-          int value = 0;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          set_scaling_type(static_cast< ::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value >(value));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void ContinuousParameterRange::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // double max_value = 1;
-  if (this->max_value() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(1, this->max_value(), output);
-  }
-
-  // double min_value = 2;
-  if (this->min_value() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(2, this->min_value(), output);
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-  if (this->scaling_type() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      3, this->scaling_type(), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-}
-
-::google::protobuf::uint8* ContinuousParameterRange::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // double max_value = 1;
-  if (this->max_value() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(1, this->max_value(), target);
-  }
-
-  // double min_value = 2;
-  if (this->min_value() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(2, this->min_value(), target);
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-  if (this->scaling_type() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      3, this->scaling_type(), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  return target;
-}
-
-size_t ContinuousParameterRange::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // double max_value = 1;
-  if (this->max_value() != 0) {
-    total_size += 1 + 8;
-  }
-
-  // double min_value = 2;
-  if (this->min_value() != 0) {
-    total_size += 1 + 8;
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-  if (this->scaling_type() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::EnumSize(this->scaling_type());
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void ContinuousParameterRange::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  GOOGLE_DCHECK_NE(&from, this);
-  const ContinuousParameterRange* source =
-      ::google::protobuf::DynamicCastToGenerated<ContinuousParameterRange>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-    MergeFrom(*source);
-  }
-}
-
-void ContinuousParameterRange::MergeFrom(const ContinuousParameterRange& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.max_value() != 0) {
-    set_max_value(from.max_value());
-  }
-  if (from.min_value() != 0) {
-    set_min_value(from.min_value());
-  }
-  if (from.scaling_type() != 0) {
-    set_scaling_type(from.scaling_type());
-  }
-}
-
-void ContinuousParameterRange::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ContinuousParameterRange::CopyFrom(const ContinuousParameterRange& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ContinuousParameterRange::IsInitialized() const {
-  return true;
-}
-
-void ContinuousParameterRange::Swap(ContinuousParameterRange* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void ContinuousParameterRange::InternalSwap(ContinuousParameterRange* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(max_value_, other->max_value_);
-  swap(min_value_, other->min_value_);
-  swap(scaling_type_, other->scaling_type_);
-}
-
-::google::protobuf::Metadata ContinuousParameterRange::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void IntegerParameterRange::InitAsDefaultInstance() {
-}
-class IntegerParameterRange::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int IntegerParameterRange::kMaxValueFieldNumber;
-const int IntegerParameterRange::kMinValueFieldNumber;
-const int IntegerParameterRange::kScalingTypeFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-IntegerParameterRange::IntegerParameterRange()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.IntegerParameterRange)
-}
-IntegerParameterRange::IntegerParameterRange(const IntegerParameterRange& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::memcpy(&max_value_, &from.max_value_,
-    static_cast<size_t>(reinterpret_cast<char*>(&scaling_type_) -
-    reinterpret_cast<char*>(&max_value_)) + sizeof(scaling_type_));
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.IntegerParameterRange)
-}
-
-void IntegerParameterRange::SharedCtor() {
-  ::memset(&max_value_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&scaling_type_) -
-      reinterpret_cast<char*>(&max_value_)) + sizeof(scaling_type_));
-}
-
-IntegerParameterRange::~IntegerParameterRange() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  SharedDtor();
-}
-
-void IntegerParameterRange::SharedDtor() {
-}
-
-void IntegerParameterRange::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const IntegerParameterRange& IntegerParameterRange::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_IntegerParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void IntegerParameterRange::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  ::memset(&max_value_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&scaling_type_) -
-      reinterpret_cast<char*>(&max_value_)) + sizeof(scaling_type_));
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* IntegerParameterRange::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<IntegerParameterRange*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // int64 max_value = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual;
-        msg->set_max_value(::google::protobuf::internal::ReadVarint(&ptr));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      // int64 min_value = 2;
-      case 2: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual;
-        msg->set_min_value(::google::protobuf::internal::ReadVarint(&ptr));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-      case 3: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 24) goto handle_unusual;
-        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
-        msg->set_scaling_type(static_cast<::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value>(val));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool IntegerParameterRange::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // int64 max_value = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) {
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &max_value_)));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // int64 min_value = 2;
-      case 2: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) {
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &min_value_)));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-      case 3: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (24 & 0xFF)) {
-          int value = 0;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          set_scaling_type(static_cast< ::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value >(value));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void IntegerParameterRange::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // int64 max_value = 1;
-  if (this->max_value() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->max_value(), output);
-  }
-
-  // int64 min_value = 2;
-  if (this->min_value() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->min_value(), output);
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-  if (this->scaling_type() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      3, this->scaling_type(), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.IntegerParameterRange)
-}
-
-::google::protobuf::uint8* IntegerParameterRange::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // int64 max_value = 1;
-  if (this->max_value() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->max_value(), target);
-  }
-
-  // int64 min_value = 2;
-  if (this->min_value() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->min_value(), target);
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-  if (this->scaling_type() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      3, this->scaling_type(), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  return target;
-}
-
-size_t IntegerParameterRange::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // int64 max_value = 1;
-  if (this->max_value() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->max_value());
-  }
-
-  // int64 min_value = 2;
-  if (this->min_value() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->min_value());
-  }
-
-  // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-  if (this->scaling_type() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::EnumSize(this->scaling_type());
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void IntegerParameterRange::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  GOOGLE_DCHECK_NE(&from, this);
-  const IntegerParameterRange* source =
-      ::google::protobuf::DynamicCastToGenerated<IntegerParameterRange>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.IntegerParameterRange)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.IntegerParameterRange)
-    MergeFrom(*source);
-  }
-}
-
-void IntegerParameterRange::MergeFrom(const IntegerParameterRange& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.max_value() != 0) {
-    set_max_value(from.max_value());
-  }
-  if (from.min_value() != 0) {
-    set_min_value(from.min_value());
-  }
-  if (from.scaling_type() != 0) {
-    set_scaling_type(from.scaling_type());
-  }
-}
-
-void IntegerParameterRange::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void IntegerParameterRange::CopyFrom(const IntegerParameterRange& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.IntegerParameterRange)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool IntegerParameterRange::IsInitialized() const {
-  return true;
-}
-
-void IntegerParameterRange::Swap(IntegerParameterRange* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void IntegerParameterRange::InternalSwap(IntegerParameterRange* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(max_value_, other->max_value_);
-  swap(min_value_, other->min_value_);
-  swap(scaling_type_, other->scaling_type_);
-}
-
-::google::protobuf::Metadata IntegerParameterRange::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void CategoricalParameterRange::InitAsDefaultInstance() {
-}
-class CategoricalParameterRange::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int CategoricalParameterRange::kValuesFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-CategoricalParameterRange::CategoricalParameterRange()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-}
-CategoricalParameterRange::CategoricalParameterRange(const CategoricalParameterRange& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr),
-      values_(from.values_) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-}
-
-void CategoricalParameterRange::SharedCtor() {
-  ::google::protobuf::internal::InitSCC(
-      &scc_info_CategoricalParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-}
-
-CategoricalParameterRange::~CategoricalParameterRange() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  SharedDtor();
-}
-
-void CategoricalParameterRange::SharedDtor() {
-}
-
-void CategoricalParameterRange::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const CategoricalParameterRange& CategoricalParameterRange::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_CategoricalParameterRange_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void CategoricalParameterRange::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  values_.Clear();
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* CategoricalParameterRange::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<CategoricalParameterRange*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // repeated string values = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
-        do {
-          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-          ctx->extra_parse_data().SetFieldName("flyteidl.plugins.sagemaker.CategoricalParameterRange.values");
-          object = msg->add_values();
-          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
-            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
-            goto string_till_end;
-          }
-          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
-          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
-          ptr += size;
-          if (ptr >= end) break;
-        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-string_till_end:
-  static_cast<::std::string*>(object)->clear();
-  static_cast<::std::string*>(object)->reserve(size);
-  goto len_delim_till_end;
-len_delim_till_end:
-  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
-                               {parser_till_end, object}, size);
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool CategoricalParameterRange::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // repeated string values = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->add_values()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->values(this->values_size() - 1).data(),
-            static_cast<int>(this->values(this->values_size() - 1).length()),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "flyteidl.plugins.sagemaker.CategoricalParameterRange.values"));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void CategoricalParameterRange::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // repeated string values = 1;
-  for (int i = 0, n = this->values_size(); i < n; i++) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->values(i).data(), static_cast<int>(this->values(i).length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.CategoricalParameterRange.values");
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      1, this->values(i), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-}
-
-::google::protobuf::uint8* CategoricalParameterRange::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // repeated string values = 1;
-  for (int i = 0, n = this->values_size(); i < n; i++) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->values(i).data(), static_cast<int>(this->values(i).length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.CategoricalParameterRange.values");
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteStringToArray(1, this->values(i), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  return target;
-}
-
-size_t CategoricalParameterRange::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated string values = 1;
-  total_size += 1 *
-      ::google::protobuf::internal::FromIntSize(this->values_size());
-  for (int i = 0, n = this->values_size(); i < n; i++) {
-    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
-      this->values(i));
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void CategoricalParameterRange::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  GOOGLE_DCHECK_NE(&from, this);
-  const CategoricalParameterRange* source =
-      ::google::protobuf::DynamicCastToGenerated<CategoricalParameterRange>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-    MergeFrom(*source);
-  }
-}
-
-void CategoricalParameterRange::MergeFrom(const CategoricalParameterRange& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  values_.MergeFrom(from.values_);
-}
-
-void CategoricalParameterRange::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void CategoricalParameterRange::CopyFrom(const CategoricalParameterRange& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool CategoricalParameterRange::IsInitialized() const {
-  return true;
-}
-
-void CategoricalParameterRange::Swap(CategoricalParameterRange* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void CategoricalParameterRange::InternalSwap(CategoricalParameterRange* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  values_.InternalSwap(CastToBase(&other->values_));
-}
-
-::google::protobuf::Metadata CategoricalParameterRange::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void ParameterRangeOneOf::InitAsDefaultInstance() {
-  ::flyteidl::plugins::sagemaker::_ParameterRangeOneOf_default_instance_.continuous_parameter_range_ = const_cast< ::flyteidl::plugins::sagemaker::ContinuousParameterRange*>(
-      ::flyteidl::plugins::sagemaker::ContinuousParameterRange::internal_default_instance());
-  ::flyteidl::plugins::sagemaker::_ParameterRangeOneOf_default_instance_.integer_parameter_range_ = const_cast< ::flyteidl::plugins::sagemaker::IntegerParameterRange*>(
-      ::flyteidl::plugins::sagemaker::IntegerParameterRange::internal_default_instance());
-  ::flyteidl::plugins::sagemaker::_ParameterRangeOneOf_default_instance_.categorical_parameter_range_ = const_cast< ::flyteidl::plugins::sagemaker::CategoricalParameterRange*>(
-      ::flyteidl::plugins::sagemaker::CategoricalParameterRange::internal_default_instance());
-}
-class ParameterRangeOneOf::HasBitSetters {
- public:
-  static const ::flyteidl::plugins::sagemaker::ContinuousParameterRange& continuous_parameter_range(const ParameterRangeOneOf* msg);
-  static const ::flyteidl::plugins::sagemaker::IntegerParameterRange& integer_parameter_range(const ParameterRangeOneOf* msg);
-  static const ::flyteidl::plugins::sagemaker::CategoricalParameterRange& categorical_parameter_range(const ParameterRangeOneOf* msg);
-};
-
-const ::flyteidl::plugins::sagemaker::ContinuousParameterRange&
-ParameterRangeOneOf::HasBitSetters::continuous_parameter_range(const ParameterRangeOneOf* msg) {
-  return *msg->parameter_range_type_.continuous_parameter_range_;
-}
-const ::flyteidl::plugins::sagemaker::IntegerParameterRange&
-ParameterRangeOneOf::HasBitSetters::integer_parameter_range(const ParameterRangeOneOf* msg) {
-  return *msg->parameter_range_type_.integer_parameter_range_;
-}
-const ::flyteidl::plugins::sagemaker::CategoricalParameterRange&
-ParameterRangeOneOf::HasBitSetters::categorical_parameter_range(const ParameterRangeOneOf* msg) {
-  return *msg->parameter_range_type_.categorical_parameter_range_;
-}
-void ParameterRangeOneOf::set_allocated_continuous_parameter_range(::flyteidl::plugins::sagemaker::ContinuousParameterRange* continuous_parameter_range) {
-  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
-  clear_parameter_range_type();
-  if (continuous_parameter_range) {
-    ::google::protobuf::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      continuous_parameter_range = ::google::protobuf::internal::GetOwnedMessage(
-          message_arena, continuous_parameter_range, submessage_arena);
-    }
-    set_has_continuous_parameter_range();
-    parameter_range_type_.continuous_parameter_range_ = continuous_parameter_range;
-  }
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.ParameterRangeOneOf.continuous_parameter_range)
-}
-void ParameterRangeOneOf::set_allocated_integer_parameter_range(::flyteidl::plugins::sagemaker::IntegerParameterRange* integer_parameter_range) {
-  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
-  clear_parameter_range_type();
-  if (integer_parameter_range) {
-    ::google::protobuf::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      integer_parameter_range = ::google::protobuf::internal::GetOwnedMessage(
-          message_arena, integer_parameter_range, submessage_arena);
-    }
-    set_has_integer_parameter_range();
-    parameter_range_type_.integer_parameter_range_ = integer_parameter_range;
-  }
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.ParameterRangeOneOf.integer_parameter_range)
-}
-void ParameterRangeOneOf::set_allocated_categorical_parameter_range(::flyteidl::plugins::sagemaker::CategoricalParameterRange* categorical_parameter_range) {
-  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
-  clear_parameter_range_type();
-  if (categorical_parameter_range) {
-    ::google::protobuf::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      categorical_parameter_range = ::google::protobuf::internal::GetOwnedMessage(
-          message_arena, categorical_parameter_range, submessage_arena);
-    }
-    set_has_categorical_parameter_range();
-    parameter_range_type_.categorical_parameter_range_ = categorical_parameter_range;
-  }
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.ParameterRangeOneOf.categorical_parameter_range)
-}
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int ParameterRangeOneOf::kContinuousParameterRangeFieldNumber;
-const int ParameterRangeOneOf::kIntegerParameterRangeFieldNumber;
-const int ParameterRangeOneOf::kCategoricalParameterRangeFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-ParameterRangeOneOf::ParameterRangeOneOf()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-}
-ParameterRangeOneOf::ParameterRangeOneOf(const ParameterRangeOneOf& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  clear_has_parameter_range_type();
-  switch (from.parameter_range_type_case()) {
-    case kContinuousParameterRange: {
-      mutable_continuous_parameter_range()->::flyteidl::plugins::sagemaker::ContinuousParameterRange::MergeFrom(from.continuous_parameter_range());
-      break;
-    }
-    case kIntegerParameterRange: {
-      mutable_integer_parameter_range()->::flyteidl::plugins::sagemaker::IntegerParameterRange::MergeFrom(from.integer_parameter_range());
-      break;
-    }
-    case kCategoricalParameterRange: {
-      mutable_categorical_parameter_range()->::flyteidl::plugins::sagemaker::CategoricalParameterRange::MergeFrom(from.categorical_parameter_range());
-      break;
-    }
-    case PARAMETER_RANGE_TYPE_NOT_SET: {
-      break;
-    }
-  }
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-}
-
-void ParameterRangeOneOf::SharedCtor() {
-  ::google::protobuf::internal::InitSCC(
-      &scc_info_ParameterRangeOneOf_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  clear_has_parameter_range_type();
-}
-
-ParameterRangeOneOf::~ParameterRangeOneOf() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  SharedDtor();
-}
-
-void ParameterRangeOneOf::SharedDtor() {
-  if (has_parameter_range_type()) {
-    clear_parameter_range_type();
-  }
-}
-
-void ParameterRangeOneOf::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const ParameterRangeOneOf& ParameterRangeOneOf::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_ParameterRangeOneOf_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void ParameterRangeOneOf::clear_parameter_range_type() {
-// @@protoc_insertion_point(one_of_clear_start:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  switch (parameter_range_type_case()) {
-    case kContinuousParameterRange: {
-      delete parameter_range_type_.continuous_parameter_range_;
-      break;
-    }
-    case kIntegerParameterRange: {
-      delete parameter_range_type_.integer_parameter_range_;
-      break;
-    }
-    case kCategoricalParameterRange: {
-      delete parameter_range_type_.categorical_parameter_range_;
-      break;
-    }
-    case PARAMETER_RANGE_TYPE_NOT_SET: {
-      break;
-    }
-  }
-  _oneof_case_[0] = PARAMETER_RANGE_TYPE_NOT_SET;
-}
-
-
-void ParameterRangeOneOf::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  clear_parameter_range_type();
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* ParameterRangeOneOf::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<ParameterRangeOneOf*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // .flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        parser_till_end = ::flyteidl::plugins::sagemaker::ContinuousParameterRange::_InternalParse;
-        object = msg->mutable_continuous_parameter_range();
-        if (size > end - ptr) goto len_delim_till_end;
-        ptr += size;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
-            {parser_till_end, object}, ptr - size, ptr));
-        break;
-      }
-      // .flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;
-      case 2: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        parser_till_end = ::flyteidl::plugins::sagemaker::IntegerParameterRange::_InternalParse;
-        object = msg->mutable_integer_parameter_range();
-        if (size > end - ptr) goto len_delim_till_end;
-        ptr += size;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
-            {parser_till_end, object}, ptr - size, ptr));
-        break;
-      }
-      // .flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;
-      case 3: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        parser_till_end = ::flyteidl::plugins::sagemaker::CategoricalParameterRange::_InternalParse;
-        object = msg->mutable_categorical_parameter_range();
-        if (size > end - ptr) goto len_delim_till_end;
-        ptr += size;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
-            {parser_till_end, object}, ptr - size, ptr));
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-len_delim_till_end:
-  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
-                               {parser_till_end, object}, size);
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool ParameterRangeOneOf::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // .flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
-               input, mutable_continuous_parameter_range()));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // .flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;
-      case 2: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
-               input, mutable_integer_parameter_range()));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // .flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;
-      case 3: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
-               input, mutable_categorical_parameter_range()));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void ParameterRangeOneOf::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;
-  if (has_continuous_parameter_range()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, HasBitSetters::continuous_parameter_range(this), output);
-  }
-
-  // .flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;
-  if (has_integer_parameter_range()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      2, HasBitSetters::integer_parameter_range(this), output);
-  }
-
-  // .flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;
-  if (has_categorical_parameter_range()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      3, HasBitSetters::categorical_parameter_range(this), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-}
-
-::google::protobuf::uint8* ParameterRangeOneOf::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;
-  if (has_continuous_parameter_range()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageToArray(
-        1, HasBitSetters::continuous_parameter_range(this), target);
-  }
-
-  // .flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;
-  if (has_integer_parameter_range()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageToArray(
-        2, HasBitSetters::integer_parameter_range(this), target);
-  }
-
-  // .flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;
-  if (has_categorical_parameter_range()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageToArray(
-        3, HasBitSetters::categorical_parameter_range(this), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  return target;
-}
-
-size_t ParameterRangeOneOf::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  switch (parameter_range_type_case()) {
-    // .flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;
-    case kContinuousParameterRange: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSize(
-          *parameter_range_type_.continuous_parameter_range_);
-      break;
-    }
-    // .flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;
-    case kIntegerParameterRange: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSize(
-          *parameter_range_type_.integer_parameter_range_);
-      break;
-    }
-    // .flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;
-    case kCategoricalParameterRange: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSize(
-          *parameter_range_type_.categorical_parameter_range_);
-      break;
-    }
-    case PARAMETER_RANGE_TYPE_NOT_SET: {
-      break;
-    }
-  }
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void ParameterRangeOneOf::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  GOOGLE_DCHECK_NE(&from, this);
-  const ParameterRangeOneOf* source =
-      ::google::protobuf::DynamicCastToGenerated<ParameterRangeOneOf>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-    MergeFrom(*source);
-  }
-}
-
-void ParameterRangeOneOf::MergeFrom(const ParameterRangeOneOf& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  switch (from.parameter_range_type_case()) {
-    case kContinuousParameterRange: {
-      mutable_continuous_parameter_range()->::flyteidl::plugins::sagemaker::ContinuousParameterRange::MergeFrom(from.continuous_parameter_range());
-      break;
-    }
-    case kIntegerParameterRange: {
-      mutable_integer_parameter_range()->::flyteidl::plugins::sagemaker::IntegerParameterRange::MergeFrom(from.integer_parameter_range());
-      break;
-    }
-    case kCategoricalParameterRange: {
-      mutable_categorical_parameter_range()->::flyteidl::plugins::sagemaker::CategoricalParameterRange::MergeFrom(from.categorical_parameter_range());
-      break;
-    }
-    case PARAMETER_RANGE_TYPE_NOT_SET: {
-      break;
-    }
-  }
-}
-
-void ParameterRangeOneOf::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ParameterRangeOneOf::CopyFrom(const ParameterRangeOneOf& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ParameterRangeOneOf::IsInitialized() const {
-  return true;
-}
-
-void ParameterRangeOneOf::Swap(ParameterRangeOneOf* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void ParameterRangeOneOf::InternalSwap(ParameterRangeOneOf* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(parameter_range_type_, other->parameter_range_type_);
-  swap(_oneof_case_[0], other->_oneof_case_[0]);
-}
-
-::google::protobuf::Metadata ParameterRangeOneOf::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-ParameterRanges_ParameterRangeMapEntry_DoNotUse::ParameterRanges_ParameterRangeMapEntry_DoNotUse() {}
-ParameterRanges_ParameterRangeMapEntry_DoNotUse::ParameterRanges_ParameterRangeMapEntry_DoNotUse(::google::protobuf::Arena* arena)
-    : SuperType(arena) {}
-void ParameterRanges_ParameterRangeMapEntry_DoNotUse::MergeFrom(const ParameterRanges_ParameterRangeMapEntry_DoNotUse& other) {
-  MergeFromInternal(other);
-}
-::google::protobuf::Metadata ParameterRanges_ParameterRangeMapEntry_DoNotUse::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto[5];
-}
-void ParameterRanges_ParameterRangeMapEntry_DoNotUse::MergeFrom(
-    const ::google::protobuf::Message& other) {
-  ::google::protobuf::Message::MergeFrom(other);
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool ParameterRanges_ParameterRangeMapEntry_DoNotUse::_ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) {
-  using MF = ::google::protobuf::internal::MapField<
-      ParameterRanges_ParameterRangeMapEntry_DoNotUse, EntryKeyType, EntryValueType,
-      kEntryKeyFieldType, kEntryValueFieldType,
-      kEntryDefaultEnumValue>;
-  auto mf = static_cast<MF*>(object);
-  Parser<MF, ::google::protobuf::Map<EntryKeyType, EntryValueType>> parser(mf);
-#define DO_(x) if (!(x)) return false
-  DO_(parser.ParseMap(begin, end));
-  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-    parser.key().data(), static_cast<int>(parser.key().length()),
-    ::google::protobuf::internal::WireFormatLite::PARSE,
-    "flyteidl.plugins.sagemaker.ParameterRanges.ParameterRangeMapEntry.key"));
-#undef DO_
-  return true;
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-
-// ===================================================================
-
-void ParameterRanges::InitAsDefaultInstance() {
-}
-class ParameterRanges::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int ParameterRanges::kParameterRangeMapFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-ParameterRanges::ParameterRanges()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.ParameterRanges)
-}
-ParameterRanges::ParameterRanges(const ParameterRanges& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  parameter_range_map_.MergeFrom(from.parameter_range_map_);
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.ParameterRanges)
-}
-
-void ParameterRanges::SharedCtor() {
-  ::google::protobuf::internal::InitSCC(
-      &scc_info_ParameterRanges_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-}
-
-ParameterRanges::~ParameterRanges() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.ParameterRanges)
-  SharedDtor();
-}
-
-void ParameterRanges::SharedDtor() {
-}
-
-void ParameterRanges::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const ParameterRanges& ParameterRanges::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_ParameterRanges_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void ParameterRanges::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.ParameterRanges)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  parameter_range_map_.Clear();
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* ParameterRanges::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<ParameterRanges*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // map<string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf> parameter_range_map = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
-        do {
-          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-          parser_till_end = ::google::protobuf::internal::SlowMapEntryParser;
-          auto parse_map = ::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse::_ParseMap;
-          ctx->extra_parse_data().payload.clear();
-          ctx->extra_parse_data().parse_map = parse_map;
-          object = &msg->parameter_range_map_;
-          if (size > end - ptr) goto len_delim_till_end;
-          auto newend = ptr + size;
-          GOOGLE_PROTOBUF_PARSER_ASSERT(parse_map(ptr, newend, object, ctx));
-          ptr = newend;
-          if (ptr >= end) break;
-        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-len_delim_till_end:
-  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
-                               {parser_till_end, object}, size);
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool ParameterRanges::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.ParameterRanges)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // map<string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf> parameter_range_map = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
-          ParameterRanges_ParameterRangeMapEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
-              ParameterRanges_ParameterRangeMapEntry_DoNotUse,
-              ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf,
-              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
-              ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
-              0 >,
-            ::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf > > parser(&parameter_range_map_);
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-              input, &parser));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            parser.key().data(), static_cast<int>(parser.key().length()),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "flyteidl.plugins.sagemaker.ParameterRanges.ParameterRangeMapEntry.key"));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.ParameterRanges)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.ParameterRanges)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void ParameterRanges::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.ParameterRanges)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // map<string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf> parameter_range_map = 1;
-  if (!this->parameter_range_map().empty()) {
-    typedef ::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >::const_pointer
-        ConstPtr;
-    typedef ConstPtr SortItem;
-    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
-    struct Utf8Check {
-      static void Check(ConstPtr p) {
-        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-          p->first.data(), static_cast<int>(p->first.length()),
-          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-          "flyteidl.plugins.sagemaker.ParameterRanges.ParameterRangeMapEntry.key");
-      }
-    };
-
-    if (output->IsSerializationDeterministic() &&
-        this->parameter_range_map().size() > 1) {
-      ::std::unique_ptr<SortItem[]> items(
-          new SortItem[this->parameter_range_map().size()]);
-      typedef ::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >::size_type size_type;
-      size_type n = 0;
-      for (::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >::const_iterator
-          it = this->parameter_range_map().begin();
-          it != this->parameter_range_map().end(); ++it, ++n) {
-        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
-      }
-      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
-      ::std::unique_ptr<ParameterRanges_ParameterRangeMapEntry_DoNotUse> entry;
-      for (size_type i = 0; i < n; i++) {
-        entry.reset(parameter_range_map_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
-        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(1, *entry, output);
-        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
-      }
-    } else {
-      ::std::unique_ptr<ParameterRanges_ParameterRangeMapEntry_DoNotUse> entry;
-      for (::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >::const_iterator
-          it = this->parameter_range_map().begin();
-          it != this->parameter_range_map().end(); ++it) {
-        entry.reset(parameter_range_map_.NewEntryWrapper(it->first, it->second));
-        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(1, *entry, output);
-        Utf8Check::Check(&(*it));
-      }
-    }
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.ParameterRanges)
-}
-
-::google::protobuf::uint8* ParameterRanges::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.ParameterRanges)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // map<string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf> parameter_range_map = 1;
-  if (!this->parameter_range_map().empty()) {
-    typedef ::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >::const_pointer
-        ConstPtr;
-    typedef ConstPtr SortItem;
-    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
-    struct Utf8Check {
-      static void Check(ConstPtr p) {
-        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-          p->first.data(), static_cast<int>(p->first.length()),
-          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-          "flyteidl.plugins.sagemaker.ParameterRanges.ParameterRangeMapEntry.key");
-      }
-    };
-
-    if (false &&
-        this->parameter_range_map().size() > 1) {
-      ::std::unique_ptr<SortItem[]> items(
-          new SortItem[this->parameter_range_map().size()]);
-      typedef ::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >::size_type size_type;
-      size_type n = 0;
-      for (::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >::const_iterator
-          it = this->parameter_range_map().begin();
-          it != this->parameter_range_map().end(); ++it, ++n) {
-        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
-      }
-      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
-      ::std::unique_ptr<ParameterRanges_ParameterRangeMapEntry_DoNotUse> entry;
-      for (size_type i = 0; i < n; i++) {
-        entry.reset(parameter_range_map_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
-        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(1, *entry, target);
-        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
-      }
-    } else {
-      ::std::unique_ptr<ParameterRanges_ParameterRangeMapEntry_DoNotUse> entry;
-      for (::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >::const_iterator
-          it = this->parameter_range_map().begin();
-          it != this->parameter_range_map().end(); ++it) {
-        entry.reset(parameter_range_map_.NewEntryWrapper(it->first, it->second));
-        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(1, *entry, target);
-        Utf8Check::Check(&(*it));
-      }
-    }
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.ParameterRanges)
-  return target;
-}
-
-size_t ParameterRanges::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.ParameterRanges)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // map<string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf> parameter_range_map = 1;
-  total_size += 1 *
-      ::google::protobuf::internal::FromIntSize(this->parameter_range_map_size());
-  {
-    ::std::unique_ptr<ParameterRanges_ParameterRangeMapEntry_DoNotUse> entry;
-    for (::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >::const_iterator
-        it = this->parameter_range_map().begin();
-        it != this->parameter_range_map().end(); ++it) {
-      entry.reset(parameter_range_map_.NewEntryWrapper(it->first, it->second));
-      total_size += ::google::protobuf::internal::WireFormatLite::
-          MessageSizeNoVirtual(*entry);
-    }
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void ParameterRanges::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.ParameterRanges)
-  GOOGLE_DCHECK_NE(&from, this);
-  const ParameterRanges* source =
-      ::google::protobuf::DynamicCastToGenerated<ParameterRanges>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.ParameterRanges)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.ParameterRanges)
-    MergeFrom(*source);
-  }
-}
-
-void ParameterRanges::MergeFrom(const ParameterRanges& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.ParameterRanges)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  parameter_range_map_.MergeFrom(from.parameter_range_map_);
-}
-
-void ParameterRanges::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.ParameterRanges)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ParameterRanges::CopyFrom(const ParameterRanges& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.ParameterRanges)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ParameterRanges::IsInitialized() const {
-  return true;
-}
-
-void ParameterRanges::Swap(ParameterRanges* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void ParameterRanges::InternalSwap(ParameterRanges* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  parameter_range_map_.Swap(&other->parameter_range_map_);
-}
-
-::google::protobuf::Metadata ParameterRanges::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto[kIndexInFileMessages];
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-namespace google {
-namespace protobuf {
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::HyperparameterScalingType* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::HyperparameterScalingType >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::HyperparameterScalingType >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::ContinuousParameterRange* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::ContinuousParameterRange >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::ContinuousParameterRange >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::IntegerParameterRange* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::IntegerParameterRange >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::IntegerParameterRange >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::CategoricalParameterRange* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::CategoricalParameterRange >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::CategoricalParameterRange >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::ParameterRangeOneOf* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::ParameterRanges* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::ParameterRanges >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::ParameterRanges >(arena);
-}
-}  // namespace protobuf
-}  // namespace google
-
-// @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.pb.h b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.pb.h
deleted file mode 100644
index 13201549da..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/parameter_ranges.pb.h
+++ /dev/null
@@ -1,1308 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: flyteidl/plugins/sagemaker/parameter_ranges.proto
-
-#ifndef PROTOBUF_INCLUDED_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto
-#define PROTOBUF_INCLUDED_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto
-
-#include <limits>
-#include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3007000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3007000 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include <google/protobuf/map.h>  // IWYU pragma: export
-#include <google/protobuf/map_entry.h>
-#include <google/protobuf/map_field_inl.h>
-#include <google/protobuf/generated_enum_reflection.h>
-#include <google/protobuf/unknown_field_set.h>
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-#define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto
-
-// Internal implementation detail -- do not use these members.
-struct TableStruct_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto {
-  static const ::google::protobuf::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::google::protobuf::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::google::protobuf::internal::ParseTable schema[7]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
-  static const ::google::protobuf::internal::SerializationTable serialization_table[];
-  static const ::google::protobuf::uint32 offsets[];
-};
-void AddDescriptors_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto();
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-class CategoricalParameterRange;
-class CategoricalParameterRangeDefaultTypeInternal;
-extern CategoricalParameterRangeDefaultTypeInternal _CategoricalParameterRange_default_instance_;
-class ContinuousParameterRange;
-class ContinuousParameterRangeDefaultTypeInternal;
-extern ContinuousParameterRangeDefaultTypeInternal _ContinuousParameterRange_default_instance_;
-class HyperparameterScalingType;
-class HyperparameterScalingTypeDefaultTypeInternal;
-extern HyperparameterScalingTypeDefaultTypeInternal _HyperparameterScalingType_default_instance_;
-class IntegerParameterRange;
-class IntegerParameterRangeDefaultTypeInternal;
-extern IntegerParameterRangeDefaultTypeInternal _IntegerParameterRange_default_instance_;
-class ParameterRangeOneOf;
-class ParameterRangeOneOfDefaultTypeInternal;
-extern ParameterRangeOneOfDefaultTypeInternal _ParameterRangeOneOf_default_instance_;
-class ParameterRanges;
-class ParameterRangesDefaultTypeInternal;
-extern ParameterRangesDefaultTypeInternal _ParameterRanges_default_instance_;
-class ParameterRanges_ParameterRangeMapEntry_DoNotUse;
-class ParameterRanges_ParameterRangeMapEntry_DoNotUseDefaultTypeInternal;
-extern ParameterRanges_ParameterRangeMapEntry_DoNotUseDefaultTypeInternal _ParameterRanges_ParameterRangeMapEntry_DoNotUse_default_instance_;
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-namespace google {
-namespace protobuf {
-template<> ::flyteidl::plugins::sagemaker::CategoricalParameterRange* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::CategoricalParameterRange>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::ContinuousParameterRange* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::ContinuousParameterRange>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::HyperparameterScalingType* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::HyperparameterScalingType>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::IntegerParameterRange* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::IntegerParameterRange>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::ParameterRangeOneOf* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::ParameterRangeOneOf>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::ParameterRanges* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::ParameterRanges>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::ParameterRanges_ParameterRangeMapEntry_DoNotUse>(Arena*);
-}  // namespace protobuf
-}  // namespace google
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-
-enum HyperparameterScalingType_Value {
-  HyperparameterScalingType_Value_AUTO = 0,
-  HyperparameterScalingType_Value_LINEAR = 1,
-  HyperparameterScalingType_Value_LOGARITHMIC = 2,
-  HyperparameterScalingType_Value_REVERSELOGARITHMIC = 3,
-  HyperparameterScalingType_Value_HyperparameterScalingType_Value_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
-  HyperparameterScalingType_Value_HyperparameterScalingType_Value_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
-};
-bool HyperparameterScalingType_Value_IsValid(int value);
-const HyperparameterScalingType_Value HyperparameterScalingType_Value_Value_MIN = HyperparameterScalingType_Value_AUTO;
-const HyperparameterScalingType_Value HyperparameterScalingType_Value_Value_MAX = HyperparameterScalingType_Value_REVERSELOGARITHMIC;
-const int HyperparameterScalingType_Value_Value_ARRAYSIZE = HyperparameterScalingType_Value_Value_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* HyperparameterScalingType_Value_descriptor();
-inline const ::std::string& HyperparameterScalingType_Value_Name(HyperparameterScalingType_Value value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    HyperparameterScalingType_Value_descriptor(), value);
-}
-inline bool HyperparameterScalingType_Value_Parse(
-    const ::std::string& name, HyperparameterScalingType_Value* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<HyperparameterScalingType_Value>(
-    HyperparameterScalingType_Value_descriptor(), name, value);
-}
-// ===================================================================
-
-class HyperparameterScalingType final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.HyperparameterScalingType) */ {
- public:
-  HyperparameterScalingType();
-  virtual ~HyperparameterScalingType();
-
-  HyperparameterScalingType(const HyperparameterScalingType& from);
-
-  inline HyperparameterScalingType& operator=(const HyperparameterScalingType& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  HyperparameterScalingType(HyperparameterScalingType&& from) noexcept
-    : HyperparameterScalingType() {
-    *this = ::std::move(from);
-  }
-
-  inline HyperparameterScalingType& operator=(HyperparameterScalingType&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const HyperparameterScalingType& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const HyperparameterScalingType* internal_default_instance() {
-    return reinterpret_cast<const HyperparameterScalingType*>(
-               &_HyperparameterScalingType_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    0;
-
-  void Swap(HyperparameterScalingType* other);
-  friend void swap(HyperparameterScalingType& a, HyperparameterScalingType& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline HyperparameterScalingType* New() const final {
-    return CreateMaybeMessage<HyperparameterScalingType>(nullptr);
-  }
-
-  HyperparameterScalingType* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<HyperparameterScalingType>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const HyperparameterScalingType& from);
-  void MergeFrom(const HyperparameterScalingType& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(HyperparameterScalingType* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  typedef HyperparameterScalingType_Value Value;
-  static const Value AUTO =
-    HyperparameterScalingType_Value_AUTO;
-  static const Value LINEAR =
-    HyperparameterScalingType_Value_LINEAR;
-  static const Value LOGARITHMIC =
-    HyperparameterScalingType_Value_LOGARITHMIC;
-  static const Value REVERSELOGARITHMIC =
-    HyperparameterScalingType_Value_REVERSELOGARITHMIC;
-  static inline bool Value_IsValid(int value) {
-    return HyperparameterScalingType_Value_IsValid(value);
-  }
-  static const Value Value_MIN =
-    HyperparameterScalingType_Value_Value_MIN;
-  static const Value Value_MAX =
-    HyperparameterScalingType_Value_Value_MAX;
-  static const int Value_ARRAYSIZE =
-    HyperparameterScalingType_Value_Value_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  Value_descriptor() {
-    return HyperparameterScalingType_Value_descriptor();
-  }
-  static inline const ::std::string& Value_Name(Value value) {
-    return HyperparameterScalingType_Value_Name(value);
-  }
-  static inline bool Value_Parse(const ::std::string& name,
-      Value* value) {
-    return HyperparameterScalingType_Value_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterScalingType)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-};
-// -------------------------------------------------------------------
-
-class ContinuousParameterRange final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.ContinuousParameterRange) */ {
- public:
-  ContinuousParameterRange();
-  virtual ~ContinuousParameterRange();
-
-  ContinuousParameterRange(const ContinuousParameterRange& from);
-
-  inline ContinuousParameterRange& operator=(const ContinuousParameterRange& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  ContinuousParameterRange(ContinuousParameterRange&& from) noexcept
-    : ContinuousParameterRange() {
-    *this = ::std::move(from);
-  }
-
-  inline ContinuousParameterRange& operator=(ContinuousParameterRange&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const ContinuousParameterRange& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const ContinuousParameterRange* internal_default_instance() {
-    return reinterpret_cast<const ContinuousParameterRange*>(
-               &_ContinuousParameterRange_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    1;
-
-  void Swap(ContinuousParameterRange* other);
-  friend void swap(ContinuousParameterRange& a, ContinuousParameterRange& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline ContinuousParameterRange* New() const final {
-    return CreateMaybeMessage<ContinuousParameterRange>(nullptr);
-  }
-
-  ContinuousParameterRange* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<ContinuousParameterRange>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const ContinuousParameterRange& from);
-  void MergeFrom(const ContinuousParameterRange& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(ContinuousParameterRange* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // double max_value = 1;
-  void clear_max_value();
-  static const int kMaxValueFieldNumber = 1;
-  double max_value() const;
-  void set_max_value(double value);
-
-  // double min_value = 2;
-  void clear_min_value();
-  static const int kMinValueFieldNumber = 2;
-  double min_value() const;
-  void set_min_value(double value);
-
-  // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-  void clear_scaling_type();
-  static const int kScalingTypeFieldNumber = 3;
-  ::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value scaling_type() const;
-  void set_scaling_type(::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value value);
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.ContinuousParameterRange)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  double max_value_;
-  double min_value_;
-  int scaling_type_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-};
-// -------------------------------------------------------------------
-
-class IntegerParameterRange final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.IntegerParameterRange) */ {
- public:
-  IntegerParameterRange();
-  virtual ~IntegerParameterRange();
-
-  IntegerParameterRange(const IntegerParameterRange& from);
-
-  inline IntegerParameterRange& operator=(const IntegerParameterRange& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  IntegerParameterRange(IntegerParameterRange&& from) noexcept
-    : IntegerParameterRange() {
-    *this = ::std::move(from);
-  }
-
-  inline IntegerParameterRange& operator=(IntegerParameterRange&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const IntegerParameterRange& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const IntegerParameterRange* internal_default_instance() {
-    return reinterpret_cast<const IntegerParameterRange*>(
-               &_IntegerParameterRange_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    2;
-
-  void Swap(IntegerParameterRange* other);
-  friend void swap(IntegerParameterRange& a, IntegerParameterRange& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline IntegerParameterRange* New() const final {
-    return CreateMaybeMessage<IntegerParameterRange>(nullptr);
-  }
-
-  IntegerParameterRange* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<IntegerParameterRange>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const IntegerParameterRange& from);
-  void MergeFrom(const IntegerParameterRange& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(IntegerParameterRange* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // int64 max_value = 1;
-  void clear_max_value();
-  static const int kMaxValueFieldNumber = 1;
-  ::google::protobuf::int64 max_value() const;
-  void set_max_value(::google::protobuf::int64 value);
-
-  // int64 min_value = 2;
-  void clear_min_value();
-  static const int kMinValueFieldNumber = 2;
-  ::google::protobuf::int64 min_value() const;
-  void set_min_value(::google::protobuf::int64 value);
-
-  // .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-  void clear_scaling_type();
-  static const int kScalingTypeFieldNumber = 3;
-  ::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value scaling_type() const;
-  void set_scaling_type(::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value value);
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.IntegerParameterRange)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::int64 max_value_;
-  ::google::protobuf::int64 min_value_;
-  int scaling_type_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-};
-// -------------------------------------------------------------------
-
-class CategoricalParameterRange final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.CategoricalParameterRange) */ {
- public:
-  CategoricalParameterRange();
-  virtual ~CategoricalParameterRange();
-
-  CategoricalParameterRange(const CategoricalParameterRange& from);
-
-  inline CategoricalParameterRange& operator=(const CategoricalParameterRange& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  CategoricalParameterRange(CategoricalParameterRange&& from) noexcept
-    : CategoricalParameterRange() {
-    *this = ::std::move(from);
-  }
-
-  inline CategoricalParameterRange& operator=(CategoricalParameterRange&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const CategoricalParameterRange& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const CategoricalParameterRange* internal_default_instance() {
-    return reinterpret_cast<const CategoricalParameterRange*>(
-               &_CategoricalParameterRange_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    3;
-
-  void Swap(CategoricalParameterRange* other);
-  friend void swap(CategoricalParameterRange& a, CategoricalParameterRange& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline CategoricalParameterRange* New() const final {
-    return CreateMaybeMessage<CategoricalParameterRange>(nullptr);
-  }
-
-  CategoricalParameterRange* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<CategoricalParameterRange>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const CategoricalParameterRange& from);
-  void MergeFrom(const CategoricalParameterRange& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(CategoricalParameterRange* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // repeated string values = 1;
-  int values_size() const;
-  void clear_values();
-  static const int kValuesFieldNumber = 1;
-  const ::std::string& values(int index) const;
-  ::std::string* mutable_values(int index);
-  void set_values(int index, const ::std::string& value);
-  #if LANG_CXX11
-  void set_values(int index, ::std::string&& value);
-  #endif
-  void set_values(int index, const char* value);
-  void set_values(int index, const char* value, size_t size);
-  ::std::string* add_values();
-  void add_values(const ::std::string& value);
-  #if LANG_CXX11
-  void add_values(::std::string&& value);
-  #endif
-  void add_values(const char* value);
-  void add_values(const char* value, size_t size);
-  const ::google::protobuf::RepeatedPtrField<::std::string>& values() const;
-  ::google::protobuf::RepeatedPtrField<::std::string>* mutable_values();
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.CategoricalParameterRange)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::RepeatedPtrField<::std::string> values_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-};
-// -------------------------------------------------------------------
-
-class ParameterRangeOneOf final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.ParameterRangeOneOf) */ {
- public:
-  ParameterRangeOneOf();
-  virtual ~ParameterRangeOneOf();
-
-  ParameterRangeOneOf(const ParameterRangeOneOf& from);
-
-  inline ParameterRangeOneOf& operator=(const ParameterRangeOneOf& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  ParameterRangeOneOf(ParameterRangeOneOf&& from) noexcept
-    : ParameterRangeOneOf() {
-    *this = ::std::move(from);
-  }
-
-  inline ParameterRangeOneOf& operator=(ParameterRangeOneOf&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const ParameterRangeOneOf& default_instance();
-
-  enum ParameterRangeTypeCase {
-    kContinuousParameterRange = 1,
-    kIntegerParameterRange = 2,
-    kCategoricalParameterRange = 3,
-    PARAMETER_RANGE_TYPE_NOT_SET = 0,
-  };
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const ParameterRangeOneOf* internal_default_instance() {
-    return reinterpret_cast<const ParameterRangeOneOf*>(
-               &_ParameterRangeOneOf_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    4;
-
-  void Swap(ParameterRangeOneOf* other);
-  friend void swap(ParameterRangeOneOf& a, ParameterRangeOneOf& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline ParameterRangeOneOf* New() const final {
-    return CreateMaybeMessage<ParameterRangeOneOf>(nullptr);
-  }
-
-  ParameterRangeOneOf* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<ParameterRangeOneOf>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const ParameterRangeOneOf& from);
-  void MergeFrom(const ParameterRangeOneOf& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(ParameterRangeOneOf* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // .flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;
-  bool has_continuous_parameter_range() const;
-  void clear_continuous_parameter_range();
-  static const int kContinuousParameterRangeFieldNumber = 1;
-  const ::flyteidl::plugins::sagemaker::ContinuousParameterRange& continuous_parameter_range() const;
-  ::flyteidl::plugins::sagemaker::ContinuousParameterRange* release_continuous_parameter_range();
-  ::flyteidl::plugins::sagemaker::ContinuousParameterRange* mutable_continuous_parameter_range();
-  void set_allocated_continuous_parameter_range(::flyteidl::plugins::sagemaker::ContinuousParameterRange* continuous_parameter_range);
-
-  // .flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;
-  bool has_integer_parameter_range() const;
-  void clear_integer_parameter_range();
-  static const int kIntegerParameterRangeFieldNumber = 2;
-  const ::flyteidl::plugins::sagemaker::IntegerParameterRange& integer_parameter_range() const;
-  ::flyteidl::plugins::sagemaker::IntegerParameterRange* release_integer_parameter_range();
-  ::flyteidl::plugins::sagemaker::IntegerParameterRange* mutable_integer_parameter_range();
-  void set_allocated_integer_parameter_range(::flyteidl::plugins::sagemaker::IntegerParameterRange* integer_parameter_range);
-
-  // .flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;
-  bool has_categorical_parameter_range() const;
-  void clear_categorical_parameter_range();
-  static const int kCategoricalParameterRangeFieldNumber = 3;
-  const ::flyteidl::plugins::sagemaker::CategoricalParameterRange& categorical_parameter_range() const;
-  ::flyteidl::plugins::sagemaker::CategoricalParameterRange* release_categorical_parameter_range();
-  ::flyteidl::plugins::sagemaker::CategoricalParameterRange* mutable_categorical_parameter_range();
-  void set_allocated_categorical_parameter_range(::flyteidl::plugins::sagemaker::CategoricalParameterRange* categorical_parameter_range);
-
-  void clear_parameter_range_type();
-  ParameterRangeTypeCase parameter_range_type_case() const;
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
- private:
-  class HasBitSetters;
-  void set_has_continuous_parameter_range();
-  void set_has_integer_parameter_range();
-  void set_has_categorical_parameter_range();
-
-  inline bool has_parameter_range_type() const;
-  inline void clear_has_parameter_range_type();
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  union ParameterRangeTypeUnion {
-    ParameterRangeTypeUnion() {}
-    ::flyteidl::plugins::sagemaker::ContinuousParameterRange* continuous_parameter_range_;
-    ::flyteidl::plugins::sagemaker::IntegerParameterRange* integer_parameter_range_;
-    ::flyteidl::plugins::sagemaker::CategoricalParameterRange* categorical_parameter_range_;
-  } parameter_range_type_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  ::google::protobuf::uint32 _oneof_case_[1];
-
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-};
-// -------------------------------------------------------------------
-
-class ParameterRanges_ParameterRangeMapEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<ParameterRanges_ParameterRangeMapEntry_DoNotUse, 
-    ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf,
-    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
-    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
-    0 > {
-public:
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-static bool _ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  typedef ::google::protobuf::internal::MapEntry<ParameterRanges_ParameterRangeMapEntry_DoNotUse, 
-    ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf,
-    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
-    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
-    0 > SuperType;
-  ParameterRanges_ParameterRangeMapEntry_DoNotUse();
-  ParameterRanges_ParameterRangeMapEntry_DoNotUse(::google::protobuf::Arena* arena);
-  void MergeFrom(const ParameterRanges_ParameterRangeMapEntry_DoNotUse& other);
-  static const ParameterRanges_ParameterRangeMapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const ParameterRanges_ParameterRangeMapEntry_DoNotUse*>(&_ParameterRanges_ParameterRangeMapEntry_DoNotUse_default_instance_); }
-  void MergeFrom(const ::google::protobuf::Message& other) final;
-  ::google::protobuf::Metadata GetMetadata() const;
-};
-
-// -------------------------------------------------------------------
-
-class ParameterRanges final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.ParameterRanges) */ {
- public:
-  ParameterRanges();
-  virtual ~ParameterRanges();
-
-  ParameterRanges(const ParameterRanges& from);
-
-  inline ParameterRanges& operator=(const ParameterRanges& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  ParameterRanges(ParameterRanges&& from) noexcept
-    : ParameterRanges() {
-    *this = ::std::move(from);
-  }
-
-  inline ParameterRanges& operator=(ParameterRanges&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const ParameterRanges& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const ParameterRanges* internal_default_instance() {
-    return reinterpret_cast<const ParameterRanges*>(
-               &_ParameterRanges_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    6;
-
-  void Swap(ParameterRanges* other);
-  friend void swap(ParameterRanges& a, ParameterRanges& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline ParameterRanges* New() const final {
-    return CreateMaybeMessage<ParameterRanges>(nullptr);
-  }
-
-  ParameterRanges* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<ParameterRanges>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const ParameterRanges& from);
-  void MergeFrom(const ParameterRanges& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(ParameterRanges* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-
-  // accessors -------------------------------------------------------
-
-  // map<string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf> parameter_range_map = 1;
-  int parameter_range_map_size() const;
-  void clear_parameter_range_map();
-  static const int kParameterRangeMapFieldNumber = 1;
-  const ::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >&
-      parameter_range_map() const;
-  ::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >*
-      mutable_parameter_range_map();
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.ParameterRanges)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::internal::MapField<
-      ParameterRanges_ParameterRangeMapEntry_DoNotUse,
-      ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf,
-      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
-      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
-      0 > parameter_range_map_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#endif  // __GNUC__
-// HyperparameterScalingType
-
-// -------------------------------------------------------------------
-
-// ContinuousParameterRange
-
-// double max_value = 1;
-inline void ContinuousParameterRange::clear_max_value() {
-  max_value_ = 0;
-}
-inline double ContinuousParameterRange::max_value() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.ContinuousParameterRange.max_value)
-  return max_value_;
-}
-inline void ContinuousParameterRange::set_max_value(double value) {
-  
-  max_value_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.ContinuousParameterRange.max_value)
-}
-
-// double min_value = 2;
-inline void ContinuousParameterRange::clear_min_value() {
-  min_value_ = 0;
-}
-inline double ContinuousParameterRange::min_value() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.ContinuousParameterRange.min_value)
-  return min_value_;
-}
-inline void ContinuousParameterRange::set_min_value(double value) {
-  
-  min_value_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.ContinuousParameterRange.min_value)
-}
-
-// .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-inline void ContinuousParameterRange::clear_scaling_type() {
-  scaling_type_ = 0;
-}
-inline ::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value ContinuousParameterRange::scaling_type() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.ContinuousParameterRange.scaling_type)
-  return static_cast< ::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value >(scaling_type_);
-}
-inline void ContinuousParameterRange::set_scaling_type(::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value value) {
-  
-  scaling_type_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.ContinuousParameterRange.scaling_type)
-}
-
-// -------------------------------------------------------------------
-
-// IntegerParameterRange
-
-// int64 max_value = 1;
-inline void IntegerParameterRange::clear_max_value() {
-  max_value_ = PROTOBUF_LONGLONG(0);
-}
-inline ::google::protobuf::int64 IntegerParameterRange::max_value() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.IntegerParameterRange.max_value)
-  return max_value_;
-}
-inline void IntegerParameterRange::set_max_value(::google::protobuf::int64 value) {
-  
-  max_value_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.IntegerParameterRange.max_value)
-}
-
-// int64 min_value = 2;
-inline void IntegerParameterRange::clear_min_value() {
-  min_value_ = PROTOBUF_LONGLONG(0);
-}
-inline ::google::protobuf::int64 IntegerParameterRange::min_value() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.IntegerParameterRange.min_value)
-  return min_value_;
-}
-inline void IntegerParameterRange::set_min_value(::google::protobuf::int64 value) {
-  
-  min_value_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.IntegerParameterRange.min_value)
-}
-
-// .flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;
-inline void IntegerParameterRange::clear_scaling_type() {
-  scaling_type_ = 0;
-}
-inline ::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value IntegerParameterRange::scaling_type() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.IntegerParameterRange.scaling_type)
-  return static_cast< ::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value >(scaling_type_);
-}
-inline void IntegerParameterRange::set_scaling_type(::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value value) {
-  
-  scaling_type_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.IntegerParameterRange.scaling_type)
-}
-
-// -------------------------------------------------------------------
-
-// CategoricalParameterRange
-
-// repeated string values = 1;
-inline int CategoricalParameterRange::values_size() const {
-  return values_.size();
-}
-inline void CategoricalParameterRange::clear_values() {
-  values_.Clear();
-}
-inline const ::std::string& CategoricalParameterRange::values(int index) const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-  return values_.Get(index);
-}
-inline ::std::string* CategoricalParameterRange::mutable_values(int index) {
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-  return values_.Mutable(index);
-}
-inline void CategoricalParameterRange::set_values(int index, const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-  values_.Mutable(index)->assign(value);
-}
-#if LANG_CXX11
-inline void CategoricalParameterRange::set_values(int index, ::std::string&& value) {
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-  values_.Mutable(index)->assign(std::move(value));
-}
-#endif
-inline void CategoricalParameterRange::set_values(int index, const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  values_.Mutable(index)->assign(value);
-  // @@protoc_insertion_point(field_set_char:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-}
-inline void CategoricalParameterRange::set_values(int index, const char* value, size_t size) {
-  values_.Mutable(index)->assign(
-    reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-}
-inline ::std::string* CategoricalParameterRange::add_values() {
-  // @@protoc_insertion_point(field_add_mutable:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-  return values_.Add();
-}
-inline void CategoricalParameterRange::add_values(const ::std::string& value) {
-  values_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-}
-#if LANG_CXX11
-inline void CategoricalParameterRange::add_values(::std::string&& value) {
-  values_.Add(std::move(value));
-  // @@protoc_insertion_point(field_add:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-}
-#endif
-inline void CategoricalParameterRange::add_values(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  values_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add_char:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-}
-inline void CategoricalParameterRange::add_values(const char* value, size_t size) {
-  values_.Add()->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_add_pointer:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-}
-inline const ::google::protobuf::RepeatedPtrField<::std::string>&
-CategoricalParameterRange::values() const {
-  // @@protoc_insertion_point(field_list:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-  return values_;
-}
-inline ::google::protobuf::RepeatedPtrField<::std::string>*
-CategoricalParameterRange::mutable_values() {
-  // @@protoc_insertion_point(field_mutable_list:flyteidl.plugins.sagemaker.CategoricalParameterRange.values)
-  return &values_;
-}
-
-// -------------------------------------------------------------------
-
-// ParameterRangeOneOf
-
-// .flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;
-inline bool ParameterRangeOneOf::has_continuous_parameter_range() const {
-  return parameter_range_type_case() == kContinuousParameterRange;
-}
-inline void ParameterRangeOneOf::set_has_continuous_parameter_range() {
-  _oneof_case_[0] = kContinuousParameterRange;
-}
-inline void ParameterRangeOneOf::clear_continuous_parameter_range() {
-  if (has_continuous_parameter_range()) {
-    delete parameter_range_type_.continuous_parameter_range_;
-    clear_has_parameter_range_type();
-  }
-}
-inline ::flyteidl::plugins::sagemaker::ContinuousParameterRange* ParameterRangeOneOf::release_continuous_parameter_range() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.ParameterRangeOneOf.continuous_parameter_range)
-  if (has_continuous_parameter_range()) {
-    clear_has_parameter_range_type();
-      ::flyteidl::plugins::sagemaker::ContinuousParameterRange* temp = parameter_range_type_.continuous_parameter_range_;
-    parameter_range_type_.continuous_parameter_range_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::flyteidl::plugins::sagemaker::ContinuousParameterRange& ParameterRangeOneOf::continuous_parameter_range() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.ParameterRangeOneOf.continuous_parameter_range)
-  return has_continuous_parameter_range()
-      ? *parameter_range_type_.continuous_parameter_range_
-      : *reinterpret_cast< ::flyteidl::plugins::sagemaker::ContinuousParameterRange*>(&::flyteidl::plugins::sagemaker::_ContinuousParameterRange_default_instance_);
-}
-inline ::flyteidl::plugins::sagemaker::ContinuousParameterRange* ParameterRangeOneOf::mutable_continuous_parameter_range() {
-  if (!has_continuous_parameter_range()) {
-    clear_parameter_range_type();
-    set_has_continuous_parameter_range();
-    parameter_range_type_.continuous_parameter_range_ = CreateMaybeMessage< ::flyteidl::plugins::sagemaker::ContinuousParameterRange >(
-        GetArenaNoVirtual());
-  }
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.ParameterRangeOneOf.continuous_parameter_range)
-  return parameter_range_type_.continuous_parameter_range_;
-}
-
-// .flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;
-inline bool ParameterRangeOneOf::has_integer_parameter_range() const {
-  return parameter_range_type_case() == kIntegerParameterRange;
-}
-inline void ParameterRangeOneOf::set_has_integer_parameter_range() {
-  _oneof_case_[0] = kIntegerParameterRange;
-}
-inline void ParameterRangeOneOf::clear_integer_parameter_range() {
-  if (has_integer_parameter_range()) {
-    delete parameter_range_type_.integer_parameter_range_;
-    clear_has_parameter_range_type();
-  }
-}
-inline ::flyteidl::plugins::sagemaker::IntegerParameterRange* ParameterRangeOneOf::release_integer_parameter_range() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.ParameterRangeOneOf.integer_parameter_range)
-  if (has_integer_parameter_range()) {
-    clear_has_parameter_range_type();
-      ::flyteidl::plugins::sagemaker::IntegerParameterRange* temp = parameter_range_type_.integer_parameter_range_;
-    parameter_range_type_.integer_parameter_range_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::flyteidl::plugins::sagemaker::IntegerParameterRange& ParameterRangeOneOf::integer_parameter_range() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.ParameterRangeOneOf.integer_parameter_range)
-  return has_integer_parameter_range()
-      ? *parameter_range_type_.integer_parameter_range_
-      : *reinterpret_cast< ::flyteidl::plugins::sagemaker::IntegerParameterRange*>(&::flyteidl::plugins::sagemaker::_IntegerParameterRange_default_instance_);
-}
-inline ::flyteidl::plugins::sagemaker::IntegerParameterRange* ParameterRangeOneOf::mutable_integer_parameter_range() {
-  if (!has_integer_parameter_range()) {
-    clear_parameter_range_type();
-    set_has_integer_parameter_range();
-    parameter_range_type_.integer_parameter_range_ = CreateMaybeMessage< ::flyteidl::plugins::sagemaker::IntegerParameterRange >(
-        GetArenaNoVirtual());
-  }
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.ParameterRangeOneOf.integer_parameter_range)
-  return parameter_range_type_.integer_parameter_range_;
-}
-
-// .flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;
-inline bool ParameterRangeOneOf::has_categorical_parameter_range() const {
-  return parameter_range_type_case() == kCategoricalParameterRange;
-}
-inline void ParameterRangeOneOf::set_has_categorical_parameter_range() {
-  _oneof_case_[0] = kCategoricalParameterRange;
-}
-inline void ParameterRangeOneOf::clear_categorical_parameter_range() {
-  if (has_categorical_parameter_range()) {
-    delete parameter_range_type_.categorical_parameter_range_;
-    clear_has_parameter_range_type();
-  }
-}
-inline ::flyteidl::plugins::sagemaker::CategoricalParameterRange* ParameterRangeOneOf::release_categorical_parameter_range() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.ParameterRangeOneOf.categorical_parameter_range)
-  if (has_categorical_parameter_range()) {
-    clear_has_parameter_range_type();
-      ::flyteidl::plugins::sagemaker::CategoricalParameterRange* temp = parameter_range_type_.categorical_parameter_range_;
-    parameter_range_type_.categorical_parameter_range_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::flyteidl::plugins::sagemaker::CategoricalParameterRange& ParameterRangeOneOf::categorical_parameter_range() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.ParameterRangeOneOf.categorical_parameter_range)
-  return has_categorical_parameter_range()
-      ? *parameter_range_type_.categorical_parameter_range_
-      : *reinterpret_cast< ::flyteidl::plugins::sagemaker::CategoricalParameterRange*>(&::flyteidl::plugins::sagemaker::_CategoricalParameterRange_default_instance_);
-}
-inline ::flyteidl::plugins::sagemaker::CategoricalParameterRange* ParameterRangeOneOf::mutable_categorical_parameter_range() {
-  if (!has_categorical_parameter_range()) {
-    clear_parameter_range_type();
-    set_has_categorical_parameter_range();
-    parameter_range_type_.categorical_parameter_range_ = CreateMaybeMessage< ::flyteidl::plugins::sagemaker::CategoricalParameterRange >(
-        GetArenaNoVirtual());
-  }
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.ParameterRangeOneOf.categorical_parameter_range)
-  return parameter_range_type_.categorical_parameter_range_;
-}
-
-inline bool ParameterRangeOneOf::has_parameter_range_type() const {
-  return parameter_range_type_case() != PARAMETER_RANGE_TYPE_NOT_SET;
-}
-inline void ParameterRangeOneOf::clear_has_parameter_range_type() {
-  _oneof_case_[0] = PARAMETER_RANGE_TYPE_NOT_SET;
-}
-inline ParameterRangeOneOf::ParameterRangeTypeCase ParameterRangeOneOf::parameter_range_type_case() const {
-  return ParameterRangeOneOf::ParameterRangeTypeCase(_oneof_case_[0]);
-}
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// ParameterRanges
-
-// map<string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf> parameter_range_map = 1;
-inline int ParameterRanges::parameter_range_map_size() const {
-  return parameter_range_map_.size();
-}
-inline void ParameterRanges::clear_parameter_range_map() {
-  parameter_range_map_.Clear();
-}
-inline const ::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >&
-ParameterRanges::parameter_range_map() const {
-  // @@protoc_insertion_point(field_map:flyteidl.plugins.sagemaker.ParameterRanges.parameter_range_map)
-  return parameter_range_map_.GetMap();
-}
-inline ::google::protobuf::Map< ::std::string, ::flyteidl::plugins::sagemaker::ParameterRangeOneOf >*
-ParameterRanges::mutable_parameter_range_map() {
-  // @@protoc_insertion_point(field_mutable_map:flyteidl.plugins.sagemaker.ParameterRanges.parameter_range_map)
-  return parameter_range_map_.MutableMap();
-}
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic pop
-#endif  // __GNUC__
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-
-namespace google {
-namespace protobuf {
-
-template <> struct is_proto_enum< ::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value> : ::std::true_type {};
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value>() {
-  return ::flyteidl::plugins::sagemaker::HyperparameterScalingType_Value_descriptor();
-}
-
-}  // namespace protobuf
-}  // namespace google
-
-// @@protoc_insertion_point(global_scope)
-
-#include <google/protobuf/port_undef.inc>
-#endif  // PROTOBUF_INCLUDED_flyteidl_2fplugins_2fsagemaker_2fparameter_5franges_2eproto
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.grpc.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.grpc.pb.cc
deleted file mode 100644
index e7b54a6ee5..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.grpc.pb.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-// Generated by the gRPC C++ plugin.
-// If you make any local change, they will be lost.
-// source: flyteidl/plugins/sagemaker/training_job.proto
-
-#include "flyteidl/plugins/sagemaker/training_job.pb.h"
-#include "flyteidl/plugins/sagemaker/training_job.grpc.pb.h"
-
-#include <functional>
-#include <grpcpp/impl/codegen/async_stream.h>
-#include <grpcpp/impl/codegen/async_unary_call.h>
-#include <grpcpp/impl/codegen/channel_interface.h>
-#include <grpcpp/impl/codegen/client_unary_call.h>
-#include <grpcpp/impl/codegen/client_callback.h>
-#include <grpcpp/impl/codegen/method_handler_impl.h>
-#include <grpcpp/impl/codegen/rpc_service_method.h>
-#include <grpcpp/impl/codegen/server_callback.h>
-#include <grpcpp/impl/codegen/service_type.h>
-#include <grpcpp/impl/codegen/sync_stream.h>
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-
-}  // namespace flyteidl
-}  // namespace plugins
-}  // namespace sagemaker
-
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.grpc.pb.h b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.grpc.pb.h
deleted file mode 100644
index 802320ea79..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.grpc.pb.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// Generated by the gRPC C++ plugin.
-// If you make any local change, they will be lost.
-// source: flyteidl/plugins/sagemaker/training_job.proto
-#ifndef GRPC_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto__INCLUDED
-#define GRPC_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto__INCLUDED
-
-#include "flyteidl/plugins/sagemaker/training_job.pb.h"
-
-#include <functional>
-#include <grpcpp/impl/codegen/async_generic_service.h>
-#include <grpcpp/impl/codegen/async_stream.h>
-#include <grpcpp/impl/codegen/async_unary_call.h>
-#include <grpcpp/impl/codegen/client_callback.h>
-#include <grpcpp/impl/codegen/method_handler_impl.h>
-#include <grpcpp/impl/codegen/proto_utils.h>
-#include <grpcpp/impl/codegen/rpc_method.h>
-#include <grpcpp/impl/codegen/server_callback.h>
-#include <grpcpp/impl/codegen/service_type.h>
-#include <grpcpp/impl/codegen/status.h>
-#include <grpcpp/impl/codegen/stub_options.h>
-#include <grpcpp/impl/codegen/sync_stream.h>
-
-namespace grpc_impl {
-class Channel;
-class CompletionQueue;
-class ServerCompletionQueue;
-}  // namespace grpc_impl
-
-namespace grpc {
-namespace experimental {
-template <typename RequestT, typename ResponseT>
-class MessageAllocator;
-}  // namespace experimental
-}  // namespace grpc_impl
-
-namespace grpc {
-class ServerContext;
-}  // namespace grpc
-
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-
-
-#endif  // GRPC_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto__INCLUDED
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.pb.cc
deleted file mode 100644
index 043486c450..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.pb.cc
+++ /dev/null
@@ -1,2937 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: flyteidl/plugins/sagemaker/training_job.proto
-
-#include "flyteidl/plugins/sagemaker/training_job.pb.h"
-
-#include <algorithm>
-
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite_inl.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/reflection_ops.h>
-#include <google/protobuf/wire_format.h>
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-
-extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_MetricDefinition_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_TrainingJobResourceConfig_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_AlgorithmSpecification_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-class InputModeDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<InputMode> _instance;
-} _InputMode_default_instance_;
-class AlgorithmNameDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<AlgorithmName> _instance;
-} _AlgorithmName_default_instance_;
-class InputContentTypeDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<InputContentType> _instance;
-} _InputContentType_default_instance_;
-class MetricDefinitionDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<MetricDefinition> _instance;
-} _MetricDefinition_default_instance_;
-class AlgorithmSpecificationDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<AlgorithmSpecification> _instance;
-} _AlgorithmSpecification_default_instance_;
-class DistributedProtocolDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<DistributedProtocol> _instance;
-} _DistributedProtocol_default_instance_;
-class TrainingJobResourceConfigDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<TrainingJobResourceConfig> _instance;
-} _TrainingJobResourceConfig_default_instance_;
-class TrainingJobDefaultTypeInternal {
- public:
-  ::google::protobuf::internal::ExplicitlyConstructed<TrainingJob> _instance;
-} _TrainingJob_default_instance_;
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-static void InitDefaultsInputMode_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_InputMode_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::InputMode();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::InputMode::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_InputMode_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsInputMode_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto}, {}};
-
-static void InitDefaultsAlgorithmName_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_AlgorithmName_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::AlgorithmName();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::AlgorithmName::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_AlgorithmName_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsAlgorithmName_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto}, {}};
-
-static void InitDefaultsInputContentType_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_InputContentType_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::InputContentType();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::InputContentType::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_InputContentType_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsInputContentType_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto}, {}};
-
-static void InitDefaultsMetricDefinition_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_MetricDefinition_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::MetricDefinition();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::MetricDefinition::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_MetricDefinition_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsMetricDefinition_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto}, {}};
-
-static void InitDefaultsAlgorithmSpecification_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_AlgorithmSpecification_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::AlgorithmSpecification();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::AlgorithmSpecification::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<1> scc_info_AlgorithmSpecification_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsAlgorithmSpecification_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto}, {
-      &scc_info_MetricDefinition_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base,}};
-
-static void InitDefaultsDistributedProtocol_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_DistributedProtocol_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::DistributedProtocol();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::DistributedProtocol::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_DistributedProtocol_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsDistributedProtocol_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto}, {}};
-
-static void InitDefaultsTrainingJobResourceConfig_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_TrainingJobResourceConfig_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<0> scc_info_TrainingJobResourceConfig_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsTrainingJobResourceConfig_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto}, {}};
-
-static void InitDefaultsTrainingJob_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::flyteidl::plugins::sagemaker::_TrainingJob_default_instance_;
-    new (ptr) ::flyteidl::plugins::sagemaker::TrainingJob();
-    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::flyteidl::plugins::sagemaker::TrainingJob::InitAsDefaultInstance();
-}
-
-::google::protobuf::internal::SCCInfo<2> scc_info_TrainingJob_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsTrainingJob_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto}, {
-      &scc_info_AlgorithmSpecification_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base,
-      &scc_info_TrainingJobResourceConfig_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base,}};
-
-void InitDefaults_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto() {
-  ::google::protobuf::internal::InitSCC(&scc_info_InputMode_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_AlgorithmName_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_InputContentType_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_MetricDefinition_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_AlgorithmSpecification_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_DistributedProtocol_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_TrainingJobResourceConfig_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  ::google::protobuf::internal::InitSCC(&scc_info_TrainingJob_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-}
-
-::google::protobuf::Metadata file_level_metadata_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[8];
-const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[4];
-constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto = nullptr;
-
-const ::google::protobuf::uint32 TableStruct_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::InputMode, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::AlgorithmName, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::InputContentType, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::MetricDefinition, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::MetricDefinition, name_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::MetricDefinition, regex_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::AlgorithmSpecification, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::AlgorithmSpecification, input_mode_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::AlgorithmSpecification, algorithm_name_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::AlgorithmSpecification, algorithm_version_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::AlgorithmSpecification, metric_definitions_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::AlgorithmSpecification, input_content_type_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::DistributedProtocol, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::TrainingJobResourceConfig, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::TrainingJobResourceConfig, instance_count_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::TrainingJobResourceConfig, instance_type_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::TrainingJobResourceConfig, volume_size_in_gb_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::TrainingJobResourceConfig, distributed_protocol_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::TrainingJob, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::TrainingJob, algorithm_specification_),
-  PROTOBUF_FIELD_OFFSET(::flyteidl::plugins::sagemaker::TrainingJob, training_job_resource_config_),
-};
-static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  { 0, -1, sizeof(::flyteidl::plugins::sagemaker::InputMode)},
-  { 5, -1, sizeof(::flyteidl::plugins::sagemaker::AlgorithmName)},
-  { 10, -1, sizeof(::flyteidl::plugins::sagemaker::InputContentType)},
-  { 15, -1, sizeof(::flyteidl::plugins::sagemaker::MetricDefinition)},
-  { 22, -1, sizeof(::flyteidl::plugins::sagemaker::AlgorithmSpecification)},
-  { 32, -1, sizeof(::flyteidl::plugins::sagemaker::DistributedProtocol)},
-  { 37, -1, sizeof(::flyteidl::plugins::sagemaker::TrainingJobResourceConfig)},
-  { 46, -1, sizeof(::flyteidl::plugins::sagemaker::TrainingJob)},
-};
-
-static ::google::protobuf::Message const * const file_default_instances[] = {
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_InputMode_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_AlgorithmName_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_InputContentType_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_MetricDefinition_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_AlgorithmSpecification_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_DistributedProtocol_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_TrainingJobResourceConfig_default_instance_),
-  reinterpret_cast<const ::google::protobuf::Message*>(&::flyteidl::plugins::sagemaker::_TrainingJob_default_instance_),
-};
-
-::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto = {
-  {}, AddDescriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto, "flyteidl/plugins/sagemaker/training_job.proto", schemas,
-  file_default_instances, TableStruct_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto::offsets,
-  file_level_metadata_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto, 8, file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto, file_level_service_descriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto,
-};
-
-const char descriptor_table_protodef_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[] =
-  "\n-flyteidl/plugins/sagemaker/training_jo"
-  "b.proto\022\032flyteidl.plugins.sagemaker\032\036goo"
-  "gle/protobuf/duration.proto\"(\n\tInputMode"
-  "\"\033\n\005Value\022\010\n\004FILE\020\000\022\010\n\004PIPE\020\001\"1\n\rAlgorit"
-  "hmName\" \n\005Value\022\n\n\006CUSTOM\020\000\022\013\n\007XGBOOST\020\001"
-  "\")\n\020InputContentType\"\025\n\005Value\022\014\n\010TEXT_CS"
-  "V\020\000\"/\n\020MetricDefinition\022\014\n\004name\030\001 \001(\t\022\r\n"
-  "\005regex\030\002 \001(\t\"\327\002\n\026AlgorithmSpecification\022"
-  "\?\n\ninput_mode\030\001 \001(\0162+.flyteidl.plugins.s"
-  "agemaker.InputMode.Value\022G\n\016algorithm_na"
-  "me\030\002 \001(\0162/.flyteidl.plugins.sagemaker.Al"
-  "gorithmName.Value\022\031\n\021algorithm_version\030\003"
-  " \001(\t\022H\n\022metric_definitions\030\004 \003(\0132,.flyte"
-  "idl.plugins.sagemaker.MetricDefinition\022N"
-  "\n\022input_content_type\030\005 \001(\01622.flyteidl.pl"
-  "ugins.sagemaker.InputContentType.Value\"8"
-  "\n\023DistributedProtocol\"!\n\005Value\022\017\n\013UNSPEC"
-  "IFIED\020\000\022\007\n\003MPI\020\001\"\272\001\n\031TrainingJobResource"
-  "Config\022\026\n\016instance_count\030\001 \001(\003\022\025\n\rinstan"
-  "ce_type\030\002 \001(\t\022\031\n\021volume_size_in_gb\030\003 \001(\003"
-  "\022S\n\024distributed_protocol\030\004 \001(\01625.flyteid"
-  "l.plugins.sagemaker.DistributedProtocol."
-  "Value\"\277\001\n\013TrainingJob\022S\n\027algorithm_speci"
-  "fication\030\001 \001(\01322.flyteidl.plugins.sagema"
-  "ker.AlgorithmSpecification\022[\n\034training_j"
-  "ob_resource_config\030\002 \001(\01325.flyteidl.plug"
-  "ins.sagemaker.TrainingJobResourceConfigB"
-  "\?Z=github.com/flyteorg/flyte/flyteidl/ge"
-  "n/pb-go/flyteidl/pluginsb\006proto3"
-  ;
-::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto = {
-  false, InitDefaults_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto, 
-  descriptor_table_protodef_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto,
-  "flyteidl/plugins/sagemaker/training_job.proto", &assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto, 1152,
-};
-
-void AddDescriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto() {
-  static constexpr ::google::protobuf::internal::InitFunc deps[1] =
-  {
-    ::AddDescriptors_google_2fprotobuf_2fduration_2eproto,
-  };
- ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto, deps, 1);
-}
-
-// Force running AddDescriptors() at dynamic initialization time.
-static bool dynamic_init_dummy_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto = []() { AddDescriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto(); return true; }();
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-const ::google::protobuf::EnumDescriptor* InputMode_Value_descriptor() {
-  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[0];
-}
-bool InputMode_Value_IsValid(int value) {
-  switch (value) {
-    case 0:
-    case 1:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const InputMode_Value InputMode::FILE;
-const InputMode_Value InputMode::PIPE;
-const InputMode_Value InputMode::Value_MIN;
-const InputMode_Value InputMode::Value_MAX;
-const int InputMode::Value_ARRAYSIZE;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-const ::google::protobuf::EnumDescriptor* AlgorithmName_Value_descriptor() {
-  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[1];
-}
-bool AlgorithmName_Value_IsValid(int value) {
-  switch (value) {
-    case 0:
-    case 1:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const AlgorithmName_Value AlgorithmName::CUSTOM;
-const AlgorithmName_Value AlgorithmName::XGBOOST;
-const AlgorithmName_Value AlgorithmName::Value_MIN;
-const AlgorithmName_Value AlgorithmName::Value_MAX;
-const int AlgorithmName::Value_ARRAYSIZE;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-const ::google::protobuf::EnumDescriptor* InputContentType_Value_descriptor() {
-  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[2];
-}
-bool InputContentType_Value_IsValid(int value) {
-  switch (value) {
-    case 0:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const InputContentType_Value InputContentType::TEXT_CSV;
-const InputContentType_Value InputContentType::Value_MIN;
-const InputContentType_Value InputContentType::Value_MAX;
-const int InputContentType::Value_ARRAYSIZE;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-const ::google::protobuf::EnumDescriptor* DistributedProtocol_Value_descriptor() {
-  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return file_level_enum_descriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[3];
-}
-bool DistributedProtocol_Value_IsValid(int value) {
-  switch (value) {
-    case 0:
-    case 1:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const DistributedProtocol_Value DistributedProtocol::UNSPECIFIED;
-const DistributedProtocol_Value DistributedProtocol::MPI;
-const DistributedProtocol_Value DistributedProtocol::Value_MIN;
-const DistributedProtocol_Value DistributedProtocol::Value_MAX;
-const int DistributedProtocol::Value_ARRAYSIZE;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-// ===================================================================
-
-void InputMode::InitAsDefaultInstance() {
-}
-class InputMode::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-InputMode::InputMode()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.InputMode)
-}
-InputMode::InputMode(const InputMode& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.InputMode)
-}
-
-void InputMode::SharedCtor() {
-}
-
-InputMode::~InputMode() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.InputMode)
-  SharedDtor();
-}
-
-void InputMode::SharedDtor() {
-}
-
-void InputMode::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const InputMode& InputMode::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_InputMode_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void InputMode::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.InputMode)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* InputMode::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<InputMode*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      default: {
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool InputMode::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.InputMode)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-  handle_unusual:
-    if (tag == 0) {
-      goto success;
-    }
-    DO_(::google::protobuf::internal::WireFormat::SkipField(
-          input, tag, _internal_metadata_.mutable_unknown_fields()));
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.InputMode)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.InputMode)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void InputMode::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.InputMode)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.InputMode)
-}
-
-::google::protobuf::uint8* InputMode::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.InputMode)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.InputMode)
-  return target;
-}
-
-size_t InputMode::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.InputMode)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void InputMode::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.InputMode)
-  GOOGLE_DCHECK_NE(&from, this);
-  const InputMode* source =
-      ::google::protobuf::DynamicCastToGenerated<InputMode>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.InputMode)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.InputMode)
-    MergeFrom(*source);
-  }
-}
-
-void InputMode::MergeFrom(const InputMode& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.InputMode)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-}
-
-void InputMode::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.InputMode)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void InputMode::CopyFrom(const InputMode& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.InputMode)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool InputMode::IsInitialized() const {
-  return true;
-}
-
-void InputMode::Swap(InputMode* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void InputMode::InternalSwap(InputMode* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-}
-
-::google::protobuf::Metadata InputMode::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void AlgorithmName::InitAsDefaultInstance() {
-}
-class AlgorithmName::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-AlgorithmName::AlgorithmName()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.AlgorithmName)
-}
-AlgorithmName::AlgorithmName(const AlgorithmName& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.AlgorithmName)
-}
-
-void AlgorithmName::SharedCtor() {
-}
-
-AlgorithmName::~AlgorithmName() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.AlgorithmName)
-  SharedDtor();
-}
-
-void AlgorithmName::SharedDtor() {
-}
-
-void AlgorithmName::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const AlgorithmName& AlgorithmName::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_AlgorithmName_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void AlgorithmName::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.AlgorithmName)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* AlgorithmName::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<AlgorithmName*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      default: {
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool AlgorithmName::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.AlgorithmName)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-  handle_unusual:
-    if (tag == 0) {
-      goto success;
-    }
-    DO_(::google::protobuf::internal::WireFormat::SkipField(
-          input, tag, _internal_metadata_.mutable_unknown_fields()));
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.AlgorithmName)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.AlgorithmName)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void AlgorithmName::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.AlgorithmName)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.AlgorithmName)
-}
-
-::google::protobuf::uint8* AlgorithmName::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.AlgorithmName)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.AlgorithmName)
-  return target;
-}
-
-size_t AlgorithmName::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.AlgorithmName)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void AlgorithmName::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.AlgorithmName)
-  GOOGLE_DCHECK_NE(&from, this);
-  const AlgorithmName* source =
-      ::google::protobuf::DynamicCastToGenerated<AlgorithmName>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.AlgorithmName)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.AlgorithmName)
-    MergeFrom(*source);
-  }
-}
-
-void AlgorithmName::MergeFrom(const AlgorithmName& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.AlgorithmName)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-}
-
-void AlgorithmName::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.AlgorithmName)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void AlgorithmName::CopyFrom(const AlgorithmName& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.AlgorithmName)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool AlgorithmName::IsInitialized() const {
-  return true;
-}
-
-void AlgorithmName::Swap(AlgorithmName* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void AlgorithmName::InternalSwap(AlgorithmName* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-}
-
-::google::protobuf::Metadata AlgorithmName::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void InputContentType::InitAsDefaultInstance() {
-}
-class InputContentType::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-InputContentType::InputContentType()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.InputContentType)
-}
-InputContentType::InputContentType(const InputContentType& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.InputContentType)
-}
-
-void InputContentType::SharedCtor() {
-}
-
-InputContentType::~InputContentType() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.InputContentType)
-  SharedDtor();
-}
-
-void InputContentType::SharedDtor() {
-}
-
-void InputContentType::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const InputContentType& InputContentType::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_InputContentType_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void InputContentType::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.InputContentType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* InputContentType::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<InputContentType*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      default: {
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool InputContentType::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.InputContentType)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-  handle_unusual:
-    if (tag == 0) {
-      goto success;
-    }
-    DO_(::google::protobuf::internal::WireFormat::SkipField(
-          input, tag, _internal_metadata_.mutable_unknown_fields()));
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.InputContentType)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.InputContentType)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void InputContentType::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.InputContentType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.InputContentType)
-}
-
-::google::protobuf::uint8* InputContentType::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.InputContentType)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.InputContentType)
-  return target;
-}
-
-size_t InputContentType::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.InputContentType)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void InputContentType::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.InputContentType)
-  GOOGLE_DCHECK_NE(&from, this);
-  const InputContentType* source =
-      ::google::protobuf::DynamicCastToGenerated<InputContentType>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.InputContentType)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.InputContentType)
-    MergeFrom(*source);
-  }
-}
-
-void InputContentType::MergeFrom(const InputContentType& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.InputContentType)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-}
-
-void InputContentType::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.InputContentType)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void InputContentType::CopyFrom(const InputContentType& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.InputContentType)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool InputContentType::IsInitialized() const {
-  return true;
-}
-
-void InputContentType::Swap(InputContentType* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void InputContentType::InternalSwap(InputContentType* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-}
-
-::google::protobuf::Metadata InputContentType::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void MetricDefinition::InitAsDefaultInstance() {
-}
-class MetricDefinition::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int MetricDefinition::kNameFieldNumber;
-const int MetricDefinition::kRegexFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-MetricDefinition::MetricDefinition()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.MetricDefinition)
-}
-MetricDefinition::MetricDefinition(const MetricDefinition& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (from.name().size() > 0) {
-    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
-  }
-  regex_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (from.regex().size() > 0) {
-    regex_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.regex_);
-  }
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.MetricDefinition)
-}
-
-void MetricDefinition::SharedCtor() {
-  ::google::protobuf::internal::InitSCC(
-      &scc_info_MetricDefinition_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  regex_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-MetricDefinition::~MetricDefinition() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.MetricDefinition)
-  SharedDtor();
-}
-
-void MetricDefinition::SharedDtor() {
-  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  regex_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-void MetricDefinition::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MetricDefinition& MetricDefinition::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_MetricDefinition_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MetricDefinition::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.MetricDefinition)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  regex_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* MetricDefinition::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<MetricDefinition*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // string name = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        ctx->extra_parse_data().SetFieldName("flyteidl.plugins.sagemaker.MetricDefinition.name");
-        object = msg->mutable_name();
-        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
-          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
-          goto string_till_end;
-        }
-        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
-        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
-        ptr += size;
-        break;
-      }
-      // string regex = 2;
-      case 2: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        ctx->extra_parse_data().SetFieldName("flyteidl.plugins.sagemaker.MetricDefinition.regex");
-        object = msg->mutable_regex();
-        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
-          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
-          goto string_till_end;
-        }
-        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
-        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
-        ptr += size;
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-string_till_end:
-  static_cast<::std::string*>(object)->clear();
-  static_cast<::std::string*>(object)->reserve(size);
-  goto len_delim_till_end;
-len_delim_till_end:
-  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
-                               {parser_till_end, object}, size);
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool MetricDefinition::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.MetricDefinition)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // string name = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_name()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->name().data(), static_cast<int>(this->name().length()),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "flyteidl.plugins.sagemaker.MetricDefinition.name"));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // string regex = 2;
-      case 2: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_regex()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->regex().data(), static_cast<int>(this->regex().length()),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "flyteidl.plugins.sagemaker.MetricDefinition.regex"));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.MetricDefinition)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.MetricDefinition)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void MetricDefinition::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.MetricDefinition)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // string name = 1;
-  if (this->name().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->name().data(), static_cast<int>(this->name().length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.MetricDefinition.name");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      1, this->name(), output);
-  }
-
-  // string regex = 2;
-  if (this->regex().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->regex().data(), static_cast<int>(this->regex().length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.MetricDefinition.regex");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      2, this->regex(), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.MetricDefinition)
-}
-
-::google::protobuf::uint8* MetricDefinition::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.MetricDefinition)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // string name = 1;
-  if (this->name().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->name().data(), static_cast<int>(this->name().length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.MetricDefinition.name");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->name(), target);
-  }
-
-  // string regex = 2;
-  if (this->regex().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->regex().data(), static_cast<int>(this->regex().length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.MetricDefinition.regex");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        2, this->regex(), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.MetricDefinition)
-  return target;
-}
-
-size_t MetricDefinition::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.MetricDefinition)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // string name = 1;
-  if (this->name().size() > 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->name());
-  }
-
-  // string regex = 2;
-  if (this->regex().size() > 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->regex());
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MetricDefinition::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.MetricDefinition)
-  GOOGLE_DCHECK_NE(&from, this);
-  const MetricDefinition* source =
-      ::google::protobuf::DynamicCastToGenerated<MetricDefinition>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.MetricDefinition)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.MetricDefinition)
-    MergeFrom(*source);
-  }
-}
-
-void MetricDefinition::MergeFrom(const MetricDefinition& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.MetricDefinition)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.name().size() > 0) {
-
-    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
-  }
-  if (from.regex().size() > 0) {
-
-    regex_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.regex_);
-  }
-}
-
-void MetricDefinition::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.MetricDefinition)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void MetricDefinition::CopyFrom(const MetricDefinition& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.MetricDefinition)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MetricDefinition::IsInitialized() const {
-  return true;
-}
-
-void MetricDefinition::Swap(MetricDefinition* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void MetricDefinition::InternalSwap(MetricDefinition* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  name_.Swap(&other->name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  regex_.Swap(&other->regex_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-}
-
-::google::protobuf::Metadata MetricDefinition::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void AlgorithmSpecification::InitAsDefaultInstance() {
-}
-class AlgorithmSpecification::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int AlgorithmSpecification::kInputModeFieldNumber;
-const int AlgorithmSpecification::kAlgorithmNameFieldNumber;
-const int AlgorithmSpecification::kAlgorithmVersionFieldNumber;
-const int AlgorithmSpecification::kMetricDefinitionsFieldNumber;
-const int AlgorithmSpecification::kInputContentTypeFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-AlgorithmSpecification::AlgorithmSpecification()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-}
-AlgorithmSpecification::AlgorithmSpecification(const AlgorithmSpecification& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr),
-      metric_definitions_(from.metric_definitions_) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  algorithm_version_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (from.algorithm_version().size() > 0) {
-    algorithm_version_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.algorithm_version_);
-  }
-  ::memcpy(&input_mode_, &from.input_mode_,
-    static_cast<size_t>(reinterpret_cast<char*>(&input_content_type_) -
-    reinterpret_cast<char*>(&input_mode_)) + sizeof(input_content_type_));
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-}
-
-void AlgorithmSpecification::SharedCtor() {
-  ::google::protobuf::internal::InitSCC(
-      &scc_info_AlgorithmSpecification_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  algorithm_version_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  ::memset(&input_mode_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&input_content_type_) -
-      reinterpret_cast<char*>(&input_mode_)) + sizeof(input_content_type_));
-}
-
-AlgorithmSpecification::~AlgorithmSpecification() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  SharedDtor();
-}
-
-void AlgorithmSpecification::SharedDtor() {
-  algorithm_version_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-void AlgorithmSpecification::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const AlgorithmSpecification& AlgorithmSpecification::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_AlgorithmSpecification_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void AlgorithmSpecification::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  metric_definitions_.Clear();
-  algorithm_version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  ::memset(&input_mode_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&input_content_type_) -
-      reinterpret_cast<char*>(&input_mode_)) + sizeof(input_content_type_));
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* AlgorithmSpecification::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<AlgorithmSpecification*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // .flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual;
-        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
-        msg->set_input_mode(static_cast<::flyteidl::plugins::sagemaker::InputMode_Value>(val));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      // .flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;
-      case 2: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual;
-        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
-        msg->set_algorithm_name(static_cast<::flyteidl::plugins::sagemaker::AlgorithmName_Value>(val));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      // string algorithm_version = 3;
-      case 3: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        ctx->extra_parse_data().SetFieldName("flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version");
-        object = msg->mutable_algorithm_version();
-        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
-          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
-          goto string_till_end;
-        }
-        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
-        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
-        ptr += size;
-        break;
-      }
-      // repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;
-      case 4: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
-        do {
-          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-          parser_till_end = ::flyteidl::plugins::sagemaker::MetricDefinition::_InternalParse;
-          object = msg->add_metric_definitions();
-          if (size > end - ptr) goto len_delim_till_end;
-          ptr += size;
-          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
-              {parser_till_end, object}, ptr - size, ptr));
-          if (ptr >= end) break;
-        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 34 && (ptr += 1));
-        break;
-      }
-      // .flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;
-      case 5: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 40) goto handle_unusual;
-        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
-        msg->set_input_content_type(static_cast<::flyteidl::plugins::sagemaker::InputContentType_Value>(val));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-string_till_end:
-  static_cast<::std::string*>(object)->clear();
-  static_cast<::std::string*>(object)->reserve(size);
-  goto len_delim_till_end;
-len_delim_till_end:
-  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
-                               {parser_till_end, object}, size);
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool AlgorithmSpecification::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // .flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) {
-          int value = 0;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          set_input_mode(static_cast< ::flyteidl::plugins::sagemaker::InputMode_Value >(value));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // .flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;
-      case 2: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) {
-          int value = 0;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          set_algorithm_name(static_cast< ::flyteidl::plugins::sagemaker::AlgorithmName_Value >(value));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // string algorithm_version = 3;
-      case 3: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_algorithm_version()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->algorithm_version().data(), static_cast<int>(this->algorithm_version().length()),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version"));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;
-      case 4: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
-                input, add_metric_definitions()));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // .flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;
-      case 5: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (40 & 0xFF)) {
-          int value = 0;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          set_input_content_type(static_cast< ::flyteidl::plugins::sagemaker::InputContentType_Value >(value));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void AlgorithmSpecification::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;
-  if (this->input_mode() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      1, this->input_mode(), output);
-  }
-
-  // .flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;
-  if (this->algorithm_name() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      2, this->algorithm_name(), output);
-  }
-
-  // string algorithm_version = 3;
-  if (this->algorithm_version().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->algorithm_version().data(), static_cast<int>(this->algorithm_version().length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      3, this->algorithm_version(), output);
-  }
-
-  // repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;
-  for (unsigned int i = 0,
-      n = static_cast<unsigned int>(this->metric_definitions_size()); i < n; i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      4,
-      this->metric_definitions(static_cast<int>(i)),
-      output);
-  }
-
-  // .flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;
-  if (this->input_content_type() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      5, this->input_content_type(), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-}
-
-::google::protobuf::uint8* AlgorithmSpecification::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;
-  if (this->input_mode() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      1, this->input_mode(), target);
-  }
-
-  // .flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;
-  if (this->algorithm_name() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      2, this->algorithm_name(), target);
-  }
-
-  // string algorithm_version = 3;
-  if (this->algorithm_version().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->algorithm_version().data(), static_cast<int>(this->algorithm_version().length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        3, this->algorithm_version(), target);
-  }
-
-  // repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;
-  for (unsigned int i = 0,
-      n = static_cast<unsigned int>(this->metric_definitions_size()); i < n; i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageToArray(
-        4, this->metric_definitions(static_cast<int>(i)), target);
-  }
-
-  // .flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;
-  if (this->input_content_type() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      5, this->input_content_type(), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  return target;
-}
-
-size_t AlgorithmSpecification::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;
-  {
-    unsigned int count = static_cast<unsigned int>(this->metric_definitions_size());
-    total_size += 1UL * count;
-    for (unsigned int i = 0; i < count; i++) {
-      total_size +=
-        ::google::protobuf::internal::WireFormatLite::MessageSize(
-          this->metric_definitions(static_cast<int>(i)));
-    }
-  }
-
-  // string algorithm_version = 3;
-  if (this->algorithm_version().size() > 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->algorithm_version());
-  }
-
-  // .flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;
-  if (this->input_mode() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::EnumSize(this->input_mode());
-  }
-
-  // .flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;
-  if (this->algorithm_name() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::EnumSize(this->algorithm_name());
-  }
-
-  // .flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;
-  if (this->input_content_type() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::EnumSize(this->input_content_type());
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void AlgorithmSpecification::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  GOOGLE_DCHECK_NE(&from, this);
-  const AlgorithmSpecification* source =
-      ::google::protobuf::DynamicCastToGenerated<AlgorithmSpecification>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-    MergeFrom(*source);
-  }
-}
-
-void AlgorithmSpecification::MergeFrom(const AlgorithmSpecification& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  metric_definitions_.MergeFrom(from.metric_definitions_);
-  if (from.algorithm_version().size() > 0) {
-
-    algorithm_version_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.algorithm_version_);
-  }
-  if (from.input_mode() != 0) {
-    set_input_mode(from.input_mode());
-  }
-  if (from.algorithm_name() != 0) {
-    set_algorithm_name(from.algorithm_name());
-  }
-  if (from.input_content_type() != 0) {
-    set_input_content_type(from.input_content_type());
-  }
-}
-
-void AlgorithmSpecification::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void AlgorithmSpecification::CopyFrom(const AlgorithmSpecification& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool AlgorithmSpecification::IsInitialized() const {
-  return true;
-}
-
-void AlgorithmSpecification::Swap(AlgorithmSpecification* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void AlgorithmSpecification::InternalSwap(AlgorithmSpecification* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  CastToBase(&metric_definitions_)->InternalSwap(CastToBase(&other->metric_definitions_));
-  algorithm_version_.Swap(&other->algorithm_version_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(input_mode_, other->input_mode_);
-  swap(algorithm_name_, other->algorithm_name_);
-  swap(input_content_type_, other->input_content_type_);
-}
-
-::google::protobuf::Metadata AlgorithmSpecification::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void DistributedProtocol::InitAsDefaultInstance() {
-}
-class DistributedProtocol::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-DistributedProtocol::DistributedProtocol()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.DistributedProtocol)
-}
-DistributedProtocol::DistributedProtocol(const DistributedProtocol& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.DistributedProtocol)
-}
-
-void DistributedProtocol::SharedCtor() {
-}
-
-DistributedProtocol::~DistributedProtocol() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.DistributedProtocol)
-  SharedDtor();
-}
-
-void DistributedProtocol::SharedDtor() {
-}
-
-void DistributedProtocol::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const DistributedProtocol& DistributedProtocol::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_DistributedProtocol_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void DistributedProtocol::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.DistributedProtocol)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* DistributedProtocol::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<DistributedProtocol*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      default: {
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool DistributedProtocol::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.DistributedProtocol)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-  handle_unusual:
-    if (tag == 0) {
-      goto success;
-    }
-    DO_(::google::protobuf::internal::WireFormat::SkipField(
-          input, tag, _internal_metadata_.mutable_unknown_fields()));
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.DistributedProtocol)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.DistributedProtocol)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void DistributedProtocol::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.DistributedProtocol)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.DistributedProtocol)
-}
-
-::google::protobuf::uint8* DistributedProtocol::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.DistributedProtocol)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.DistributedProtocol)
-  return target;
-}
-
-size_t DistributedProtocol::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.DistributedProtocol)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void DistributedProtocol::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.DistributedProtocol)
-  GOOGLE_DCHECK_NE(&from, this);
-  const DistributedProtocol* source =
-      ::google::protobuf::DynamicCastToGenerated<DistributedProtocol>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.DistributedProtocol)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.DistributedProtocol)
-    MergeFrom(*source);
-  }
-}
-
-void DistributedProtocol::MergeFrom(const DistributedProtocol& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.DistributedProtocol)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-}
-
-void DistributedProtocol::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.DistributedProtocol)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void DistributedProtocol::CopyFrom(const DistributedProtocol& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.DistributedProtocol)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool DistributedProtocol::IsInitialized() const {
-  return true;
-}
-
-void DistributedProtocol::Swap(DistributedProtocol* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void DistributedProtocol::InternalSwap(DistributedProtocol* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-}
-
-::google::protobuf::Metadata DistributedProtocol::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void TrainingJobResourceConfig::InitAsDefaultInstance() {
-}
-class TrainingJobResourceConfig::HasBitSetters {
- public:
-};
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int TrainingJobResourceConfig::kInstanceCountFieldNumber;
-const int TrainingJobResourceConfig::kInstanceTypeFieldNumber;
-const int TrainingJobResourceConfig::kVolumeSizeInGbFieldNumber;
-const int TrainingJobResourceConfig::kDistributedProtocolFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-TrainingJobResourceConfig::TrainingJobResourceConfig()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-}
-TrainingJobResourceConfig::TrainingJobResourceConfig(const TrainingJobResourceConfig& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  instance_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (from.instance_type().size() > 0) {
-    instance_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_type_);
-  }
-  ::memcpy(&instance_count_, &from.instance_count_,
-    static_cast<size_t>(reinterpret_cast<char*>(&distributed_protocol_) -
-    reinterpret_cast<char*>(&instance_count_)) + sizeof(distributed_protocol_));
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-}
-
-void TrainingJobResourceConfig::SharedCtor() {
-  ::google::protobuf::internal::InitSCC(
-      &scc_info_TrainingJobResourceConfig_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  instance_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  ::memset(&instance_count_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&distributed_protocol_) -
-      reinterpret_cast<char*>(&instance_count_)) + sizeof(distributed_protocol_));
-}
-
-TrainingJobResourceConfig::~TrainingJobResourceConfig() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  SharedDtor();
-}
-
-void TrainingJobResourceConfig::SharedDtor() {
-  instance_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-void TrainingJobResourceConfig::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const TrainingJobResourceConfig& TrainingJobResourceConfig::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_TrainingJobResourceConfig_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void TrainingJobResourceConfig::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  instance_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  ::memset(&instance_count_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&distributed_protocol_) -
-      reinterpret_cast<char*>(&instance_count_)) + sizeof(distributed_protocol_));
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* TrainingJobResourceConfig::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<TrainingJobResourceConfig*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // int64 instance_count = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual;
-        msg->set_instance_count(::google::protobuf::internal::ReadVarint(&ptr));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      // string instance_type = 2;
-      case 2: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        ctx->extra_parse_data().SetFieldName("flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type");
-        object = msg->mutable_instance_type();
-        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
-          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
-          goto string_till_end;
-        }
-        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
-        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
-        ptr += size;
-        break;
-      }
-      // int64 volume_size_in_gb = 3;
-      case 3: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 24) goto handle_unusual;
-        msg->set_volume_size_in_gb(::google::protobuf::internal::ReadVarint(&ptr));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      // .flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;
-      case 4: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 32) goto handle_unusual;
-        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
-        msg->set_distributed_protocol(static_cast<::flyteidl::plugins::sagemaker::DistributedProtocol_Value>(val));
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-string_till_end:
-  static_cast<::std::string*>(object)->clear();
-  static_cast<::std::string*>(object)->reserve(size);
-  goto len_delim_till_end;
-len_delim_till_end:
-  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
-                               {parser_till_end, object}, size);
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool TrainingJobResourceConfig::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // int64 instance_count = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) {
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &instance_count_)));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // string instance_type = 2;
-      case 2: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_instance_type()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->instance_type().data(), static_cast<int>(this->instance_type().length()),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type"));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // int64 volume_size_in_gb = 3;
-      case 3: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (24 & 0xFF)) {
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &volume_size_in_gb_)));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // .flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;
-      case 4: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (32 & 0xFF)) {
-          int value = 0;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          set_distributed_protocol(static_cast< ::flyteidl::plugins::sagemaker::DistributedProtocol_Value >(value));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void TrainingJobResourceConfig::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // int64 instance_count = 1;
-  if (this->instance_count() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->instance_count(), output);
-  }
-
-  // string instance_type = 2;
-  if (this->instance_type().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->instance_type().data(), static_cast<int>(this->instance_type().length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      2, this->instance_type(), output);
-  }
-
-  // int64 volume_size_in_gb = 3;
-  if (this->volume_size_in_gb() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(3, this->volume_size_in_gb(), output);
-  }
-
-  // .flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;
-  if (this->distributed_protocol() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      4, this->distributed_protocol(), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-}
-
-::google::protobuf::uint8* TrainingJobResourceConfig::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // int64 instance_count = 1;
-  if (this->instance_count() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->instance_count(), target);
-  }
-
-  // string instance_type = 2;
-  if (this->instance_type().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->instance_type().data(), static_cast<int>(this->instance_type().length()),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        2, this->instance_type(), target);
-  }
-
-  // int64 volume_size_in_gb = 3;
-  if (this->volume_size_in_gb() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(3, this->volume_size_in_gb(), target);
-  }
-
-  // .flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;
-  if (this->distributed_protocol() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      4, this->distributed_protocol(), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  return target;
-}
-
-size_t TrainingJobResourceConfig::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // string instance_type = 2;
-  if (this->instance_type().size() > 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->instance_type());
-  }
-
-  // int64 instance_count = 1;
-  if (this->instance_count() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->instance_count());
-  }
-
-  // int64 volume_size_in_gb = 3;
-  if (this->volume_size_in_gb() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->volume_size_in_gb());
-  }
-
-  // .flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;
-  if (this->distributed_protocol() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::EnumSize(this->distributed_protocol());
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void TrainingJobResourceConfig::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  GOOGLE_DCHECK_NE(&from, this);
-  const TrainingJobResourceConfig* source =
-      ::google::protobuf::DynamicCastToGenerated<TrainingJobResourceConfig>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-    MergeFrom(*source);
-  }
-}
-
-void TrainingJobResourceConfig::MergeFrom(const TrainingJobResourceConfig& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.instance_type().size() > 0) {
-
-    instance_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_type_);
-  }
-  if (from.instance_count() != 0) {
-    set_instance_count(from.instance_count());
-  }
-  if (from.volume_size_in_gb() != 0) {
-    set_volume_size_in_gb(from.volume_size_in_gb());
-  }
-  if (from.distributed_protocol() != 0) {
-    set_distributed_protocol(from.distributed_protocol());
-  }
-}
-
-void TrainingJobResourceConfig::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void TrainingJobResourceConfig::CopyFrom(const TrainingJobResourceConfig& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool TrainingJobResourceConfig::IsInitialized() const {
-  return true;
-}
-
-void TrainingJobResourceConfig::Swap(TrainingJobResourceConfig* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void TrainingJobResourceConfig::InternalSwap(TrainingJobResourceConfig* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  instance_type_.Swap(&other->instance_type_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(instance_count_, other->instance_count_);
-  swap(volume_size_in_gb_, other->volume_size_in_gb_);
-  swap(distributed_protocol_, other->distributed_protocol_);
-}
-
-::google::protobuf::Metadata TrainingJobResourceConfig::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// ===================================================================
-
-void TrainingJob::InitAsDefaultInstance() {
-  ::flyteidl::plugins::sagemaker::_TrainingJob_default_instance_._instance.get_mutable()->algorithm_specification_ = const_cast< ::flyteidl::plugins::sagemaker::AlgorithmSpecification*>(
-      ::flyteidl::plugins::sagemaker::AlgorithmSpecification::internal_default_instance());
-  ::flyteidl::plugins::sagemaker::_TrainingJob_default_instance_._instance.get_mutable()->training_job_resource_config_ = const_cast< ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig*>(
-      ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig::internal_default_instance());
-}
-class TrainingJob::HasBitSetters {
- public:
-  static const ::flyteidl::plugins::sagemaker::AlgorithmSpecification& algorithm_specification(const TrainingJob* msg);
-  static const ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig& training_job_resource_config(const TrainingJob* msg);
-};
-
-const ::flyteidl::plugins::sagemaker::AlgorithmSpecification&
-TrainingJob::HasBitSetters::algorithm_specification(const TrainingJob* msg) {
-  return *msg->algorithm_specification_;
-}
-const ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig&
-TrainingJob::HasBitSetters::training_job_resource_config(const TrainingJob* msg) {
-  return *msg->training_job_resource_config_;
-}
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int TrainingJob::kAlgorithmSpecificationFieldNumber;
-const int TrainingJob::kTrainingJobResourceConfigFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-TrainingJob::TrainingJob()
-  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:flyteidl.plugins.sagemaker.TrainingJob)
-}
-TrainingJob::TrainingJob(const TrainingJob& from)
-  : ::google::protobuf::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from.has_algorithm_specification()) {
-    algorithm_specification_ = new ::flyteidl::plugins::sagemaker::AlgorithmSpecification(*from.algorithm_specification_);
-  } else {
-    algorithm_specification_ = nullptr;
-  }
-  if (from.has_training_job_resource_config()) {
-    training_job_resource_config_ = new ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig(*from.training_job_resource_config_);
-  } else {
-    training_job_resource_config_ = nullptr;
-  }
-  // @@protoc_insertion_point(copy_constructor:flyteidl.plugins.sagemaker.TrainingJob)
-}
-
-void TrainingJob::SharedCtor() {
-  ::google::protobuf::internal::InitSCC(
-      &scc_info_TrainingJob_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  ::memset(&algorithm_specification_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&training_job_resource_config_) -
-      reinterpret_cast<char*>(&algorithm_specification_)) + sizeof(training_job_resource_config_));
-}
-
-TrainingJob::~TrainingJob() {
-  // @@protoc_insertion_point(destructor:flyteidl.plugins.sagemaker.TrainingJob)
-  SharedDtor();
-}
-
-void TrainingJob::SharedDtor() {
-  if (this != internal_default_instance()) delete algorithm_specification_;
-  if (this != internal_default_instance()) delete training_job_resource_config_;
-}
-
-void TrainingJob::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const TrainingJob& TrainingJob::default_instance() {
-  ::google::protobuf::internal::InitSCC(&::scc_info_TrainingJob_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void TrainingJob::Clear() {
-// @@protoc_insertion_point(message_clear_start:flyteidl.plugins.sagemaker.TrainingJob)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && algorithm_specification_ != nullptr) {
-    delete algorithm_specification_;
-  }
-  algorithm_specification_ = nullptr;
-  if (GetArenaNoVirtual() == nullptr && training_job_resource_config_ != nullptr) {
-    delete training_job_resource_config_;
-  }
-  training_job_resource_config_ = nullptr;
-  _internal_metadata_.Clear();
-}
-
-#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-const char* TrainingJob::_InternalParse(const char* begin, const char* end, void* object,
-                  ::google::protobuf::internal::ParseContext* ctx) {
-  auto msg = static_cast<TrainingJob*>(object);
-  ::google::protobuf::int32 size; (void)size;
-  int depth; (void)depth;
-  ::google::protobuf::uint32 tag;
-  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
-  auto ptr = begin;
-  while (ptr < end) {
-    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
-    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-    switch (tag >> 3) {
-      // .flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;
-      case 1: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        parser_till_end = ::flyteidl::plugins::sagemaker::AlgorithmSpecification::_InternalParse;
-        object = msg->mutable_algorithm_specification();
-        if (size > end - ptr) goto len_delim_till_end;
-        ptr += size;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
-            {parser_till_end, object}, ptr - size, ptr));
-        break;
-      }
-      // .flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;
-      case 2: {
-        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
-        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
-        parser_till_end = ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig::_InternalParse;
-        object = msg->mutable_training_job_resource_config();
-        if (size > end - ptr) goto len_delim_till_end;
-        ptr += size;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
-            {parser_till_end, object}, ptr - size, ptr));
-        break;
-      }
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->EndGroup(tag);
-          return ptr;
-        }
-        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
-          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
-        ptr = res.first;
-        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
-        if (res.second) return ptr;
-      }
-    }  // switch
-  }  // while
-  return ptr;
-len_delim_till_end:
-  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
-                               {parser_till_end, object}, size);
-}
-#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-bool TrainingJob::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:flyteidl.plugins.sagemaker.TrainingJob)
-  for (;;) {
-    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // .flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;
-      case 1: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
-               input, mutable_algorithm_specification()));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // .flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;
-      case 2: {
-        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
-               input, mutable_training_job_resource_config()));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, _internal_metadata_.mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:flyteidl.plugins.sagemaker.TrainingJob)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:flyteidl.plugins.sagemaker.TrainingJob)
-  return false;
-#undef DO_
-}
-#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-
-void TrainingJob::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:flyteidl.plugins.sagemaker.TrainingJob)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;
-  if (this->has_algorithm_specification()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, HasBitSetters::algorithm_specification(this), output);
-  }
-
-  // .flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;
-  if (this->has_training_job_resource_config()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      2, HasBitSetters::training_job_resource_config(this), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        _internal_metadata_.unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:flyteidl.plugins.sagemaker.TrainingJob)
-}
-
-::google::protobuf::uint8* TrainingJob::InternalSerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:flyteidl.plugins.sagemaker.TrainingJob)
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;
-  if (this->has_algorithm_specification()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageToArray(
-        1, HasBitSetters::algorithm_specification(this), target);
-  }
-
-  // .flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;
-  if (this->has_training_job_resource_config()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageToArray(
-        2, HasBitSetters::training_job_resource_config(this), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:flyteidl.plugins.sagemaker.TrainingJob)
-  return target;
-}
-
-size_t TrainingJob::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:flyteidl.plugins.sagemaker.TrainingJob)
-  size_t total_size = 0;
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        _internal_metadata_.unknown_fields());
-  }
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;
-  if (this->has_algorithm_specification()) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *algorithm_specification_);
-  }
-
-  // .flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;
-  if (this->has_training_job_resource_config()) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *training_job_resource_config_);
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void TrainingJob::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.plugins.sagemaker.TrainingJob)
-  GOOGLE_DCHECK_NE(&from, this);
-  const TrainingJob* source =
-      ::google::protobuf::DynamicCastToGenerated<TrainingJob>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.plugins.sagemaker.TrainingJob)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.plugins.sagemaker.TrainingJob)
-    MergeFrom(*source);
-  }
-}
-
-void TrainingJob::MergeFrom(const TrainingJob& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.plugins.sagemaker.TrainingJob)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::google::protobuf::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_algorithm_specification()) {
-    mutable_algorithm_specification()->::flyteidl::plugins::sagemaker::AlgorithmSpecification::MergeFrom(from.algorithm_specification());
-  }
-  if (from.has_training_job_resource_config()) {
-    mutable_training_job_resource_config()->::flyteidl::plugins::sagemaker::TrainingJobResourceConfig::MergeFrom(from.training_job_resource_config());
-  }
-}
-
-void TrainingJob::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.plugins.sagemaker.TrainingJob)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void TrainingJob::CopyFrom(const TrainingJob& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.plugins.sagemaker.TrainingJob)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool TrainingJob::IsInitialized() const {
-  return true;
-}
-
-void TrainingJob::Swap(TrainingJob* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void TrainingJob::InternalSwap(TrainingJob* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(algorithm_specification_, other->algorithm_specification_);
-  swap(training_job_resource_config_, other->training_job_resource_config_);
-}
-
-::google::protobuf::Metadata TrainingJob::GetMetadata() const {
-  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto);
-  return ::file_level_metadata_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto[kIndexInFileMessages];
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-namespace google {
-namespace protobuf {
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::InputMode* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::InputMode >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::InputMode >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::AlgorithmName* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::AlgorithmName >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::AlgorithmName >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::InputContentType* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::InputContentType >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::InputContentType >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::MetricDefinition* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::MetricDefinition >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::MetricDefinition >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::AlgorithmSpecification* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::AlgorithmSpecification >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::AlgorithmSpecification >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::DistributedProtocol* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::DistributedProtocol >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::DistributedProtocol >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig >(arena);
-}
-template<> PROTOBUF_NOINLINE ::flyteidl::plugins::sagemaker::TrainingJob* Arena::CreateMaybeMessage< ::flyteidl::plugins::sagemaker::TrainingJob >(Arena* arena) {
-  return Arena::CreateInternal< ::flyteidl::plugins::sagemaker::TrainingJob >(arena);
-}
-}  // namespace protobuf
-}  // namespace google
-
-// @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
diff --git a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.pb.h b/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.pb.h
deleted file mode 100644
index 8fc367ba71..0000000000
--- a/flyteidl/gen/pb-cpp/flyteidl/plugins/sagemaker/training_job.pb.h
+++ /dev/null
@@ -1,1780 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: flyteidl/plugins/sagemaker/training_job.proto
-
-#ifndef PROTOBUF_INCLUDED_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto
-#define PROTOBUF_INCLUDED_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto
-
-#include <limits>
-#include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3007000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3007000 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include <google/protobuf/generated_enum_reflection.h>
-#include <google/protobuf/unknown_field_set.h>
-#include <google/protobuf/duration.pb.h>
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-#define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto
-
-// Internal implementation detail -- do not use these members.
-struct TableStruct_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto {
-  static const ::google::protobuf::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::google::protobuf::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::google::protobuf::internal::ParseTable schema[8]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
-  static const ::google::protobuf::internal::SerializationTable serialization_table[];
-  static const ::google::protobuf::uint32 offsets[];
-};
-void AddDescriptors_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto();
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-class AlgorithmName;
-class AlgorithmNameDefaultTypeInternal;
-extern AlgorithmNameDefaultTypeInternal _AlgorithmName_default_instance_;
-class AlgorithmSpecification;
-class AlgorithmSpecificationDefaultTypeInternal;
-extern AlgorithmSpecificationDefaultTypeInternal _AlgorithmSpecification_default_instance_;
-class DistributedProtocol;
-class DistributedProtocolDefaultTypeInternal;
-extern DistributedProtocolDefaultTypeInternal _DistributedProtocol_default_instance_;
-class InputContentType;
-class InputContentTypeDefaultTypeInternal;
-extern InputContentTypeDefaultTypeInternal _InputContentType_default_instance_;
-class InputMode;
-class InputModeDefaultTypeInternal;
-extern InputModeDefaultTypeInternal _InputMode_default_instance_;
-class MetricDefinition;
-class MetricDefinitionDefaultTypeInternal;
-extern MetricDefinitionDefaultTypeInternal _MetricDefinition_default_instance_;
-class TrainingJob;
-class TrainingJobDefaultTypeInternal;
-extern TrainingJobDefaultTypeInternal _TrainingJob_default_instance_;
-class TrainingJobResourceConfig;
-class TrainingJobResourceConfigDefaultTypeInternal;
-extern TrainingJobResourceConfigDefaultTypeInternal _TrainingJobResourceConfig_default_instance_;
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-namespace google {
-namespace protobuf {
-template<> ::flyteidl::plugins::sagemaker::AlgorithmName* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::AlgorithmName>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::AlgorithmSpecification* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::AlgorithmSpecification>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::DistributedProtocol* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::DistributedProtocol>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::InputContentType* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::InputContentType>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::InputMode* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::InputMode>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::MetricDefinition* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::MetricDefinition>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::TrainingJob* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::TrainingJob>(Arena*);
-template<> ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig* Arena::CreateMaybeMessage<::flyteidl::plugins::sagemaker::TrainingJobResourceConfig>(Arena*);
-}  // namespace protobuf
-}  // namespace google
-namespace flyteidl {
-namespace plugins {
-namespace sagemaker {
-
-enum InputMode_Value {
-  InputMode_Value_FILE = 0,
-  InputMode_Value_PIPE = 1,
-  InputMode_Value_InputMode_Value_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
-  InputMode_Value_InputMode_Value_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
-};
-bool InputMode_Value_IsValid(int value);
-const InputMode_Value InputMode_Value_Value_MIN = InputMode_Value_FILE;
-const InputMode_Value InputMode_Value_Value_MAX = InputMode_Value_PIPE;
-const int InputMode_Value_Value_ARRAYSIZE = InputMode_Value_Value_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* InputMode_Value_descriptor();
-inline const ::std::string& InputMode_Value_Name(InputMode_Value value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    InputMode_Value_descriptor(), value);
-}
-inline bool InputMode_Value_Parse(
-    const ::std::string& name, InputMode_Value* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<InputMode_Value>(
-    InputMode_Value_descriptor(), name, value);
-}
-enum AlgorithmName_Value {
-  AlgorithmName_Value_CUSTOM = 0,
-  AlgorithmName_Value_XGBOOST = 1,
-  AlgorithmName_Value_AlgorithmName_Value_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
-  AlgorithmName_Value_AlgorithmName_Value_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
-};
-bool AlgorithmName_Value_IsValid(int value);
-const AlgorithmName_Value AlgorithmName_Value_Value_MIN = AlgorithmName_Value_CUSTOM;
-const AlgorithmName_Value AlgorithmName_Value_Value_MAX = AlgorithmName_Value_XGBOOST;
-const int AlgorithmName_Value_Value_ARRAYSIZE = AlgorithmName_Value_Value_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* AlgorithmName_Value_descriptor();
-inline const ::std::string& AlgorithmName_Value_Name(AlgorithmName_Value value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    AlgorithmName_Value_descriptor(), value);
-}
-inline bool AlgorithmName_Value_Parse(
-    const ::std::string& name, AlgorithmName_Value* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<AlgorithmName_Value>(
-    AlgorithmName_Value_descriptor(), name, value);
-}
-enum InputContentType_Value {
-  InputContentType_Value_TEXT_CSV = 0,
-  InputContentType_Value_InputContentType_Value_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
-  InputContentType_Value_InputContentType_Value_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
-};
-bool InputContentType_Value_IsValid(int value);
-const InputContentType_Value InputContentType_Value_Value_MIN = InputContentType_Value_TEXT_CSV;
-const InputContentType_Value InputContentType_Value_Value_MAX = InputContentType_Value_TEXT_CSV;
-const int InputContentType_Value_Value_ARRAYSIZE = InputContentType_Value_Value_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* InputContentType_Value_descriptor();
-inline const ::std::string& InputContentType_Value_Name(InputContentType_Value value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    InputContentType_Value_descriptor(), value);
-}
-inline bool InputContentType_Value_Parse(
-    const ::std::string& name, InputContentType_Value* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<InputContentType_Value>(
-    InputContentType_Value_descriptor(), name, value);
-}
-enum DistributedProtocol_Value {
-  DistributedProtocol_Value_UNSPECIFIED = 0,
-  DistributedProtocol_Value_MPI = 1,
-  DistributedProtocol_Value_DistributedProtocol_Value_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
-  DistributedProtocol_Value_DistributedProtocol_Value_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
-};
-bool DistributedProtocol_Value_IsValid(int value);
-const DistributedProtocol_Value DistributedProtocol_Value_Value_MIN = DistributedProtocol_Value_UNSPECIFIED;
-const DistributedProtocol_Value DistributedProtocol_Value_Value_MAX = DistributedProtocol_Value_MPI;
-const int DistributedProtocol_Value_Value_ARRAYSIZE = DistributedProtocol_Value_Value_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* DistributedProtocol_Value_descriptor();
-inline const ::std::string& DistributedProtocol_Value_Name(DistributedProtocol_Value value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    DistributedProtocol_Value_descriptor(), value);
-}
-inline bool DistributedProtocol_Value_Parse(
-    const ::std::string& name, DistributedProtocol_Value* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<DistributedProtocol_Value>(
-    DistributedProtocol_Value_descriptor(), name, value);
-}
-// ===================================================================
-
-class InputMode final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.InputMode) */ {
- public:
-  InputMode();
-  virtual ~InputMode();
-
-  InputMode(const InputMode& from);
-
-  inline InputMode& operator=(const InputMode& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  InputMode(InputMode&& from) noexcept
-    : InputMode() {
-    *this = ::std::move(from);
-  }
-
-  inline InputMode& operator=(InputMode&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const InputMode& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const InputMode* internal_default_instance() {
-    return reinterpret_cast<const InputMode*>(
-               &_InputMode_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    0;
-
-  void Swap(InputMode* other);
-  friend void swap(InputMode& a, InputMode& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline InputMode* New() const final {
-    return CreateMaybeMessage<InputMode>(nullptr);
-  }
-
-  InputMode* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<InputMode>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const InputMode& from);
-  void MergeFrom(const InputMode& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(InputMode* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  typedef InputMode_Value Value;
-  static const Value FILE =
-    InputMode_Value_FILE;
-  static const Value PIPE =
-    InputMode_Value_PIPE;
-  static inline bool Value_IsValid(int value) {
-    return InputMode_Value_IsValid(value);
-  }
-  static const Value Value_MIN =
-    InputMode_Value_Value_MIN;
-  static const Value Value_MAX =
-    InputMode_Value_Value_MAX;
-  static const int Value_ARRAYSIZE =
-    InputMode_Value_Value_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  Value_descriptor() {
-    return InputMode_Value_descriptor();
-  }
-  static inline const ::std::string& Value_Name(Value value) {
-    return InputMode_Value_Name(value);
-  }
-  static inline bool Value_Parse(const ::std::string& name,
-      Value* value) {
-    return InputMode_Value_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.InputMode)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class AlgorithmName final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.AlgorithmName) */ {
- public:
-  AlgorithmName();
-  virtual ~AlgorithmName();
-
-  AlgorithmName(const AlgorithmName& from);
-
-  inline AlgorithmName& operator=(const AlgorithmName& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  AlgorithmName(AlgorithmName&& from) noexcept
-    : AlgorithmName() {
-    *this = ::std::move(from);
-  }
-
-  inline AlgorithmName& operator=(AlgorithmName&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const AlgorithmName& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const AlgorithmName* internal_default_instance() {
-    return reinterpret_cast<const AlgorithmName*>(
-               &_AlgorithmName_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    1;
-
-  void Swap(AlgorithmName* other);
-  friend void swap(AlgorithmName& a, AlgorithmName& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline AlgorithmName* New() const final {
-    return CreateMaybeMessage<AlgorithmName>(nullptr);
-  }
-
-  AlgorithmName* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<AlgorithmName>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const AlgorithmName& from);
-  void MergeFrom(const AlgorithmName& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(AlgorithmName* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  typedef AlgorithmName_Value Value;
-  static const Value CUSTOM =
-    AlgorithmName_Value_CUSTOM;
-  static const Value XGBOOST =
-    AlgorithmName_Value_XGBOOST;
-  static inline bool Value_IsValid(int value) {
-    return AlgorithmName_Value_IsValid(value);
-  }
-  static const Value Value_MIN =
-    AlgorithmName_Value_Value_MIN;
-  static const Value Value_MAX =
-    AlgorithmName_Value_Value_MAX;
-  static const int Value_ARRAYSIZE =
-    AlgorithmName_Value_Value_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  Value_descriptor() {
-    return AlgorithmName_Value_descriptor();
-  }
-  static inline const ::std::string& Value_Name(Value value) {
-    return AlgorithmName_Value_Name(value);
-  }
-  static inline bool Value_Parse(const ::std::string& name,
-      Value* value) {
-    return AlgorithmName_Value_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.AlgorithmName)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class InputContentType final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.InputContentType) */ {
- public:
-  InputContentType();
-  virtual ~InputContentType();
-
-  InputContentType(const InputContentType& from);
-
-  inline InputContentType& operator=(const InputContentType& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  InputContentType(InputContentType&& from) noexcept
-    : InputContentType() {
-    *this = ::std::move(from);
-  }
-
-  inline InputContentType& operator=(InputContentType&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const InputContentType& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const InputContentType* internal_default_instance() {
-    return reinterpret_cast<const InputContentType*>(
-               &_InputContentType_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    2;
-
-  void Swap(InputContentType* other);
-  friend void swap(InputContentType& a, InputContentType& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline InputContentType* New() const final {
-    return CreateMaybeMessage<InputContentType>(nullptr);
-  }
-
-  InputContentType* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<InputContentType>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const InputContentType& from);
-  void MergeFrom(const InputContentType& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(InputContentType* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  typedef InputContentType_Value Value;
-  static const Value TEXT_CSV =
-    InputContentType_Value_TEXT_CSV;
-  static inline bool Value_IsValid(int value) {
-    return InputContentType_Value_IsValid(value);
-  }
-  static const Value Value_MIN =
-    InputContentType_Value_Value_MIN;
-  static const Value Value_MAX =
-    InputContentType_Value_Value_MAX;
-  static const int Value_ARRAYSIZE =
-    InputContentType_Value_Value_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  Value_descriptor() {
-    return InputContentType_Value_descriptor();
-  }
-  static inline const ::std::string& Value_Name(Value value) {
-    return InputContentType_Value_Name(value);
-  }
-  static inline bool Value_Parse(const ::std::string& name,
-      Value* value) {
-    return InputContentType_Value_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.InputContentType)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MetricDefinition final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.MetricDefinition) */ {
- public:
-  MetricDefinition();
-  virtual ~MetricDefinition();
-
-  MetricDefinition(const MetricDefinition& from);
-
-  inline MetricDefinition& operator=(const MetricDefinition& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  MetricDefinition(MetricDefinition&& from) noexcept
-    : MetricDefinition() {
-    *this = ::std::move(from);
-  }
-
-  inline MetricDefinition& operator=(MetricDefinition&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const MetricDefinition& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MetricDefinition* internal_default_instance() {
-    return reinterpret_cast<const MetricDefinition*>(
-               &_MetricDefinition_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    3;
-
-  void Swap(MetricDefinition* other);
-  friend void swap(MetricDefinition& a, MetricDefinition& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MetricDefinition* New() const final {
-    return CreateMaybeMessage<MetricDefinition>(nullptr);
-  }
-
-  MetricDefinition* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<MetricDefinition>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const MetricDefinition& from);
-  void MergeFrom(const MetricDefinition& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(MetricDefinition* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // string name = 1;
-  void clear_name();
-  static const int kNameFieldNumber = 1;
-  const ::std::string& name() const;
-  void set_name(const ::std::string& value);
-  #if LANG_CXX11
-  void set_name(::std::string&& value);
-  #endif
-  void set_name(const char* value);
-  void set_name(const char* value, size_t size);
-  ::std::string* mutable_name();
-  ::std::string* release_name();
-  void set_allocated_name(::std::string* name);
-
-  // string regex = 2;
-  void clear_regex();
-  static const int kRegexFieldNumber = 2;
-  const ::std::string& regex() const;
-  void set_regex(const ::std::string& value);
-  #if LANG_CXX11
-  void set_regex(::std::string&& value);
-  #endif
-  void set_regex(const char* value);
-  void set_regex(const char* value, size_t size);
-  ::std::string* mutable_regex();
-  ::std::string* release_regex();
-  void set_allocated_regex(::std::string* regex);
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.MetricDefinition)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::internal::ArenaStringPtr name_;
-  ::google::protobuf::internal::ArenaStringPtr regex_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class AlgorithmSpecification final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.AlgorithmSpecification) */ {
- public:
-  AlgorithmSpecification();
-  virtual ~AlgorithmSpecification();
-
-  AlgorithmSpecification(const AlgorithmSpecification& from);
-
-  inline AlgorithmSpecification& operator=(const AlgorithmSpecification& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  AlgorithmSpecification(AlgorithmSpecification&& from) noexcept
-    : AlgorithmSpecification() {
-    *this = ::std::move(from);
-  }
-
-  inline AlgorithmSpecification& operator=(AlgorithmSpecification&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const AlgorithmSpecification& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const AlgorithmSpecification* internal_default_instance() {
-    return reinterpret_cast<const AlgorithmSpecification*>(
-               &_AlgorithmSpecification_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    4;
-
-  void Swap(AlgorithmSpecification* other);
-  friend void swap(AlgorithmSpecification& a, AlgorithmSpecification& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline AlgorithmSpecification* New() const final {
-    return CreateMaybeMessage<AlgorithmSpecification>(nullptr);
-  }
-
-  AlgorithmSpecification* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<AlgorithmSpecification>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const AlgorithmSpecification& from);
-  void MergeFrom(const AlgorithmSpecification& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(AlgorithmSpecification* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;
-  int metric_definitions_size() const;
-  void clear_metric_definitions();
-  static const int kMetricDefinitionsFieldNumber = 4;
-  ::flyteidl::plugins::sagemaker::MetricDefinition* mutable_metric_definitions(int index);
-  ::google::protobuf::RepeatedPtrField< ::flyteidl::plugins::sagemaker::MetricDefinition >*
-      mutable_metric_definitions();
-  const ::flyteidl::plugins::sagemaker::MetricDefinition& metric_definitions(int index) const;
-  ::flyteidl::plugins::sagemaker::MetricDefinition* add_metric_definitions();
-  const ::google::protobuf::RepeatedPtrField< ::flyteidl::plugins::sagemaker::MetricDefinition >&
-      metric_definitions() const;
-
-  // string algorithm_version = 3;
-  void clear_algorithm_version();
-  static const int kAlgorithmVersionFieldNumber = 3;
-  const ::std::string& algorithm_version() const;
-  void set_algorithm_version(const ::std::string& value);
-  #if LANG_CXX11
-  void set_algorithm_version(::std::string&& value);
-  #endif
-  void set_algorithm_version(const char* value);
-  void set_algorithm_version(const char* value, size_t size);
-  ::std::string* mutable_algorithm_version();
-  ::std::string* release_algorithm_version();
-  void set_allocated_algorithm_version(::std::string* algorithm_version);
-
-  // .flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;
-  void clear_input_mode();
-  static const int kInputModeFieldNumber = 1;
-  ::flyteidl::plugins::sagemaker::InputMode_Value input_mode() const;
-  void set_input_mode(::flyteidl::plugins::sagemaker::InputMode_Value value);
-
-  // .flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;
-  void clear_algorithm_name();
-  static const int kAlgorithmNameFieldNumber = 2;
-  ::flyteidl::plugins::sagemaker::AlgorithmName_Value algorithm_name() const;
-  void set_algorithm_name(::flyteidl::plugins::sagemaker::AlgorithmName_Value value);
-
-  // .flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;
-  void clear_input_content_type();
-  static const int kInputContentTypeFieldNumber = 5;
-  ::flyteidl::plugins::sagemaker::InputContentType_Value input_content_type() const;
-  void set_input_content_type(::flyteidl::plugins::sagemaker::InputContentType_Value value);
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.AlgorithmSpecification)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::RepeatedPtrField< ::flyteidl::plugins::sagemaker::MetricDefinition > metric_definitions_;
-  ::google::protobuf::internal::ArenaStringPtr algorithm_version_;
-  int input_mode_;
-  int algorithm_name_;
-  int input_content_type_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class DistributedProtocol final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.DistributedProtocol) */ {
- public:
-  DistributedProtocol();
-  virtual ~DistributedProtocol();
-
-  DistributedProtocol(const DistributedProtocol& from);
-
-  inline DistributedProtocol& operator=(const DistributedProtocol& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  DistributedProtocol(DistributedProtocol&& from) noexcept
-    : DistributedProtocol() {
-    *this = ::std::move(from);
-  }
-
-  inline DistributedProtocol& operator=(DistributedProtocol&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const DistributedProtocol& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const DistributedProtocol* internal_default_instance() {
-    return reinterpret_cast<const DistributedProtocol*>(
-               &_DistributedProtocol_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    5;
-
-  void Swap(DistributedProtocol* other);
-  friend void swap(DistributedProtocol& a, DistributedProtocol& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline DistributedProtocol* New() const final {
-    return CreateMaybeMessage<DistributedProtocol>(nullptr);
-  }
-
-  DistributedProtocol* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<DistributedProtocol>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const DistributedProtocol& from);
-  void MergeFrom(const DistributedProtocol& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(DistributedProtocol* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  typedef DistributedProtocol_Value Value;
-  static const Value UNSPECIFIED =
-    DistributedProtocol_Value_UNSPECIFIED;
-  static const Value MPI =
-    DistributedProtocol_Value_MPI;
-  static inline bool Value_IsValid(int value) {
-    return DistributedProtocol_Value_IsValid(value);
-  }
-  static const Value Value_MIN =
-    DistributedProtocol_Value_Value_MIN;
-  static const Value Value_MAX =
-    DistributedProtocol_Value_Value_MAX;
-  static const int Value_ARRAYSIZE =
-    DistributedProtocol_Value_Value_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  Value_descriptor() {
-    return DistributedProtocol_Value_descriptor();
-  }
-  static inline const ::std::string& Value_Name(Value value) {
-    return DistributedProtocol_Value_Name(value);
-  }
-  static inline bool Value_Parse(const ::std::string& name,
-      Value* value) {
-    return DistributedProtocol_Value_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.DistributedProtocol)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class TrainingJobResourceConfig final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.TrainingJobResourceConfig) */ {
- public:
-  TrainingJobResourceConfig();
-  virtual ~TrainingJobResourceConfig();
-
-  TrainingJobResourceConfig(const TrainingJobResourceConfig& from);
-
-  inline TrainingJobResourceConfig& operator=(const TrainingJobResourceConfig& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  TrainingJobResourceConfig(TrainingJobResourceConfig&& from) noexcept
-    : TrainingJobResourceConfig() {
-    *this = ::std::move(from);
-  }
-
-  inline TrainingJobResourceConfig& operator=(TrainingJobResourceConfig&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const TrainingJobResourceConfig& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const TrainingJobResourceConfig* internal_default_instance() {
-    return reinterpret_cast<const TrainingJobResourceConfig*>(
-               &_TrainingJobResourceConfig_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    6;
-
-  void Swap(TrainingJobResourceConfig* other);
-  friend void swap(TrainingJobResourceConfig& a, TrainingJobResourceConfig& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline TrainingJobResourceConfig* New() const final {
-    return CreateMaybeMessage<TrainingJobResourceConfig>(nullptr);
-  }
-
-  TrainingJobResourceConfig* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<TrainingJobResourceConfig>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const TrainingJobResourceConfig& from);
-  void MergeFrom(const TrainingJobResourceConfig& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(TrainingJobResourceConfig* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // string instance_type = 2;
-  void clear_instance_type();
-  static const int kInstanceTypeFieldNumber = 2;
-  const ::std::string& instance_type() const;
-  void set_instance_type(const ::std::string& value);
-  #if LANG_CXX11
-  void set_instance_type(::std::string&& value);
-  #endif
-  void set_instance_type(const char* value);
-  void set_instance_type(const char* value, size_t size);
-  ::std::string* mutable_instance_type();
-  ::std::string* release_instance_type();
-  void set_allocated_instance_type(::std::string* instance_type);
-
-  // int64 instance_count = 1;
-  void clear_instance_count();
-  static const int kInstanceCountFieldNumber = 1;
-  ::google::protobuf::int64 instance_count() const;
-  void set_instance_count(::google::protobuf::int64 value);
-
-  // int64 volume_size_in_gb = 3;
-  void clear_volume_size_in_gb();
-  static const int kVolumeSizeInGbFieldNumber = 3;
-  ::google::protobuf::int64 volume_size_in_gb() const;
-  void set_volume_size_in_gb(::google::protobuf::int64 value);
-
-  // .flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;
-  void clear_distributed_protocol();
-  static const int kDistributedProtocolFieldNumber = 4;
-  ::flyteidl::plugins::sagemaker::DistributedProtocol_Value distributed_protocol() const;
-  void set_distributed_protocol(::flyteidl::plugins::sagemaker::DistributedProtocol_Value value);
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::internal::ArenaStringPtr instance_type_;
-  ::google::protobuf::int64 instance_count_;
-  ::google::protobuf::int64 volume_size_in_gb_;
-  int distributed_protocol_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-};
-// -------------------------------------------------------------------
-
-class TrainingJob final :
-    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.plugins.sagemaker.TrainingJob) */ {
- public:
-  TrainingJob();
-  virtual ~TrainingJob();
-
-  TrainingJob(const TrainingJob& from);
-
-  inline TrainingJob& operator=(const TrainingJob& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  #if LANG_CXX11
-  TrainingJob(TrainingJob&& from) noexcept
-    : TrainingJob() {
-    *this = ::std::move(from);
-  }
-
-  inline TrainingJob& operator=(TrainingJob&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-  #endif
-  static const ::google::protobuf::Descriptor* descriptor() {
-    return default_instance().GetDescriptor();
-  }
-  static const TrainingJob& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const TrainingJob* internal_default_instance() {
-    return reinterpret_cast<const TrainingJob*>(
-               &_TrainingJob_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    7;
-
-  void Swap(TrainingJob* other);
-  friend void swap(TrainingJob& a, TrainingJob& b) {
-    a.Swap(&b);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline TrainingJob* New() const final {
-    return CreateMaybeMessage<TrainingJob>(nullptr);
-  }
-
-  TrainingJob* New(::google::protobuf::Arena* arena) const final {
-    return CreateMaybeMessage<TrainingJob>(arena);
-  }
-  void CopyFrom(const ::google::protobuf::Message& from) final;
-  void MergeFrom(const ::google::protobuf::Message& from) final;
-  void CopyFrom(const TrainingJob& from);
-  void MergeFrom(const TrainingJob& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
-  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
-  #else
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) final;
-  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const final;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      ::google::protobuf::uint8* target) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(TrainingJob* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // .flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;
-  bool has_algorithm_specification() const;
-  void clear_algorithm_specification();
-  static const int kAlgorithmSpecificationFieldNumber = 1;
-  const ::flyteidl::plugins::sagemaker::AlgorithmSpecification& algorithm_specification() const;
-  ::flyteidl::plugins::sagemaker::AlgorithmSpecification* release_algorithm_specification();
-  ::flyteidl::plugins::sagemaker::AlgorithmSpecification* mutable_algorithm_specification();
-  void set_allocated_algorithm_specification(::flyteidl::plugins::sagemaker::AlgorithmSpecification* algorithm_specification);
-
-  // .flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;
-  bool has_training_job_resource_config() const;
-  void clear_training_job_resource_config();
-  static const int kTrainingJobResourceConfigFieldNumber = 2;
-  const ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig& training_job_resource_config() const;
-  ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig* release_training_job_resource_config();
-  ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig* mutable_training_job_resource_config();
-  void set_allocated_training_job_resource_config(::flyteidl::plugins::sagemaker::TrainingJobResourceConfig* training_job_resource_config);
-
-  // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.TrainingJob)
- private:
-  class HasBitSetters;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::flyteidl::plugins::sagemaker::AlgorithmSpecification* algorithm_specification_;
-  ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig* training_job_resource_config_;
-  mutable ::google::protobuf::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#endif  // __GNUC__
-// InputMode
-
-// -------------------------------------------------------------------
-
-// AlgorithmName
-
-// -------------------------------------------------------------------
-
-// InputContentType
-
-// -------------------------------------------------------------------
-
-// MetricDefinition
-
-// string name = 1;
-inline void MetricDefinition::clear_name() {
-  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline const ::std::string& MetricDefinition::name() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.MetricDefinition.name)
-  return name_.GetNoArena();
-}
-inline void MetricDefinition::set_name(const ::std::string& value) {
-  
-  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.MetricDefinition.name)
-}
-#if LANG_CXX11
-inline void MetricDefinition::set_name(::std::string&& value) {
-  
-  name_.SetNoArena(
-    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:flyteidl.plugins.sagemaker.MetricDefinition.name)
-}
-#endif
-inline void MetricDefinition::set_name(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:flyteidl.plugins.sagemaker.MetricDefinition.name)
-}
-inline void MetricDefinition::set_name(const char* value, size_t size) {
-  
-  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:flyteidl.plugins.sagemaker.MetricDefinition.name)
-}
-inline ::std::string* MetricDefinition::mutable_name() {
-  
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.MetricDefinition.name)
-  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* MetricDefinition::release_name() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.MetricDefinition.name)
-  
-  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void MetricDefinition::set_allocated_name(::std::string* name) {
-  if (name != nullptr) {
-    
-  } else {
-    
-  }
-  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.MetricDefinition.name)
-}
-
-// string regex = 2;
-inline void MetricDefinition::clear_regex() {
-  regex_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline const ::std::string& MetricDefinition::regex() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.MetricDefinition.regex)
-  return regex_.GetNoArena();
-}
-inline void MetricDefinition::set_regex(const ::std::string& value) {
-  
-  regex_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.MetricDefinition.regex)
-}
-#if LANG_CXX11
-inline void MetricDefinition::set_regex(::std::string&& value) {
-  
-  regex_.SetNoArena(
-    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:flyteidl.plugins.sagemaker.MetricDefinition.regex)
-}
-#endif
-inline void MetricDefinition::set_regex(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  regex_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:flyteidl.plugins.sagemaker.MetricDefinition.regex)
-}
-inline void MetricDefinition::set_regex(const char* value, size_t size) {
-  
-  regex_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:flyteidl.plugins.sagemaker.MetricDefinition.regex)
-}
-inline ::std::string* MetricDefinition::mutable_regex() {
-  
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.MetricDefinition.regex)
-  return regex_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* MetricDefinition::release_regex() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.MetricDefinition.regex)
-  
-  return regex_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void MetricDefinition::set_allocated_regex(::std::string* regex) {
-  if (regex != nullptr) {
-    
-  } else {
-    
-  }
-  regex_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), regex);
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.MetricDefinition.regex)
-}
-
-// -------------------------------------------------------------------
-
-// AlgorithmSpecification
-
-// .flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;
-inline void AlgorithmSpecification::clear_input_mode() {
-  input_mode_ = 0;
-}
-inline ::flyteidl::plugins::sagemaker::InputMode_Value AlgorithmSpecification::input_mode() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.AlgorithmSpecification.input_mode)
-  return static_cast< ::flyteidl::plugins::sagemaker::InputMode_Value >(input_mode_);
-}
-inline void AlgorithmSpecification::set_input_mode(::flyteidl::plugins::sagemaker::InputMode_Value value) {
-  
-  input_mode_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.AlgorithmSpecification.input_mode)
-}
-
-// .flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;
-inline void AlgorithmSpecification::clear_algorithm_name() {
-  algorithm_name_ = 0;
-}
-inline ::flyteidl::plugins::sagemaker::AlgorithmName_Value AlgorithmSpecification::algorithm_name() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_name)
-  return static_cast< ::flyteidl::plugins::sagemaker::AlgorithmName_Value >(algorithm_name_);
-}
-inline void AlgorithmSpecification::set_algorithm_name(::flyteidl::plugins::sagemaker::AlgorithmName_Value value) {
-  
-  algorithm_name_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_name)
-}
-
-// string algorithm_version = 3;
-inline void AlgorithmSpecification::clear_algorithm_version() {
-  algorithm_version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline const ::std::string& AlgorithmSpecification::algorithm_version() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version)
-  return algorithm_version_.GetNoArena();
-}
-inline void AlgorithmSpecification::set_algorithm_version(const ::std::string& value) {
-  
-  algorithm_version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version)
-}
-#if LANG_CXX11
-inline void AlgorithmSpecification::set_algorithm_version(::std::string&& value) {
-  
-  algorithm_version_.SetNoArena(
-    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version)
-}
-#endif
-inline void AlgorithmSpecification::set_algorithm_version(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  algorithm_version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version)
-}
-inline void AlgorithmSpecification::set_algorithm_version(const char* value, size_t size) {
-  
-  algorithm_version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version)
-}
-inline ::std::string* AlgorithmSpecification::mutable_algorithm_version() {
-  
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version)
-  return algorithm_version_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* AlgorithmSpecification::release_algorithm_version() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version)
-  
-  return algorithm_version_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void AlgorithmSpecification::set_allocated_algorithm_version(::std::string* algorithm_version) {
-  if (algorithm_version != nullptr) {
-    
-  } else {
-    
-  }
-  algorithm_version_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), algorithm_version);
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.AlgorithmSpecification.algorithm_version)
-}
-
-// repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;
-inline int AlgorithmSpecification::metric_definitions_size() const {
-  return metric_definitions_.size();
-}
-inline void AlgorithmSpecification::clear_metric_definitions() {
-  metric_definitions_.Clear();
-}
-inline ::flyteidl::plugins::sagemaker::MetricDefinition* AlgorithmSpecification::mutable_metric_definitions(int index) {
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.AlgorithmSpecification.metric_definitions)
-  return metric_definitions_.Mutable(index);
-}
-inline ::google::protobuf::RepeatedPtrField< ::flyteidl::plugins::sagemaker::MetricDefinition >*
-AlgorithmSpecification::mutable_metric_definitions() {
-  // @@protoc_insertion_point(field_mutable_list:flyteidl.plugins.sagemaker.AlgorithmSpecification.metric_definitions)
-  return &metric_definitions_;
-}
-inline const ::flyteidl::plugins::sagemaker::MetricDefinition& AlgorithmSpecification::metric_definitions(int index) const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.AlgorithmSpecification.metric_definitions)
-  return metric_definitions_.Get(index);
-}
-inline ::flyteidl::plugins::sagemaker::MetricDefinition* AlgorithmSpecification::add_metric_definitions() {
-  // @@protoc_insertion_point(field_add:flyteidl.plugins.sagemaker.AlgorithmSpecification.metric_definitions)
-  return metric_definitions_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::flyteidl::plugins::sagemaker::MetricDefinition >&
-AlgorithmSpecification::metric_definitions() const {
-  // @@protoc_insertion_point(field_list:flyteidl.plugins.sagemaker.AlgorithmSpecification.metric_definitions)
-  return metric_definitions_;
-}
-
-// .flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;
-inline void AlgorithmSpecification::clear_input_content_type() {
-  input_content_type_ = 0;
-}
-inline ::flyteidl::plugins::sagemaker::InputContentType_Value AlgorithmSpecification::input_content_type() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.AlgorithmSpecification.input_content_type)
-  return static_cast< ::flyteidl::plugins::sagemaker::InputContentType_Value >(input_content_type_);
-}
-inline void AlgorithmSpecification::set_input_content_type(::flyteidl::plugins::sagemaker::InputContentType_Value value) {
-  
-  input_content_type_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.AlgorithmSpecification.input_content_type)
-}
-
-// -------------------------------------------------------------------
-
-// DistributedProtocol
-
-// -------------------------------------------------------------------
-
-// TrainingJobResourceConfig
-
-// int64 instance_count = 1;
-inline void TrainingJobResourceConfig::clear_instance_count() {
-  instance_count_ = PROTOBUF_LONGLONG(0);
-}
-inline ::google::protobuf::int64 TrainingJobResourceConfig::instance_count() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_count)
-  return instance_count_;
-}
-inline void TrainingJobResourceConfig::set_instance_count(::google::protobuf::int64 value) {
-  
-  instance_count_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_count)
-}
-
-// string instance_type = 2;
-inline void TrainingJobResourceConfig::clear_instance_type() {
-  instance_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline const ::std::string& TrainingJobResourceConfig::instance_type() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type)
-  return instance_type_.GetNoArena();
-}
-inline void TrainingJobResourceConfig::set_instance_type(const ::std::string& value) {
-  
-  instance_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type)
-}
-#if LANG_CXX11
-inline void TrainingJobResourceConfig::set_instance_type(::std::string&& value) {
-  
-  instance_type_.SetNoArena(
-    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type)
-}
-#endif
-inline void TrainingJobResourceConfig::set_instance_type(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  instance_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type)
-}
-inline void TrainingJobResourceConfig::set_instance_type(const char* value, size_t size) {
-  
-  instance_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type)
-}
-inline ::std::string* TrainingJobResourceConfig::mutable_instance_type() {
-  
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type)
-  return instance_type_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* TrainingJobResourceConfig::release_instance_type() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type)
-  
-  return instance_type_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void TrainingJobResourceConfig::set_allocated_instance_type(::std::string* instance_type) {
-  if (instance_type != nullptr) {
-    
-  } else {
-    
-  }
-  instance_type_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), instance_type);
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.instance_type)
-}
-
-// int64 volume_size_in_gb = 3;
-inline void TrainingJobResourceConfig::clear_volume_size_in_gb() {
-  volume_size_in_gb_ = PROTOBUF_LONGLONG(0);
-}
-inline ::google::protobuf::int64 TrainingJobResourceConfig::volume_size_in_gb() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.volume_size_in_gb)
-  return volume_size_in_gb_;
-}
-inline void TrainingJobResourceConfig::set_volume_size_in_gb(::google::protobuf::int64 value) {
-  
-  volume_size_in_gb_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.volume_size_in_gb)
-}
-
-// .flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;
-inline void TrainingJobResourceConfig::clear_distributed_protocol() {
-  distributed_protocol_ = 0;
-}
-inline ::flyteidl::plugins::sagemaker::DistributedProtocol_Value TrainingJobResourceConfig::distributed_protocol() const {
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.distributed_protocol)
-  return static_cast< ::flyteidl::plugins::sagemaker::DistributedProtocol_Value >(distributed_protocol_);
-}
-inline void TrainingJobResourceConfig::set_distributed_protocol(::flyteidl::plugins::sagemaker::DistributedProtocol_Value value) {
-  
-  distributed_protocol_ = value;
-  // @@protoc_insertion_point(field_set:flyteidl.plugins.sagemaker.TrainingJobResourceConfig.distributed_protocol)
-}
-
-// -------------------------------------------------------------------
-
-// TrainingJob
-
-// .flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;
-inline bool TrainingJob::has_algorithm_specification() const {
-  return this != internal_default_instance() && algorithm_specification_ != nullptr;
-}
-inline void TrainingJob::clear_algorithm_specification() {
-  if (GetArenaNoVirtual() == nullptr && algorithm_specification_ != nullptr) {
-    delete algorithm_specification_;
-  }
-  algorithm_specification_ = nullptr;
-}
-inline const ::flyteidl::plugins::sagemaker::AlgorithmSpecification& TrainingJob::algorithm_specification() const {
-  const ::flyteidl::plugins::sagemaker::AlgorithmSpecification* p = algorithm_specification_;
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.TrainingJob.algorithm_specification)
-  return p != nullptr ? *p : *reinterpret_cast<const ::flyteidl::plugins::sagemaker::AlgorithmSpecification*>(
-      &::flyteidl::plugins::sagemaker::_AlgorithmSpecification_default_instance_);
-}
-inline ::flyteidl::plugins::sagemaker::AlgorithmSpecification* TrainingJob::release_algorithm_specification() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.TrainingJob.algorithm_specification)
-  
-  ::flyteidl::plugins::sagemaker::AlgorithmSpecification* temp = algorithm_specification_;
-  algorithm_specification_ = nullptr;
-  return temp;
-}
-inline ::flyteidl::plugins::sagemaker::AlgorithmSpecification* TrainingJob::mutable_algorithm_specification() {
-  
-  if (algorithm_specification_ == nullptr) {
-    auto* p = CreateMaybeMessage<::flyteidl::plugins::sagemaker::AlgorithmSpecification>(GetArenaNoVirtual());
-    algorithm_specification_ = p;
-  }
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.TrainingJob.algorithm_specification)
-  return algorithm_specification_;
-}
-inline void TrainingJob::set_allocated_algorithm_specification(::flyteidl::plugins::sagemaker::AlgorithmSpecification* algorithm_specification) {
-  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete algorithm_specification_;
-  }
-  if (algorithm_specification) {
-    ::google::protobuf::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      algorithm_specification = ::google::protobuf::internal::GetOwnedMessage(
-          message_arena, algorithm_specification, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  algorithm_specification_ = algorithm_specification;
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.TrainingJob.algorithm_specification)
-}
-
-// .flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;
-inline bool TrainingJob::has_training_job_resource_config() const {
-  return this != internal_default_instance() && training_job_resource_config_ != nullptr;
-}
-inline void TrainingJob::clear_training_job_resource_config() {
-  if (GetArenaNoVirtual() == nullptr && training_job_resource_config_ != nullptr) {
-    delete training_job_resource_config_;
-  }
-  training_job_resource_config_ = nullptr;
-}
-inline const ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig& TrainingJob::training_job_resource_config() const {
-  const ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig* p = training_job_resource_config_;
-  // @@protoc_insertion_point(field_get:flyteidl.plugins.sagemaker.TrainingJob.training_job_resource_config)
-  return p != nullptr ? *p : *reinterpret_cast<const ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig*>(
-      &::flyteidl::plugins::sagemaker::_TrainingJobResourceConfig_default_instance_);
-}
-inline ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig* TrainingJob::release_training_job_resource_config() {
-  // @@protoc_insertion_point(field_release:flyteidl.plugins.sagemaker.TrainingJob.training_job_resource_config)
-  
-  ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig* temp = training_job_resource_config_;
-  training_job_resource_config_ = nullptr;
-  return temp;
-}
-inline ::flyteidl::plugins::sagemaker::TrainingJobResourceConfig* TrainingJob::mutable_training_job_resource_config() {
-  
-  if (training_job_resource_config_ == nullptr) {
-    auto* p = CreateMaybeMessage<::flyteidl::plugins::sagemaker::TrainingJobResourceConfig>(GetArenaNoVirtual());
-    training_job_resource_config_ = p;
-  }
-  // @@protoc_insertion_point(field_mutable:flyteidl.plugins.sagemaker.TrainingJob.training_job_resource_config)
-  return training_job_resource_config_;
-}
-inline void TrainingJob::set_allocated_training_job_resource_config(::flyteidl::plugins::sagemaker::TrainingJobResourceConfig* training_job_resource_config) {
-  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete training_job_resource_config_;
-  }
-  if (training_job_resource_config) {
-    ::google::protobuf::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      training_job_resource_config = ::google::protobuf::internal::GetOwnedMessage(
-          message_arena, training_job_resource_config, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  training_job_resource_config_ = training_job_resource_config;
-  // @@protoc_insertion_point(field_set_allocated:flyteidl.plugins.sagemaker.TrainingJob.training_job_resource_config)
-}
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic pop
-#endif  // __GNUC__
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace sagemaker
-}  // namespace plugins
-}  // namespace flyteidl
-
-namespace google {
-namespace protobuf {
-
-template <> struct is_proto_enum< ::flyteidl::plugins::sagemaker::InputMode_Value> : ::std::true_type {};
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::flyteidl::plugins::sagemaker::InputMode_Value>() {
-  return ::flyteidl::plugins::sagemaker::InputMode_Value_descriptor();
-}
-template <> struct is_proto_enum< ::flyteidl::plugins::sagemaker::AlgorithmName_Value> : ::std::true_type {};
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::flyteidl::plugins::sagemaker::AlgorithmName_Value>() {
-  return ::flyteidl::plugins::sagemaker::AlgorithmName_Value_descriptor();
-}
-template <> struct is_proto_enum< ::flyteidl::plugins::sagemaker::InputContentType_Value> : ::std::true_type {};
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::flyteidl::plugins::sagemaker::InputContentType_Value>() {
-  return ::flyteidl::plugins::sagemaker::InputContentType_Value_descriptor();
-}
-template <> struct is_proto_enum< ::flyteidl::plugins::sagemaker::DistributedProtocol_Value> : ::std::true_type {};
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::flyteidl::plugins::sagemaker::DistributedProtocol_Value>() {
-  return ::flyteidl::plugins::sagemaker::DistributedProtocol_Value_descriptor();
-}
-
-}  // namespace protobuf
-}  // namespace google
-
-// @@protoc_insertion_point(global_scope)
-
-#include <google/protobuf/port_undef.inc>
-#endif  // PROTOBUF_INCLUDED_flyteidl_2fplugins_2fsagemaker_2ftraining_5fjob_2eproto
diff --git a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.go b/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.go
deleted file mode 100644
index a76984c375..0000000000
--- a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.go
+++ /dev/null
@@ -1,437 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// source: flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto
-
-package plugins
-
-import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	math "math"
-)
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
-
-type HyperparameterTuningObjectiveType_Value int32
-
-const (
-	HyperparameterTuningObjectiveType_MINIMIZE HyperparameterTuningObjectiveType_Value = 0
-	HyperparameterTuningObjectiveType_MAXIMIZE HyperparameterTuningObjectiveType_Value = 1
-)
-
-var HyperparameterTuningObjectiveType_Value_name = map[int32]string{
-	0: "MINIMIZE",
-	1: "MAXIMIZE",
-}
-
-var HyperparameterTuningObjectiveType_Value_value = map[string]int32{
-	"MINIMIZE": 0,
-	"MAXIMIZE": 1,
-}
-
-func (x HyperparameterTuningObjectiveType_Value) String() string {
-	return proto.EnumName(HyperparameterTuningObjectiveType_Value_name, int32(x))
-}
-
-func (HyperparameterTuningObjectiveType_Value) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_84374f4d1322c4ba, []int{1, 0}
-}
-
-type HyperparameterTuningStrategy_Value int32
-
-const (
-	HyperparameterTuningStrategy_BAYESIAN HyperparameterTuningStrategy_Value = 0
-	HyperparameterTuningStrategy_RANDOM   HyperparameterTuningStrategy_Value = 1
-)
-
-var HyperparameterTuningStrategy_Value_name = map[int32]string{
-	0: "BAYESIAN",
-	1: "RANDOM",
-}
-
-var HyperparameterTuningStrategy_Value_value = map[string]int32{
-	"BAYESIAN": 0,
-	"RANDOM":   1,
-}
-
-func (x HyperparameterTuningStrategy_Value) String() string {
-	return proto.EnumName(HyperparameterTuningStrategy_Value_name, int32(x))
-}
-
-func (HyperparameterTuningStrategy_Value) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_84374f4d1322c4ba, []int{3, 0}
-}
-
-type TrainingJobEarlyStoppingType_Value int32
-
-const (
-	TrainingJobEarlyStoppingType_OFF  TrainingJobEarlyStoppingType_Value = 0
-	TrainingJobEarlyStoppingType_AUTO TrainingJobEarlyStoppingType_Value = 1
-)
-
-var TrainingJobEarlyStoppingType_Value_name = map[int32]string{
-	0: "OFF",
-	1: "AUTO",
-}
-
-var TrainingJobEarlyStoppingType_Value_value = map[string]int32{
-	"OFF":  0,
-	"AUTO": 1,
-}
-
-func (x TrainingJobEarlyStoppingType_Value) String() string {
-	return proto.EnumName(TrainingJobEarlyStoppingType_Value_name, int32(x))
-}
-
-func (TrainingJobEarlyStoppingType_Value) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_84374f4d1322c4ba, []int{4, 0}
-}
-
-// A pass-through for SageMaker's hyperparameter tuning job
-type HyperparameterTuningJob struct {
-	// The underlying training job that the hyperparameter tuning job will launch during the process
-	TrainingJob *TrainingJob `protobuf:"bytes,1,opt,name=training_job,json=trainingJob,proto3" json:"training_job,omitempty"`
-	// The maximum number of training jobs that an hpo job can launch. For resource limit purpose.
-	// https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-	MaxNumberOfTrainingJobs int64 `protobuf:"varint,2,opt,name=max_number_of_training_jobs,json=maxNumberOfTrainingJobs,proto3" json:"max_number_of_training_jobs,omitempty"`
-	// The maximum number of concurrent training job that an hpo job can launch
-	// https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-	MaxParallelTrainingJobs int64    `protobuf:"varint,3,opt,name=max_parallel_training_jobs,json=maxParallelTrainingJobs,proto3" json:"max_parallel_training_jobs,omitempty"`
-	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
-	XXX_unrecognized        []byte   `json:"-"`
-	XXX_sizecache           int32    `json:"-"`
-}
-
-func (m *HyperparameterTuningJob) Reset()         { *m = HyperparameterTuningJob{} }
-func (m *HyperparameterTuningJob) String() string { return proto.CompactTextString(m) }
-func (*HyperparameterTuningJob) ProtoMessage()    {}
-func (*HyperparameterTuningJob) Descriptor() ([]byte, []int) {
-	return fileDescriptor_84374f4d1322c4ba, []int{0}
-}
-
-func (m *HyperparameterTuningJob) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_HyperparameterTuningJob.Unmarshal(m, b)
-}
-func (m *HyperparameterTuningJob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_HyperparameterTuningJob.Marshal(b, m, deterministic)
-}
-func (m *HyperparameterTuningJob) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_HyperparameterTuningJob.Merge(m, src)
-}
-func (m *HyperparameterTuningJob) XXX_Size() int {
-	return xxx_messageInfo_HyperparameterTuningJob.Size(m)
-}
-func (m *HyperparameterTuningJob) XXX_DiscardUnknown() {
-	xxx_messageInfo_HyperparameterTuningJob.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_HyperparameterTuningJob proto.InternalMessageInfo
-
-func (m *HyperparameterTuningJob) GetTrainingJob() *TrainingJob {
-	if m != nil {
-		return m.TrainingJob
-	}
-	return nil
-}
-
-func (m *HyperparameterTuningJob) GetMaxNumberOfTrainingJobs() int64 {
-	if m != nil {
-		return m.MaxNumberOfTrainingJobs
-	}
-	return 0
-}
-
-func (m *HyperparameterTuningJob) GetMaxParallelTrainingJobs() int64 {
-	if m != nil {
-		return m.MaxParallelTrainingJobs
-	}
-	return 0
-}
-
-// HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-// with respect to the specified metric.
-type HyperparameterTuningObjectiveType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *HyperparameterTuningObjectiveType) Reset()         { *m = HyperparameterTuningObjectiveType{} }
-func (m *HyperparameterTuningObjectiveType) String() string { return proto.CompactTextString(m) }
-func (*HyperparameterTuningObjectiveType) ProtoMessage()    {}
-func (*HyperparameterTuningObjectiveType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_84374f4d1322c4ba, []int{1}
-}
-
-func (m *HyperparameterTuningObjectiveType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_HyperparameterTuningObjectiveType.Unmarshal(m, b)
-}
-func (m *HyperparameterTuningObjectiveType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_HyperparameterTuningObjectiveType.Marshal(b, m, deterministic)
-}
-func (m *HyperparameterTuningObjectiveType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_HyperparameterTuningObjectiveType.Merge(m, src)
-}
-func (m *HyperparameterTuningObjectiveType) XXX_Size() int {
-	return xxx_messageInfo_HyperparameterTuningObjectiveType.Size(m)
-}
-func (m *HyperparameterTuningObjectiveType) XXX_DiscardUnknown() {
-	xxx_messageInfo_HyperparameterTuningObjectiveType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_HyperparameterTuningObjectiveType proto.InternalMessageInfo
-
-// The target metric and the objective of the hyperparameter tuning.
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-type HyperparameterTuningObjective struct {
-	// HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-	// with respect to the specified metric.
-	ObjectiveType HyperparameterTuningObjectiveType_Value `protobuf:"varint,1,opt,name=objective_type,json=objectiveType,proto3,enum=flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType_Value" json:"objective_type,omitempty"`
-	// The target metric name, which is the user-defined name of the metric specified in the
-	// training job's algorithm specification
-	MetricName           string   `protobuf:"bytes,2,opt,name=metric_name,json=metricName,proto3" json:"metric_name,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *HyperparameterTuningObjective) Reset()         { *m = HyperparameterTuningObjective{} }
-func (m *HyperparameterTuningObjective) String() string { return proto.CompactTextString(m) }
-func (*HyperparameterTuningObjective) ProtoMessage()    {}
-func (*HyperparameterTuningObjective) Descriptor() ([]byte, []int) {
-	return fileDescriptor_84374f4d1322c4ba, []int{2}
-}
-
-func (m *HyperparameterTuningObjective) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_HyperparameterTuningObjective.Unmarshal(m, b)
-}
-func (m *HyperparameterTuningObjective) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_HyperparameterTuningObjective.Marshal(b, m, deterministic)
-}
-func (m *HyperparameterTuningObjective) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_HyperparameterTuningObjective.Merge(m, src)
-}
-func (m *HyperparameterTuningObjective) XXX_Size() int {
-	return xxx_messageInfo_HyperparameterTuningObjective.Size(m)
-}
-func (m *HyperparameterTuningObjective) XXX_DiscardUnknown() {
-	xxx_messageInfo_HyperparameterTuningObjective.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_HyperparameterTuningObjective proto.InternalMessageInfo
-
-func (m *HyperparameterTuningObjective) GetObjectiveType() HyperparameterTuningObjectiveType_Value {
-	if m != nil {
-		return m.ObjectiveType
-	}
-	return HyperparameterTuningObjectiveType_MINIMIZE
-}
-
-func (m *HyperparameterTuningObjective) GetMetricName() string {
-	if m != nil {
-		return m.MetricName
-	}
-	return ""
-}
-
-// Setting the strategy used when searching in the hyperparameter space
-// Refer this doc for more details:
-// https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-automatic-model-tuning-now-supports-random-search-and-hyperparameter-scaling/
-type HyperparameterTuningStrategy struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *HyperparameterTuningStrategy) Reset()         { *m = HyperparameterTuningStrategy{} }
-func (m *HyperparameterTuningStrategy) String() string { return proto.CompactTextString(m) }
-func (*HyperparameterTuningStrategy) ProtoMessage()    {}
-func (*HyperparameterTuningStrategy) Descriptor() ([]byte, []int) {
-	return fileDescriptor_84374f4d1322c4ba, []int{3}
-}
-
-func (m *HyperparameterTuningStrategy) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_HyperparameterTuningStrategy.Unmarshal(m, b)
-}
-func (m *HyperparameterTuningStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_HyperparameterTuningStrategy.Marshal(b, m, deterministic)
-}
-func (m *HyperparameterTuningStrategy) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_HyperparameterTuningStrategy.Merge(m, src)
-}
-func (m *HyperparameterTuningStrategy) XXX_Size() int {
-	return xxx_messageInfo_HyperparameterTuningStrategy.Size(m)
-}
-func (m *HyperparameterTuningStrategy) XXX_DiscardUnknown() {
-	xxx_messageInfo_HyperparameterTuningStrategy.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_HyperparameterTuningStrategy proto.InternalMessageInfo
-
-// When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-// a hyperparameter tuning job can be stopping early.
-// Note that there's only a subset of built-in algorithms that supports early stopping.
-// see: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html
-type TrainingJobEarlyStoppingType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *TrainingJobEarlyStoppingType) Reset()         { *m = TrainingJobEarlyStoppingType{} }
-func (m *TrainingJobEarlyStoppingType) String() string { return proto.CompactTextString(m) }
-func (*TrainingJobEarlyStoppingType) ProtoMessage()    {}
-func (*TrainingJobEarlyStoppingType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_84374f4d1322c4ba, []int{4}
-}
-
-func (m *TrainingJobEarlyStoppingType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TrainingJobEarlyStoppingType.Unmarshal(m, b)
-}
-func (m *TrainingJobEarlyStoppingType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TrainingJobEarlyStoppingType.Marshal(b, m, deterministic)
-}
-func (m *TrainingJobEarlyStoppingType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TrainingJobEarlyStoppingType.Merge(m, src)
-}
-func (m *TrainingJobEarlyStoppingType) XXX_Size() int {
-	return xxx_messageInfo_TrainingJobEarlyStoppingType.Size(m)
-}
-func (m *TrainingJobEarlyStoppingType) XXX_DiscardUnknown() {
-	xxx_messageInfo_TrainingJobEarlyStoppingType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TrainingJobEarlyStoppingType proto.InternalMessageInfo
-
-// The specification of the hyperparameter tuning process
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-ex-tuning-job.html#automatic-model-tuning-ex-low-tuning-config
-type HyperparameterTuningJobConfig struct {
-	// ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-	HyperparameterRanges *ParameterRanges `protobuf:"bytes,1,opt,name=hyperparameter_ranges,json=hyperparameterRanges,proto3" json:"hyperparameter_ranges,omitempty"`
-	// Setting the strategy used when searching in the hyperparameter space
-	TuningStrategy HyperparameterTuningStrategy_Value `protobuf:"varint,2,opt,name=tuning_strategy,json=tuningStrategy,proto3,enum=flyteidl.plugins.sagemaker.HyperparameterTuningStrategy_Value" json:"tuning_strategy,omitempty"`
-	// The target metric and the objective of the hyperparameter tuning.
-	TuningObjective *HyperparameterTuningObjective `protobuf:"bytes,3,opt,name=tuning_objective,json=tuningObjective,proto3" json:"tuning_objective,omitempty"`
-	// When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-	// a hyperparameter tuning job can be stopping early.
-	TrainingJobEarlyStoppingType TrainingJobEarlyStoppingType_Value `protobuf:"varint,4,opt,name=training_job_early_stopping_type,json=trainingJobEarlyStoppingType,proto3,enum=flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType_Value" json:"training_job_early_stopping_type,omitempty"`
-	XXX_NoUnkeyedLiteral         struct{}                           `json:"-"`
-	XXX_unrecognized             []byte                             `json:"-"`
-	XXX_sizecache                int32                              `json:"-"`
-}
-
-func (m *HyperparameterTuningJobConfig) Reset()         { *m = HyperparameterTuningJobConfig{} }
-func (m *HyperparameterTuningJobConfig) String() string { return proto.CompactTextString(m) }
-func (*HyperparameterTuningJobConfig) ProtoMessage()    {}
-func (*HyperparameterTuningJobConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_84374f4d1322c4ba, []int{5}
-}
-
-func (m *HyperparameterTuningJobConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_HyperparameterTuningJobConfig.Unmarshal(m, b)
-}
-func (m *HyperparameterTuningJobConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_HyperparameterTuningJobConfig.Marshal(b, m, deterministic)
-}
-func (m *HyperparameterTuningJobConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_HyperparameterTuningJobConfig.Merge(m, src)
-}
-func (m *HyperparameterTuningJobConfig) XXX_Size() int {
-	return xxx_messageInfo_HyperparameterTuningJobConfig.Size(m)
-}
-func (m *HyperparameterTuningJobConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_HyperparameterTuningJobConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_HyperparameterTuningJobConfig proto.InternalMessageInfo
-
-func (m *HyperparameterTuningJobConfig) GetHyperparameterRanges() *ParameterRanges {
-	if m != nil {
-		return m.HyperparameterRanges
-	}
-	return nil
-}
-
-func (m *HyperparameterTuningJobConfig) GetTuningStrategy() HyperparameterTuningStrategy_Value {
-	if m != nil {
-		return m.TuningStrategy
-	}
-	return HyperparameterTuningStrategy_BAYESIAN
-}
-
-func (m *HyperparameterTuningJobConfig) GetTuningObjective() *HyperparameterTuningObjective {
-	if m != nil {
-		return m.TuningObjective
-	}
-	return nil
-}
-
-func (m *HyperparameterTuningJobConfig) GetTrainingJobEarlyStoppingType() TrainingJobEarlyStoppingType_Value {
-	if m != nil {
-		return m.TrainingJobEarlyStoppingType
-	}
-	return TrainingJobEarlyStoppingType_OFF
-}
-
-func init() {
-	proto.RegisterEnum("flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType_Value", HyperparameterTuningObjectiveType_Value_name, HyperparameterTuningObjectiveType_Value_value)
-	proto.RegisterEnum("flyteidl.plugins.sagemaker.HyperparameterTuningStrategy_Value", HyperparameterTuningStrategy_Value_name, HyperparameterTuningStrategy_Value_value)
-	proto.RegisterEnum("flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType_Value", TrainingJobEarlyStoppingType_Value_name, TrainingJobEarlyStoppingType_Value_value)
-	proto.RegisterType((*HyperparameterTuningJob)(nil), "flyteidl.plugins.sagemaker.HyperparameterTuningJob")
-	proto.RegisterType((*HyperparameterTuningObjectiveType)(nil), "flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType")
-	proto.RegisterType((*HyperparameterTuningObjective)(nil), "flyteidl.plugins.sagemaker.HyperparameterTuningObjective")
-	proto.RegisterType((*HyperparameterTuningStrategy)(nil), "flyteidl.plugins.sagemaker.HyperparameterTuningStrategy")
-	proto.RegisterType((*TrainingJobEarlyStoppingType)(nil), "flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType")
-	proto.RegisterType((*HyperparameterTuningJobConfig)(nil), "flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig")
-}
-
-func init() {
-	proto.RegisterFile("flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto", fileDescriptor_84374f4d1322c4ba)
-}
-
-var fileDescriptor_84374f4d1322c4ba = []byte{
-	// 557 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x5d, 0x6f, 0xd3, 0x30,
-	0x14, 0x5d, 0xe8, 0x18, 0xe3, 0x76, 0x94, 0xc8, 0x02, 0x6d, 0x2a, 0x45, 0x74, 0xe1, 0x81, 0x49,
-	0x68, 0x89, 0x28, 0x4f, 0x8c, 0x2f, 0x65, 0xa3, 0xd3, 0x5a, 0xa9, 0xed, 0x94, 0x16, 0x04, 0x7b,
-	0x09, 0x4e, 0xe7, 0x7a, 0x29, 0x49, 0x1c, 0x39, 0x2e, 0x5a, 0xfe, 0x00, 0xbf, 0x86, 0x3f, 0xc4,
-	0x1b, 0x3f, 0x05, 0xd5, 0x71, 0xdb, 0xb4, 0x2a, 0x99, 0xe0, 0x2d, 0xbe, 0xba, 0xe7, 0xf8, 0xdc,
-	0x73, 0x6e, 0x0c, 0x47, 0xa3, 0x20, 0x15, 0xc4, 0xbf, 0x0c, 0xac, 0x38, 0x98, 0x50, 0x3f, 0x4a,
-	0xac, 0x04, 0x53, 0x12, 0xe2, 0x6f, 0x84, 0x5b, 0x57, 0x69, 0x4c, 0x78, 0x8c, 0x39, 0x0e, 0x89,
-	0x20, 0xdc, 0x15, 0x93, 0xc8, 0x8f, 0xa8, 0x3b, 0x66, 0x9e, 0x19, 0x73, 0x26, 0x18, 0xaa, 0xce,
-	0xb0, 0xa6, 0xc2, 0x9a, 0x73, 0x6c, 0xf5, 0x45, 0x01, 0xef, 0x82, 0x92, 0xe3, 0x88, 0x92, 0x24,
-	0xa3, 0xab, 0x1e, 0x16, 0x40, 0x04, 0xc7, 0xfe, 0xf2, 0xed, 0xc6, 0x6f, 0x0d, 0x76, 0xcf, 0x96,
-	0x14, 0x0e, 0xa4, 0xc0, 0x36, 0xf3, 0x50, 0x1b, 0x76, 0xf2, 0x88, 0x3d, 0xad, 0xae, 0x1d, 0x94,
-	0x1b, 0xcf, 0xcc, 0xbf, 0x0b, 0x36, 0x07, 0xaa, 0xbf, 0xcd, 0x3c, 0xa7, 0x2c, 0x16, 0x07, 0xf4,
-	0x06, 0x1e, 0x85, 0xf8, 0xda, 0x8d, 0x26, 0xa1, 0x47, 0xb8, 0xcb, 0x46, 0x6e, 0x9e, 0x39, 0xd9,
-	0xbb, 0x55, 0xd7, 0x0e, 0x4a, 0xce, 0x6e, 0x88, 0xaf, 0xbb, 0xb2, 0xa3, 0x37, 0xca, 0x31, 0x25,
-	0xe8, 0x35, 0x54, 0xa7, 0xe8, 0xa9, 0xc6, 0x20, 0x20, 0xc1, 0x0a, 0xb8, 0x34, 0x07, 0x9f, 0xab,
-	0x86, 0x3c, 0xd8, 0x38, 0x83, 0xfd, 0x75, 0x13, 0xf6, 0xbc, 0x31, 0x19, 0x0a, 0xff, 0x3b, 0x19,
-	0xa4, 0x31, 0x31, 0x9e, 0xc2, 0xed, 0x4f, 0x38, 0x98, 0x10, 0xb4, 0x03, 0xdb, 0x9d, 0x56, 0xb7,
-	0xd5, 0x69, 0x5d, 0x34, 0xf5, 0x0d, 0x79, 0xb2, 0x3f, 0x67, 0x27, 0xcd, 0xf8, 0xa9, 0xc1, 0xe3,
-	0x42, 0x2a, 0x34, 0x86, 0x0a, 0x9b, 0x1d, 0x5c, 0x91, 0xc6, 0x44, 0x9a, 0x56, 0x69, 0x9c, 0x14,
-	0x99, 0x76, 0xa3, 0x3a, 0x53, 0x4a, 0x73, 0xee, 0xb1, 0x7c, 0x11, 0x3d, 0x81, 0x72, 0x48, 0x04,
-	0xf7, 0x87, 0x6e, 0x84, 0x43, 0x22, 0x2d, 0xbc, 0xeb, 0x40, 0x56, 0xea, 0xe2, 0x90, 0x18, 0x36,
-	0xd4, 0xd6, 0x51, 0xf7, 0x05, 0xc7, 0x82, 0xd0, 0xd4, 0xd8, 0xcf, 0xcd, 0x7c, 0x6c, 0x7f, 0x69,
-	0xf6, 0x5b, 0x76, 0x57, 0xdf, 0x40, 0x00, 0x5b, 0x8e, 0xdd, 0xfd, 0xd0, 0xeb, 0xe8, 0x9a, 0x71,
-	0x04, 0xb5, 0x9c, 0x97, 0x4d, 0xcc, 0x83, 0xb4, 0x2f, 0x58, 0x1c, 0xfb, 0x11, 0x95, 0xb6, 0x55,
-	0x67, 0x14, 0x77, 0xa0, 0xd4, 0x3b, 0x3d, 0xd5, 0x37, 0xd0, 0x36, 0x6c, 0xda, 0x1f, 0x07, 0x3d,
-	0x5d, 0x33, 0x7e, 0x95, 0xd6, 0xbb, 0xd5, 0x66, 0xde, 0x09, 0x8b, 0x46, 0x3e, 0x45, 0x5f, 0xe1,
-	0xe1, 0xca, 0xdf, 0x91, 0xad, 0xb2, 0xda, 0xb4, 0xe7, 0x45, 0xa6, 0x9d, 0xcf, 0x30, 0x8e, 0x84,
-	0x38, 0x0f, 0x96, 0x99, 0xb2, 0x2a, 0xa2, 0x70, 0x5f, 0xfd, 0x70, 0x89, 0x9a, 0x5a, 0xfa, 0x54,
-	0x69, 0xbc, 0xfb, 0xd7, 0x40, 0x66, 0xae, 0xa9, 0x2c, 0x2a, 0x62, 0xa9, 0x8a, 0x2e, 0x41, 0x57,
-	0x17, 0xcd, 0x43, 0x92, 0x7b, 0x59, 0x6e, 0xbc, 0xfa, 0xef, 0xe8, 0x1d, 0xa5, 0x7d, 0xb1, 0x5e,
-	0x3f, 0x34, 0xa8, 0xe7, 0x77, 0xdf, 0x25, 0xd3, 0x44, 0xdc, 0x44, 0x45, 0x92, 0x6d, 0xdc, 0xe6,
-	0xcd, 0x03, 0x16, 0x65, 0xaa, 0x06, 0xac, 0x89, 0x82, 0x9e, 0xe3, 0xf7, 0x17, 0x6f, 0xa9, 0x2f,
-	0xae, 0x26, 0x9e, 0x39, 0x64, 0xa1, 0x25, 0x6f, 0x62, 0x9c, 0x66, 0x1f, 0xd6, 0xfc, 0x05, 0xa2,
-	0x24, 0xb2, 0x62, 0xef, 0x90, 0x32, 0x6b, 0xf5, 0x51, 0xf2, 0xb6, 0xe4, 0xf3, 0xf3, 0xf2, 0x4f,
-	0x00, 0x00, 0x00, 0xff, 0xff, 0xf6, 0xd3, 0xfc, 0x15, 0x3a, 0x05, 0x00, 0x00,
-}
diff --git a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.validate.go b/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.validate.go
deleted file mode 100644
index 08e5ef6b09..0000000000
--- a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.pb.validate.go
+++ /dev/null
@@ -1,486 +0,0 @@
-// Code generated by protoc-gen-validate. DO NOT EDIT.
-// source: flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto
-
-package plugins
-
-import (
-	"bytes"
-	"errors"
-	"fmt"
-	"net"
-	"net/mail"
-	"net/url"
-	"regexp"
-	"strings"
-	"time"
-	"unicode/utf8"
-
-	"github.com/golang/protobuf/ptypes"
-)
-
-// ensure the imports are used
-var (
-	_ = bytes.MinRead
-	_ = errors.New("")
-	_ = fmt.Print
-	_ = utf8.UTFMax
-	_ = (*regexp.Regexp)(nil)
-	_ = (*strings.Reader)(nil)
-	_ = net.IPv4len
-	_ = time.Duration(0)
-	_ = (*url.URL)(nil)
-	_ = (*mail.Address)(nil)
-	_ = ptypes.DynamicAny{}
-)
-
-// define the regex for a UUID once up-front
-var _hyperparameter_tuning_job_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$")
-
-// Validate checks the field values on HyperparameterTuningJob with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *HyperparameterTuningJob) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	if v, ok := interface{}(m.GetTrainingJob()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return HyperparameterTuningJobValidationError{
-				field:  "TrainingJob",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	// no validation rules for MaxNumberOfTrainingJobs
-
-	// no validation rules for MaxParallelTrainingJobs
-
-	return nil
-}
-
-// HyperparameterTuningJobValidationError is the validation error returned by
-// HyperparameterTuningJob.Validate if the designated constraints aren't met.
-type HyperparameterTuningJobValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e HyperparameterTuningJobValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e HyperparameterTuningJobValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e HyperparameterTuningJobValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e HyperparameterTuningJobValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e HyperparameterTuningJobValidationError) ErrorName() string {
-	return "HyperparameterTuningJobValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e HyperparameterTuningJobValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sHyperparameterTuningJob.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = HyperparameterTuningJobValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = HyperparameterTuningJobValidationError{}
-
-// Validate checks the field values on HyperparameterTuningObjectiveType with
-// the rules defined in the proto definition for this message. If any rules
-// are violated, an error is returned.
-func (m *HyperparameterTuningObjectiveType) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	return nil
-}
-
-// HyperparameterTuningObjectiveTypeValidationError is the validation error
-// returned by HyperparameterTuningObjectiveType.Validate if the designated
-// constraints aren't met.
-type HyperparameterTuningObjectiveTypeValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e HyperparameterTuningObjectiveTypeValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e HyperparameterTuningObjectiveTypeValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e HyperparameterTuningObjectiveTypeValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e HyperparameterTuningObjectiveTypeValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e HyperparameterTuningObjectiveTypeValidationError) ErrorName() string {
-	return "HyperparameterTuningObjectiveTypeValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e HyperparameterTuningObjectiveTypeValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sHyperparameterTuningObjectiveType.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = HyperparameterTuningObjectiveTypeValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = HyperparameterTuningObjectiveTypeValidationError{}
-
-// Validate checks the field values on HyperparameterTuningObjective with the
-// rules defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *HyperparameterTuningObjective) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	// no validation rules for ObjectiveType
-
-	// no validation rules for MetricName
-
-	return nil
-}
-
-// HyperparameterTuningObjectiveValidationError is the validation error
-// returned by HyperparameterTuningObjective.Validate if the designated
-// constraints aren't met.
-type HyperparameterTuningObjectiveValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e HyperparameterTuningObjectiveValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e HyperparameterTuningObjectiveValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e HyperparameterTuningObjectiveValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e HyperparameterTuningObjectiveValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e HyperparameterTuningObjectiveValidationError) ErrorName() string {
-	return "HyperparameterTuningObjectiveValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e HyperparameterTuningObjectiveValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sHyperparameterTuningObjective.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = HyperparameterTuningObjectiveValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = HyperparameterTuningObjectiveValidationError{}
-
-// Validate checks the field values on HyperparameterTuningStrategy with the
-// rules defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *HyperparameterTuningStrategy) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	return nil
-}
-
-// HyperparameterTuningStrategyValidationError is the validation error returned
-// by HyperparameterTuningStrategy.Validate if the designated constraints
-// aren't met.
-type HyperparameterTuningStrategyValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e HyperparameterTuningStrategyValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e HyperparameterTuningStrategyValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e HyperparameterTuningStrategyValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e HyperparameterTuningStrategyValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e HyperparameterTuningStrategyValidationError) ErrorName() string {
-	return "HyperparameterTuningStrategyValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e HyperparameterTuningStrategyValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sHyperparameterTuningStrategy.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = HyperparameterTuningStrategyValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = HyperparameterTuningStrategyValidationError{}
-
-// Validate checks the field values on TrainingJobEarlyStoppingType with the
-// rules defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *TrainingJobEarlyStoppingType) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	return nil
-}
-
-// TrainingJobEarlyStoppingTypeValidationError is the validation error returned
-// by TrainingJobEarlyStoppingType.Validate if the designated constraints
-// aren't met.
-type TrainingJobEarlyStoppingTypeValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e TrainingJobEarlyStoppingTypeValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e TrainingJobEarlyStoppingTypeValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e TrainingJobEarlyStoppingTypeValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e TrainingJobEarlyStoppingTypeValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e TrainingJobEarlyStoppingTypeValidationError) ErrorName() string {
-	return "TrainingJobEarlyStoppingTypeValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e TrainingJobEarlyStoppingTypeValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sTrainingJobEarlyStoppingType.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = TrainingJobEarlyStoppingTypeValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = TrainingJobEarlyStoppingTypeValidationError{}
-
-// Validate checks the field values on HyperparameterTuningJobConfig with the
-// rules defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *HyperparameterTuningJobConfig) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	if v, ok := interface{}(m.GetHyperparameterRanges()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return HyperparameterTuningJobConfigValidationError{
-				field:  "HyperparameterRanges",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	// no validation rules for TuningStrategy
-
-	if v, ok := interface{}(m.GetTuningObjective()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return HyperparameterTuningJobConfigValidationError{
-				field:  "TuningObjective",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	// no validation rules for TrainingJobEarlyStoppingType
-
-	return nil
-}
-
-// HyperparameterTuningJobConfigValidationError is the validation error
-// returned by HyperparameterTuningJobConfig.Validate if the designated
-// constraints aren't met.
-type HyperparameterTuningJobConfigValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e HyperparameterTuningJobConfigValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e HyperparameterTuningJobConfigValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e HyperparameterTuningJobConfigValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e HyperparameterTuningJobConfigValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e HyperparameterTuningJobConfigValidationError) ErrorName() string {
-	return "HyperparameterTuningJobConfigValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e HyperparameterTuningJobConfigValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sHyperparameterTuningJobConfig.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = HyperparameterTuningJobConfigValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = HyperparameterTuningJobConfigValidationError{}
diff --git a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/parameter_ranges.pb.go b/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/parameter_ranges.pb.go
deleted file mode 100644
index e88cba07df..0000000000
--- a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/parameter_ranges.pb.go
+++ /dev/null
@@ -1,436 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// source: flyteidl/plugins/sagemaker/parameter_ranges.proto
-
-package plugins
-
-import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	math "math"
-)
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
-
-type HyperparameterScalingType_Value int32
-
-const (
-	HyperparameterScalingType_AUTO               HyperparameterScalingType_Value = 0
-	HyperparameterScalingType_LINEAR             HyperparameterScalingType_Value = 1
-	HyperparameterScalingType_LOGARITHMIC        HyperparameterScalingType_Value = 2
-	HyperparameterScalingType_REVERSELOGARITHMIC HyperparameterScalingType_Value = 3
-)
-
-var HyperparameterScalingType_Value_name = map[int32]string{
-	0: "AUTO",
-	1: "LINEAR",
-	2: "LOGARITHMIC",
-	3: "REVERSELOGARITHMIC",
-}
-
-var HyperparameterScalingType_Value_value = map[string]int32{
-	"AUTO":               0,
-	"LINEAR":             1,
-	"LOGARITHMIC":        2,
-	"REVERSELOGARITHMIC": 3,
-}
-
-func (x HyperparameterScalingType_Value) String() string {
-	return proto.EnumName(HyperparameterScalingType_Value_name, int32(x))
-}
-
-func (HyperparameterScalingType_Value) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_5f31fcc87eba0a70, []int{0, 0}
-}
-
-// HyperparameterScalingType defines the way to increase or decrease the value of the hyperparameter
-// For details, refer to: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-// See examples of these scaling type, refer to: https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-automatic-model-tuning-now-supports-random-search-and-hyperparameter-scaling/
-type HyperparameterScalingType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *HyperparameterScalingType) Reset()         { *m = HyperparameterScalingType{} }
-func (m *HyperparameterScalingType) String() string { return proto.CompactTextString(m) }
-func (*HyperparameterScalingType) ProtoMessage()    {}
-func (*HyperparameterScalingType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_5f31fcc87eba0a70, []int{0}
-}
-
-func (m *HyperparameterScalingType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_HyperparameterScalingType.Unmarshal(m, b)
-}
-func (m *HyperparameterScalingType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_HyperparameterScalingType.Marshal(b, m, deterministic)
-}
-func (m *HyperparameterScalingType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_HyperparameterScalingType.Merge(m, src)
-}
-func (m *HyperparameterScalingType) XXX_Size() int {
-	return xxx_messageInfo_HyperparameterScalingType.Size(m)
-}
-func (m *HyperparameterScalingType) XXX_DiscardUnknown() {
-	xxx_messageInfo_HyperparameterScalingType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_HyperparameterScalingType proto.InternalMessageInfo
-
-// ContinuousParameterRange refers to a continuous range of hyperparameter values, allowing
-// users to specify the search space of a floating-point hyperparameter
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-type ContinuousParameterRange struct {
-	MaxValue             float64                         `protobuf:"fixed64,1,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
-	MinValue             float64                         `protobuf:"fixed64,2,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
-	ScalingType          HyperparameterScalingType_Value `protobuf:"varint,3,opt,name=scaling_type,json=scalingType,proto3,enum=flyteidl.plugins.sagemaker.HyperparameterScalingType_Value" json:"scaling_type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
-	XXX_unrecognized     []byte                          `json:"-"`
-	XXX_sizecache        int32                           `json:"-"`
-}
-
-func (m *ContinuousParameterRange) Reset()         { *m = ContinuousParameterRange{} }
-func (m *ContinuousParameterRange) String() string { return proto.CompactTextString(m) }
-func (*ContinuousParameterRange) ProtoMessage()    {}
-func (*ContinuousParameterRange) Descriptor() ([]byte, []int) {
-	return fileDescriptor_5f31fcc87eba0a70, []int{1}
-}
-
-func (m *ContinuousParameterRange) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ContinuousParameterRange.Unmarshal(m, b)
-}
-func (m *ContinuousParameterRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ContinuousParameterRange.Marshal(b, m, deterministic)
-}
-func (m *ContinuousParameterRange) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ContinuousParameterRange.Merge(m, src)
-}
-func (m *ContinuousParameterRange) XXX_Size() int {
-	return xxx_messageInfo_ContinuousParameterRange.Size(m)
-}
-func (m *ContinuousParameterRange) XXX_DiscardUnknown() {
-	xxx_messageInfo_ContinuousParameterRange.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ContinuousParameterRange proto.InternalMessageInfo
-
-func (m *ContinuousParameterRange) GetMaxValue() float64 {
-	if m != nil {
-		return m.MaxValue
-	}
-	return 0
-}
-
-func (m *ContinuousParameterRange) GetMinValue() float64 {
-	if m != nil {
-		return m.MinValue
-	}
-	return 0
-}
-
-func (m *ContinuousParameterRange) GetScalingType() HyperparameterScalingType_Value {
-	if m != nil {
-		return m.ScalingType
-	}
-	return HyperparameterScalingType_AUTO
-}
-
-// IntegerParameterRange refers to a discrete range of hyperparameter values, allowing
-// users to specify the search space of an integer hyperparameter
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-type IntegerParameterRange struct {
-	MaxValue             int64                           `protobuf:"varint,1,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
-	MinValue             int64                           `protobuf:"varint,2,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
-	ScalingType          HyperparameterScalingType_Value `protobuf:"varint,3,opt,name=scaling_type,json=scalingType,proto3,enum=flyteidl.plugins.sagemaker.HyperparameterScalingType_Value" json:"scaling_type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
-	XXX_unrecognized     []byte                          `json:"-"`
-	XXX_sizecache        int32                           `json:"-"`
-}
-
-func (m *IntegerParameterRange) Reset()         { *m = IntegerParameterRange{} }
-func (m *IntegerParameterRange) String() string { return proto.CompactTextString(m) }
-func (*IntegerParameterRange) ProtoMessage()    {}
-func (*IntegerParameterRange) Descriptor() ([]byte, []int) {
-	return fileDescriptor_5f31fcc87eba0a70, []int{2}
-}
-
-func (m *IntegerParameterRange) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_IntegerParameterRange.Unmarshal(m, b)
-}
-func (m *IntegerParameterRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_IntegerParameterRange.Marshal(b, m, deterministic)
-}
-func (m *IntegerParameterRange) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_IntegerParameterRange.Merge(m, src)
-}
-func (m *IntegerParameterRange) XXX_Size() int {
-	return xxx_messageInfo_IntegerParameterRange.Size(m)
-}
-func (m *IntegerParameterRange) XXX_DiscardUnknown() {
-	xxx_messageInfo_IntegerParameterRange.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_IntegerParameterRange proto.InternalMessageInfo
-
-func (m *IntegerParameterRange) GetMaxValue() int64 {
-	if m != nil {
-		return m.MaxValue
-	}
-	return 0
-}
-
-func (m *IntegerParameterRange) GetMinValue() int64 {
-	if m != nil {
-		return m.MinValue
-	}
-	return 0
-}
-
-func (m *IntegerParameterRange) GetScalingType() HyperparameterScalingType_Value {
-	if m != nil {
-		return m.ScalingType
-	}
-	return HyperparameterScalingType_AUTO
-}
-
-// ContinuousParameterRange refers to a continuous range of hyperparameter values, allowing
-// users to specify the search space of a floating-point hyperparameter
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-type CategoricalParameterRange struct {
-	Values               []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *CategoricalParameterRange) Reset()         { *m = CategoricalParameterRange{} }
-func (m *CategoricalParameterRange) String() string { return proto.CompactTextString(m) }
-func (*CategoricalParameterRange) ProtoMessage()    {}
-func (*CategoricalParameterRange) Descriptor() ([]byte, []int) {
-	return fileDescriptor_5f31fcc87eba0a70, []int{3}
-}
-
-func (m *CategoricalParameterRange) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_CategoricalParameterRange.Unmarshal(m, b)
-}
-func (m *CategoricalParameterRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_CategoricalParameterRange.Marshal(b, m, deterministic)
-}
-func (m *CategoricalParameterRange) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CategoricalParameterRange.Merge(m, src)
-}
-func (m *CategoricalParameterRange) XXX_Size() int {
-	return xxx_messageInfo_CategoricalParameterRange.Size(m)
-}
-func (m *CategoricalParameterRange) XXX_DiscardUnknown() {
-	xxx_messageInfo_CategoricalParameterRange.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_CategoricalParameterRange proto.InternalMessageInfo
-
-func (m *CategoricalParameterRange) GetValues() []string {
-	if m != nil {
-		return m.Values
-	}
-	return nil
-}
-
-// ParameterRangeOneOf describes a single ParameterRange, which is a one-of structure that can be one of
-// the three possible types: ContinuousParameterRange, IntegerParameterRange, and CategoricalParameterRange.
-// This one-of structure in Flyte enables specifying a Parameter in a type-safe manner
-// See: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-type ParameterRangeOneOf struct {
-	// Types that are valid to be assigned to ParameterRangeType:
-	//	*ParameterRangeOneOf_ContinuousParameterRange
-	//	*ParameterRangeOneOf_IntegerParameterRange
-	//	*ParameterRangeOneOf_CategoricalParameterRange
-	ParameterRangeType   isParameterRangeOneOf_ParameterRangeType `protobuf_oneof:"parameter_range_type"`
-	XXX_NoUnkeyedLiteral struct{}                                 `json:"-"`
-	XXX_unrecognized     []byte                                   `json:"-"`
-	XXX_sizecache        int32                                    `json:"-"`
-}
-
-func (m *ParameterRangeOneOf) Reset()         { *m = ParameterRangeOneOf{} }
-func (m *ParameterRangeOneOf) String() string { return proto.CompactTextString(m) }
-func (*ParameterRangeOneOf) ProtoMessage()    {}
-func (*ParameterRangeOneOf) Descriptor() ([]byte, []int) {
-	return fileDescriptor_5f31fcc87eba0a70, []int{4}
-}
-
-func (m *ParameterRangeOneOf) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ParameterRangeOneOf.Unmarshal(m, b)
-}
-func (m *ParameterRangeOneOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ParameterRangeOneOf.Marshal(b, m, deterministic)
-}
-func (m *ParameterRangeOneOf) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ParameterRangeOneOf.Merge(m, src)
-}
-func (m *ParameterRangeOneOf) XXX_Size() int {
-	return xxx_messageInfo_ParameterRangeOneOf.Size(m)
-}
-func (m *ParameterRangeOneOf) XXX_DiscardUnknown() {
-	xxx_messageInfo_ParameterRangeOneOf.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ParameterRangeOneOf proto.InternalMessageInfo
-
-type isParameterRangeOneOf_ParameterRangeType interface {
-	isParameterRangeOneOf_ParameterRangeType()
-}
-
-type ParameterRangeOneOf_ContinuousParameterRange struct {
-	ContinuousParameterRange *ContinuousParameterRange `protobuf:"bytes,1,opt,name=continuous_parameter_range,json=continuousParameterRange,proto3,oneof"`
-}
-
-type ParameterRangeOneOf_IntegerParameterRange struct {
-	IntegerParameterRange *IntegerParameterRange `protobuf:"bytes,2,opt,name=integer_parameter_range,json=integerParameterRange,proto3,oneof"`
-}
-
-type ParameterRangeOneOf_CategoricalParameterRange struct {
-	CategoricalParameterRange *CategoricalParameterRange `protobuf:"bytes,3,opt,name=categorical_parameter_range,json=categoricalParameterRange,proto3,oneof"`
-}
-
-func (*ParameterRangeOneOf_ContinuousParameterRange) isParameterRangeOneOf_ParameterRangeType() {}
-
-func (*ParameterRangeOneOf_IntegerParameterRange) isParameterRangeOneOf_ParameterRangeType() {}
-
-func (*ParameterRangeOneOf_CategoricalParameterRange) isParameterRangeOneOf_ParameterRangeType() {}
-
-func (m *ParameterRangeOneOf) GetParameterRangeType() isParameterRangeOneOf_ParameterRangeType {
-	if m != nil {
-		return m.ParameterRangeType
-	}
-	return nil
-}
-
-func (m *ParameterRangeOneOf) GetContinuousParameterRange() *ContinuousParameterRange {
-	if x, ok := m.GetParameterRangeType().(*ParameterRangeOneOf_ContinuousParameterRange); ok {
-		return x.ContinuousParameterRange
-	}
-	return nil
-}
-
-func (m *ParameterRangeOneOf) GetIntegerParameterRange() *IntegerParameterRange {
-	if x, ok := m.GetParameterRangeType().(*ParameterRangeOneOf_IntegerParameterRange); ok {
-		return x.IntegerParameterRange
-	}
-	return nil
-}
-
-func (m *ParameterRangeOneOf) GetCategoricalParameterRange() *CategoricalParameterRange {
-	if x, ok := m.GetParameterRangeType().(*ParameterRangeOneOf_CategoricalParameterRange); ok {
-		return x.CategoricalParameterRange
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*ParameterRangeOneOf) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*ParameterRangeOneOf_ContinuousParameterRange)(nil),
-		(*ParameterRangeOneOf_IntegerParameterRange)(nil),
-		(*ParameterRangeOneOf_CategoricalParameterRange)(nil),
-	}
-}
-
-// ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-type ParameterRanges struct {
-	ParameterRangeMap    map[string]*ParameterRangeOneOf `protobuf:"bytes,1,rep,name=parameter_range_map,json=parameterRangeMap,proto3" json:"parameter_range_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
-	XXX_unrecognized     []byte                          `json:"-"`
-	XXX_sizecache        int32                           `json:"-"`
-}
-
-func (m *ParameterRanges) Reset()         { *m = ParameterRanges{} }
-func (m *ParameterRanges) String() string { return proto.CompactTextString(m) }
-func (*ParameterRanges) ProtoMessage()    {}
-func (*ParameterRanges) Descriptor() ([]byte, []int) {
-	return fileDescriptor_5f31fcc87eba0a70, []int{5}
-}
-
-func (m *ParameterRanges) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ParameterRanges.Unmarshal(m, b)
-}
-func (m *ParameterRanges) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ParameterRanges.Marshal(b, m, deterministic)
-}
-func (m *ParameterRanges) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ParameterRanges.Merge(m, src)
-}
-func (m *ParameterRanges) XXX_Size() int {
-	return xxx_messageInfo_ParameterRanges.Size(m)
-}
-func (m *ParameterRanges) XXX_DiscardUnknown() {
-	xxx_messageInfo_ParameterRanges.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ParameterRanges proto.InternalMessageInfo
-
-func (m *ParameterRanges) GetParameterRangeMap() map[string]*ParameterRangeOneOf {
-	if m != nil {
-		return m.ParameterRangeMap
-	}
-	return nil
-}
-
-func init() {
-	proto.RegisterEnum("flyteidl.plugins.sagemaker.HyperparameterScalingType_Value", HyperparameterScalingType_Value_name, HyperparameterScalingType_Value_value)
-	proto.RegisterType((*HyperparameterScalingType)(nil), "flyteidl.plugins.sagemaker.HyperparameterScalingType")
-	proto.RegisterType((*ContinuousParameterRange)(nil), "flyteidl.plugins.sagemaker.ContinuousParameterRange")
-	proto.RegisterType((*IntegerParameterRange)(nil), "flyteidl.plugins.sagemaker.IntegerParameterRange")
-	proto.RegisterType((*CategoricalParameterRange)(nil), "flyteidl.plugins.sagemaker.CategoricalParameterRange")
-	proto.RegisterType((*ParameterRangeOneOf)(nil), "flyteidl.plugins.sagemaker.ParameterRangeOneOf")
-	proto.RegisterType((*ParameterRanges)(nil), "flyteidl.plugins.sagemaker.ParameterRanges")
-	proto.RegisterMapType((map[string]*ParameterRangeOneOf)(nil), "flyteidl.plugins.sagemaker.ParameterRanges.ParameterRangeMapEntry")
-}
-
-func init() {
-	proto.RegisterFile("flyteidl/plugins/sagemaker/parameter_ranges.proto", fileDescriptor_5f31fcc87eba0a70)
-}
-
-var fileDescriptor_5f31fcc87eba0a70 = []byte{
-	// 516 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x41, 0x6f, 0xd3, 0x30,
-	0x14, 0x6e, 0x1a, 0x56, 0xad, 0xaf, 0x88, 0x15, 0x8f, 0x95, 0xb6, 0xbb, 0x54, 0x3d, 0xf5, 0x42,
-	0xa2, 0x75, 0x20, 0x21, 0x10, 0x42, 0x6d, 0x15, 0x68, 0xa5, 0x8d, 0x22, 0xaf, 0xec, 0xc0, 0x81,
-	0xca, 0x0d, 0x5e, 0xb0, 0x9a, 0x38, 0x96, 0xe3, 0xc0, 0xf2, 0x13, 0xf8, 0x39, 0x48, 0xfc, 0x3c,
-	0x0e, 0xa8, 0x4e, 0xd7, 0x6d, 0x59, 0x13, 0x38, 0xed, 0x66, 0xfb, 0xbd, 0xe7, 0xef, 0x7b, 0xef,
-	0xfb, 0xf4, 0xe0, 0xe8, 0xc2, 0x4f, 0x14, 0x65, 0x5f, 0x7d, 0x5b, 0xf8, 0xb1, 0xc7, 0x78, 0x64,
-	0x47, 0xc4, 0xa3, 0x01, 0x59, 0x52, 0x69, 0x0b, 0x22, 0x49, 0x40, 0x15, 0x95, 0x73, 0x49, 0xb8,
-	0x47, 0x23, 0x4b, 0xc8, 0x50, 0x85, 0xa8, 0x7d, 0x55, 0x62, 0xad, 0x4b, 0xac, 0x4d, 0x49, 0xd7,
-	0x85, 0xd6, 0x38, 0x11, 0x54, 0x6e, 0x4a, 0xcf, 0x5c, 0xe2, 0x33, 0xee, 0xcd, 0x12, 0x41, 0xbb,
-	0xef, 0x60, 0xe7, 0x9c, 0xf8, 0x31, 0x45, 0xbb, 0xf0, 0x60, 0xf0, 0x69, 0x36, 0xad, 0x97, 0x10,
-	0x40, 0xe5, 0x64, 0xf2, 0xc1, 0x19, 0xe0, 0xba, 0x81, 0xf6, 0xa0, 0x76, 0x32, 0x7d, 0x3f, 0xc0,
-	0x93, 0xd9, 0xf8, 0x74, 0x32, 0xaa, 0x97, 0x51, 0x03, 0x10, 0x76, 0xce, 0x1d, 0x7c, 0xe6, 0xdc,
-	0x7c, 0x37, 0xbb, 0xbf, 0x0d, 0x68, 0x8e, 0x42, 0xae, 0x18, 0x8f, 0xc3, 0x38, 0xfa, 0x78, 0x05,
-	0x85, 0x57, 0x24, 0xd1, 0x21, 0x54, 0x03, 0x72, 0x39, 0xff, 0xbe, 0x02, 0x6a, 0x1a, 0x1d, 0xa3,
-	0x67, 0xe0, 0xdd, 0x80, 0x5c, 0xa6, 0xc0, 0xab, 0x20, 0xe3, 0xeb, 0x60, 0x79, 0x1d, 0x64, 0x3c,
-	0x0d, 0x7e, 0x81, 0x87, 0x51, 0xca, 0x76, 0xae, 0x12, 0x41, 0x9b, 0x66, 0xc7, 0xe8, 0x3d, 0xea,
-	0xbf, 0xb6, 0xf2, 0xdb, 0xb5, 0x72, 0x7b, 0xb5, 0xf4, 0x97, 0xb8, 0x16, 0xdd, 0x68, 0xff, 0x97,
-	0x01, 0x07, 0x13, 0xae, 0xa8, 0x47, 0xe5, 0xbf, 0x38, 0x9b, 0x45, 0x9c, 0xcd, 0x7b, 0xe4, 0x7c,
-	0x0c, 0xad, 0x11, 0x51, 0xd4, 0x0b, 0x25, 0x73, 0x89, 0x9f, 0xa1, 0xdd, 0x80, 0x8a, 0x66, 0x15,
-	0x35, 0x8d, 0x8e, 0xd9, 0xab, 0xe2, 0xf5, 0xad, 0xfb, 0xd3, 0x84, 0xfd, 0xdb, 0xa9, 0x53, 0x4e,
-	0xa7, 0x17, 0x48, 0x41, 0xdb, 0xdd, 0xc8, 0x36, 0xcf, 0xb8, 0x4b, 0xf7, 0x5d, 0xeb, 0x3f, 0x2f,
-	0xa2, 0x9e, 0x27, 0xfa, 0xb8, 0x84, 0x9b, 0x6e, 0x9e, 0x21, 0x96, 0xf0, 0x94, 0xa5, 0x53, 0xbf,
-	0x03, 0x59, 0xd6, 0x90, 0x47, 0x45, 0x90, 0x5b, 0x05, 0x1b, 0x97, 0xf0, 0x01, 0xdb, 0xaa, 0xe4,
-	0x0f, 0x38, 0x74, 0xaf, 0xe7, 0x75, 0x07, 0xd0, 0xd4, 0x80, 0x2f, 0x0a, 0x7b, 0xcc, 0x1b, 0xf7,
-	0xb8, 0x84, 0x5b, 0x6e, 0x5e, 0x70, 0xd8, 0x80, 0x27, 0x19, 0x30, 0x6d, 0x88, 0xee, 0x1f, 0x03,
-	0xf6, 0x6e, 0xa7, 0x46, 0x48, 0xc2, 0x7e, 0x36, 0x37, 0x20, 0x42, 0x8b, 0x58, 0xeb, 0x0f, 0x8b,
-	0xc8, 0x65, 0x7e, 0xca, 0xdc, 0x4f, 0x89, 0x70, 0xb8, 0x92, 0x09, 0x7e, 0x2c, 0xb2, 0xef, 0xed,
-	0x18, 0x1a, 0xdb, 0x93, 0x51, 0x1d, 0xcc, 0x25, 0x4d, 0xb4, 0xfc, 0x55, 0xbc, 0x3a, 0x22, 0x07,
-	0x76, 0xae, 0xdd, 0x5e, 0xeb, 0xdb, 0xff, 0xcf, 0x48, 0xfb, 0x0c, 0xa7, 0xd5, 0xaf, 0xca, 0x2f,
-	0x8d, 0xe1, 0xdb, 0xcf, 0x6f, 0x3c, 0xa6, 0xbe, 0xc5, 0x0b, 0xcb, 0x0d, 0x03, 0x5b, 0xff, 0x13,
-	0x4a, 0x2f, 0x3d, 0xd8, 0x9b, 0xd5, 0xe7, 0x51, 0x6e, 0x8b, 0xc5, 0x33, 0x2f, 0xb4, 0xb3, 0xdb,
-	0x70, 0x51, 0xd1, 0x3b, 0xef, 0xf8, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf1, 0xad, 0x19, 0x6c,
-	0x28, 0x05, 0x00, 0x00,
-}
diff --git a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/parameter_ranges.pb.validate.go b/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/parameter_ranges.pb.validate.go
deleted file mode 100644
index 309486134c..0000000000
--- a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/parameter_ranges.pb.validate.go
+++ /dev/null
@@ -1,506 +0,0 @@
-// Code generated by protoc-gen-validate. DO NOT EDIT.
-// source: flyteidl/plugins/sagemaker/parameter_ranges.proto
-
-package plugins
-
-import (
-	"bytes"
-	"errors"
-	"fmt"
-	"net"
-	"net/mail"
-	"net/url"
-	"regexp"
-	"strings"
-	"time"
-	"unicode/utf8"
-
-	"github.com/golang/protobuf/ptypes"
-)
-
-// ensure the imports are used
-var (
-	_ = bytes.MinRead
-	_ = errors.New("")
-	_ = fmt.Print
-	_ = utf8.UTFMax
-	_ = (*regexp.Regexp)(nil)
-	_ = (*strings.Reader)(nil)
-	_ = net.IPv4len
-	_ = time.Duration(0)
-	_ = (*url.URL)(nil)
-	_ = (*mail.Address)(nil)
-	_ = ptypes.DynamicAny{}
-)
-
-// define the regex for a UUID once up-front
-var _parameter_ranges_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$")
-
-// Validate checks the field values on HyperparameterScalingType with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *HyperparameterScalingType) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	return nil
-}
-
-// HyperparameterScalingTypeValidationError is the validation error returned by
-// HyperparameterScalingType.Validate if the designated constraints aren't met.
-type HyperparameterScalingTypeValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e HyperparameterScalingTypeValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e HyperparameterScalingTypeValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e HyperparameterScalingTypeValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e HyperparameterScalingTypeValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e HyperparameterScalingTypeValidationError) ErrorName() string {
-	return "HyperparameterScalingTypeValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e HyperparameterScalingTypeValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sHyperparameterScalingType.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = HyperparameterScalingTypeValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = HyperparameterScalingTypeValidationError{}
-
-// Validate checks the field values on ContinuousParameterRange with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *ContinuousParameterRange) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	// no validation rules for MaxValue
-
-	// no validation rules for MinValue
-
-	// no validation rules for ScalingType
-
-	return nil
-}
-
-// ContinuousParameterRangeValidationError is the validation error returned by
-// ContinuousParameterRange.Validate if the designated constraints aren't met.
-type ContinuousParameterRangeValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e ContinuousParameterRangeValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e ContinuousParameterRangeValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e ContinuousParameterRangeValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e ContinuousParameterRangeValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e ContinuousParameterRangeValidationError) ErrorName() string {
-	return "ContinuousParameterRangeValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e ContinuousParameterRangeValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sContinuousParameterRange.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = ContinuousParameterRangeValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = ContinuousParameterRangeValidationError{}
-
-// Validate checks the field values on IntegerParameterRange with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *IntegerParameterRange) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	// no validation rules for MaxValue
-
-	// no validation rules for MinValue
-
-	// no validation rules for ScalingType
-
-	return nil
-}
-
-// IntegerParameterRangeValidationError is the validation error returned by
-// IntegerParameterRange.Validate if the designated constraints aren't met.
-type IntegerParameterRangeValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e IntegerParameterRangeValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e IntegerParameterRangeValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e IntegerParameterRangeValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e IntegerParameterRangeValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e IntegerParameterRangeValidationError) ErrorName() string {
-	return "IntegerParameterRangeValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e IntegerParameterRangeValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sIntegerParameterRange.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = IntegerParameterRangeValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = IntegerParameterRangeValidationError{}
-
-// Validate checks the field values on CategoricalParameterRange with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *CategoricalParameterRange) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	return nil
-}
-
-// CategoricalParameterRangeValidationError is the validation error returned by
-// CategoricalParameterRange.Validate if the designated constraints aren't met.
-type CategoricalParameterRangeValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e CategoricalParameterRangeValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e CategoricalParameterRangeValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e CategoricalParameterRangeValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e CategoricalParameterRangeValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e CategoricalParameterRangeValidationError) ErrorName() string {
-	return "CategoricalParameterRangeValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e CategoricalParameterRangeValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sCategoricalParameterRange.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = CategoricalParameterRangeValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = CategoricalParameterRangeValidationError{}
-
-// Validate checks the field values on ParameterRangeOneOf with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *ParameterRangeOneOf) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	switch m.ParameterRangeType.(type) {
-
-	case *ParameterRangeOneOf_ContinuousParameterRange:
-
-		if v, ok := interface{}(m.GetContinuousParameterRange()).(interface{ Validate() error }); ok {
-			if err := v.Validate(); err != nil {
-				return ParameterRangeOneOfValidationError{
-					field:  "ContinuousParameterRange",
-					reason: "embedded message failed validation",
-					cause:  err,
-				}
-			}
-		}
-
-	case *ParameterRangeOneOf_IntegerParameterRange:
-
-		if v, ok := interface{}(m.GetIntegerParameterRange()).(interface{ Validate() error }); ok {
-			if err := v.Validate(); err != nil {
-				return ParameterRangeOneOfValidationError{
-					field:  "IntegerParameterRange",
-					reason: "embedded message failed validation",
-					cause:  err,
-				}
-			}
-		}
-
-	case *ParameterRangeOneOf_CategoricalParameterRange:
-
-		if v, ok := interface{}(m.GetCategoricalParameterRange()).(interface{ Validate() error }); ok {
-			if err := v.Validate(); err != nil {
-				return ParameterRangeOneOfValidationError{
-					field:  "CategoricalParameterRange",
-					reason: "embedded message failed validation",
-					cause:  err,
-				}
-			}
-		}
-
-	}
-
-	return nil
-}
-
-// ParameterRangeOneOfValidationError is the validation error returned by
-// ParameterRangeOneOf.Validate if the designated constraints aren't met.
-type ParameterRangeOneOfValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e ParameterRangeOneOfValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e ParameterRangeOneOfValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e ParameterRangeOneOfValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e ParameterRangeOneOfValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e ParameterRangeOneOfValidationError) ErrorName() string {
-	return "ParameterRangeOneOfValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e ParameterRangeOneOfValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sParameterRangeOneOf.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = ParameterRangeOneOfValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = ParameterRangeOneOfValidationError{}
-
-// Validate checks the field values on ParameterRanges with the rules defined
-// in the proto definition for this message. If any rules are violated, an
-// error is returned.
-func (m *ParameterRanges) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	for key, val := range m.GetParameterRangeMap() {
-		_ = val
-
-		// no validation rules for ParameterRangeMap[key]
-
-		if v, ok := interface{}(val).(interface{ Validate() error }); ok {
-			if err := v.Validate(); err != nil {
-				return ParameterRangesValidationError{
-					field:  fmt.Sprintf("ParameterRangeMap[%v]", key),
-					reason: "embedded message failed validation",
-					cause:  err,
-				}
-			}
-		}
-
-	}
-
-	return nil
-}
-
-// ParameterRangesValidationError is the validation error returned by
-// ParameterRanges.Validate if the designated constraints aren't met.
-type ParameterRangesValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e ParameterRangesValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e ParameterRangesValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e ParameterRangesValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e ParameterRangesValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e ParameterRangesValidationError) ErrorName() string { return "ParameterRangesValidationError" }
-
-// Error satisfies the builtin error interface
-func (e ParameterRangesValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sParameterRanges.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = ParameterRangesValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = ParameterRangesValidationError{}
diff --git a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/training_job.pb.go b/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/training_job.pb.go
deleted file mode 100644
index 04309161a9..0000000000
--- a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/training_job.pb.go
+++ /dev/null
@@ -1,591 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// source: flyteidl/plugins/sagemaker/training_job.proto
-
-package plugins
-
-import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	_ "github.com/golang/protobuf/ptypes/duration"
-	math "math"
-)
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
-
-type InputMode_Value int32
-
-const (
-	InputMode_FILE InputMode_Value = 0
-	InputMode_PIPE InputMode_Value = 1
-)
-
-var InputMode_Value_name = map[int32]string{
-	0: "FILE",
-	1: "PIPE",
-}
-
-var InputMode_Value_value = map[string]int32{
-	"FILE": 0,
-	"PIPE": 1,
-}
-
-func (x InputMode_Value) String() string {
-	return proto.EnumName(InputMode_Value_name, int32(x))
-}
-
-func (InputMode_Value) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{0, 0}
-}
-
-type AlgorithmName_Value int32
-
-const (
-	AlgorithmName_CUSTOM  AlgorithmName_Value = 0
-	AlgorithmName_XGBOOST AlgorithmName_Value = 1
-)
-
-var AlgorithmName_Value_name = map[int32]string{
-	0: "CUSTOM",
-	1: "XGBOOST",
-}
-
-var AlgorithmName_Value_value = map[string]int32{
-	"CUSTOM":  0,
-	"XGBOOST": 1,
-}
-
-func (x AlgorithmName_Value) String() string {
-	return proto.EnumName(AlgorithmName_Value_name, int32(x))
-}
-
-func (AlgorithmName_Value) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{1, 0}
-}
-
-type InputContentType_Value int32
-
-const (
-	InputContentType_TEXT_CSV InputContentType_Value = 0
-)
-
-var InputContentType_Value_name = map[int32]string{
-	0: "TEXT_CSV",
-}
-
-var InputContentType_Value_value = map[string]int32{
-	"TEXT_CSV": 0,
-}
-
-func (x InputContentType_Value) String() string {
-	return proto.EnumName(InputContentType_Value_name, int32(x))
-}
-
-func (InputContentType_Value) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{2, 0}
-}
-
-type DistributedProtocol_Value int32
-
-const (
-	// Use this value if the user wishes to use framework-native distributed training interfaces.
-	// If this value is used, Flyte won't configure SageMaker to initialize unnecessary components such as
-	// OpenMPI or Parameter Server.
-	DistributedProtocol_UNSPECIFIED DistributedProtocol_Value = 0
-	// Use this value if the user wishes to use MPI as the underlying protocol for her distributed training job
-	// MPI is a framework-agnostic distributed protocol. It has multiple implementations. Currently, we have only
-	// tested the OpenMPI implementation, which is the recommended implementation for Horovod.
-	DistributedProtocol_MPI DistributedProtocol_Value = 1
-)
-
-var DistributedProtocol_Value_name = map[int32]string{
-	0: "UNSPECIFIED",
-	1: "MPI",
-}
-
-var DistributedProtocol_Value_value = map[string]int32{
-	"UNSPECIFIED": 0,
-	"MPI":         1,
-}
-
-func (x DistributedProtocol_Value) String() string {
-	return proto.EnumName(DistributedProtocol_Value_name, int32(x))
-}
-
-func (DistributedProtocol_Value) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{5, 0}
-}
-
-// The input mode that the algorithm supports. When using the File input mode, SageMaker downloads
-// the training data from S3 to the provisioned ML storage Volume, and mounts the directory to docker
-// volume for training container. When using Pipe input mode, Amazon SageMaker streams data directly
-// from S3 to the container.
-// See: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-// For the input modes that different SageMaker algorithms support, see:
-// https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-type InputMode struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *InputMode) Reset()         { *m = InputMode{} }
-func (m *InputMode) String() string { return proto.CompactTextString(m) }
-func (*InputMode) ProtoMessage()    {}
-func (*InputMode) Descriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{0}
-}
-
-func (m *InputMode) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_InputMode.Unmarshal(m, b)
-}
-func (m *InputMode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_InputMode.Marshal(b, m, deterministic)
-}
-func (m *InputMode) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_InputMode.Merge(m, src)
-}
-func (m *InputMode) XXX_Size() int {
-	return xxx_messageInfo_InputMode.Size(m)
-}
-func (m *InputMode) XXX_DiscardUnknown() {
-	xxx_messageInfo_InputMode.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_InputMode proto.InternalMessageInfo
-
-// The algorithm name is used for deciding which pre-built image to point to.
-// This is only required for use cases where SageMaker's built-in algorithm mode is used.
-// While we currently only support a subset of the algorithms, more will be added to the list.
-// See: https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
-type AlgorithmName struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AlgorithmName) Reset()         { *m = AlgorithmName{} }
-func (m *AlgorithmName) String() string { return proto.CompactTextString(m) }
-func (*AlgorithmName) ProtoMessage()    {}
-func (*AlgorithmName) Descriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{1}
-}
-
-func (m *AlgorithmName) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlgorithmName.Unmarshal(m, b)
-}
-func (m *AlgorithmName) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlgorithmName.Marshal(b, m, deterministic)
-}
-func (m *AlgorithmName) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlgorithmName.Merge(m, src)
-}
-func (m *AlgorithmName) XXX_Size() int {
-	return xxx_messageInfo_AlgorithmName.Size(m)
-}
-func (m *AlgorithmName) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlgorithmName.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlgorithmName proto.InternalMessageInfo
-
-// Specifies the type of file for input data. Different SageMaker built-in algorithms require different file types of input data
-// See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-// https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-type InputContentType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *InputContentType) Reset()         { *m = InputContentType{} }
-func (m *InputContentType) String() string { return proto.CompactTextString(m) }
-func (*InputContentType) ProtoMessage()    {}
-func (*InputContentType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{2}
-}
-
-func (m *InputContentType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_InputContentType.Unmarshal(m, b)
-}
-func (m *InputContentType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_InputContentType.Marshal(b, m, deterministic)
-}
-func (m *InputContentType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_InputContentType.Merge(m, src)
-}
-func (m *InputContentType) XXX_Size() int {
-	return xxx_messageInfo_InputContentType.Size(m)
-}
-func (m *InputContentType) XXX_DiscardUnknown() {
-	xxx_messageInfo_InputContentType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_InputContentType proto.InternalMessageInfo
-
-// Specifies a metric that the training algorithm writes to stderr or stdout.
-// This object is a pass-through.
-// See this for details: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDefinition.html
-type MetricDefinition struct {
-	// User-defined name of the metric
-	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	// SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-	Regex                string   `protobuf:"bytes,2,opt,name=regex,proto3" json:"regex,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *MetricDefinition) Reset()         { *m = MetricDefinition{} }
-func (m *MetricDefinition) String() string { return proto.CompactTextString(m) }
-func (*MetricDefinition) ProtoMessage()    {}
-func (*MetricDefinition) Descriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{3}
-}
-
-func (m *MetricDefinition) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MetricDefinition.Unmarshal(m, b)
-}
-func (m *MetricDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MetricDefinition.Marshal(b, m, deterministic)
-}
-func (m *MetricDefinition) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MetricDefinition.Merge(m, src)
-}
-func (m *MetricDefinition) XXX_Size() int {
-	return xxx_messageInfo_MetricDefinition.Size(m)
-}
-func (m *MetricDefinition) XXX_DiscardUnknown() {
-	xxx_messageInfo_MetricDefinition.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MetricDefinition proto.InternalMessageInfo
-
-func (m *MetricDefinition) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-func (m *MetricDefinition) GetRegex() string {
-	if m != nil {
-		return m.Regex
-	}
-	return ""
-}
-
-// Specifies the training algorithm to be used in the training job
-// This object is mostly a pass-through, with a couple of exceptions include: (1) in Flyte, users don't need to specify
-// TrainingImage; either use the built-in algorithm mode by using Flytekit's Simple Training Job and specifying an algorithm
-// name and an algorithm version or (2) when users want to supply custom algorithms they should set algorithm_name field to
-// CUSTOM. In this case, the value of the algorithm_version field has no effect
-// For pass-through use cases: refer to this AWS official document for more details
-// https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-type AlgorithmSpecification struct {
-	// The input mode can be either PIPE or FILE
-	InputMode InputMode_Value `protobuf:"varint,1,opt,name=input_mode,json=inputMode,proto3,enum=flyteidl.plugins.sagemaker.InputMode_Value" json:"input_mode,omitempty"`
-	// The algorithm name is used for deciding which pre-built image to point to
-	AlgorithmName AlgorithmName_Value `protobuf:"varint,2,opt,name=algorithm_name,json=algorithmName,proto3,enum=flyteidl.plugins.sagemaker.AlgorithmName_Value" json:"algorithm_name,omitempty"`
-	// The algorithm version field is used for deciding which pre-built image to point to
-	// This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-	AlgorithmVersion string `protobuf:"bytes,3,opt,name=algorithm_version,json=algorithmVersion,proto3" json:"algorithm_version,omitempty"`
-	// A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-	// See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-	// and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-	MetricDefinitions []*MetricDefinition `protobuf:"bytes,4,rep,name=metric_definitions,json=metricDefinitions,proto3" json:"metric_definitions,omitempty"`
-	// The content type of the input
-	// See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-	// https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-	InputContentType     InputContentType_Value `protobuf:"varint,5,opt,name=input_content_type,json=inputContentType,proto3,enum=flyteidl.plugins.sagemaker.InputContentType_Value" json:"input_content_type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
-	XXX_unrecognized     []byte                 `json:"-"`
-	XXX_sizecache        int32                  `json:"-"`
-}
-
-func (m *AlgorithmSpecification) Reset()         { *m = AlgorithmSpecification{} }
-func (m *AlgorithmSpecification) String() string { return proto.CompactTextString(m) }
-func (*AlgorithmSpecification) ProtoMessage()    {}
-func (*AlgorithmSpecification) Descriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{4}
-}
-
-func (m *AlgorithmSpecification) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlgorithmSpecification.Unmarshal(m, b)
-}
-func (m *AlgorithmSpecification) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlgorithmSpecification.Marshal(b, m, deterministic)
-}
-func (m *AlgorithmSpecification) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlgorithmSpecification.Merge(m, src)
-}
-func (m *AlgorithmSpecification) XXX_Size() int {
-	return xxx_messageInfo_AlgorithmSpecification.Size(m)
-}
-func (m *AlgorithmSpecification) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlgorithmSpecification.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlgorithmSpecification proto.InternalMessageInfo
-
-func (m *AlgorithmSpecification) GetInputMode() InputMode_Value {
-	if m != nil {
-		return m.InputMode
-	}
-	return InputMode_FILE
-}
-
-func (m *AlgorithmSpecification) GetAlgorithmName() AlgorithmName_Value {
-	if m != nil {
-		return m.AlgorithmName
-	}
-	return AlgorithmName_CUSTOM
-}
-
-func (m *AlgorithmSpecification) GetAlgorithmVersion() string {
-	if m != nil {
-		return m.AlgorithmVersion
-	}
-	return ""
-}
-
-func (m *AlgorithmSpecification) GetMetricDefinitions() []*MetricDefinition {
-	if m != nil {
-		return m.MetricDefinitions
-	}
-	return nil
-}
-
-func (m *AlgorithmSpecification) GetInputContentType() InputContentType_Value {
-	if m != nil {
-		return m.InputContentType
-	}
-	return InputContentType_TEXT_CSV
-}
-
-// When enabling distributed training on a training job, the user should use this message to tell Flyte and SageMaker
-// what kind of distributed protocol he/she wants to use to distribute the work.
-type DistributedProtocol struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *DistributedProtocol) Reset()         { *m = DistributedProtocol{} }
-func (m *DistributedProtocol) String() string { return proto.CompactTextString(m) }
-func (*DistributedProtocol) ProtoMessage()    {}
-func (*DistributedProtocol) Descriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{5}
-}
-
-func (m *DistributedProtocol) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DistributedProtocol.Unmarshal(m, b)
-}
-func (m *DistributedProtocol) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DistributedProtocol.Marshal(b, m, deterministic)
-}
-func (m *DistributedProtocol) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DistributedProtocol.Merge(m, src)
-}
-func (m *DistributedProtocol) XXX_Size() int {
-	return xxx_messageInfo_DistributedProtocol.Size(m)
-}
-func (m *DistributedProtocol) XXX_DiscardUnknown() {
-	xxx_messageInfo_DistributedProtocol.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DistributedProtocol proto.InternalMessageInfo
-
-// TrainingJobResourceConfig is a pass-through, specifying the instance type to use for the training job, the
-// number of instances to launch, and the size of the ML storage volume the user wants to provision
-// Refer to SageMaker official doc for more details: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
-type TrainingJobResourceConfig struct {
-	// The number of ML compute instances to use. For distributed training, provide a value greater than 1.
-	InstanceCount int64 `protobuf:"varint,1,opt,name=instance_count,json=instanceCount,proto3" json:"instance_count,omitempty"`
-	// The ML compute instance type
-	InstanceType string `protobuf:"bytes,2,opt,name=instance_type,json=instanceType,proto3" json:"instance_type,omitempty"`
-	// The size of the ML storage volume that you want to provision.
-	VolumeSizeInGb int64 `protobuf:"varint,3,opt,name=volume_size_in_gb,json=volumeSizeInGb,proto3" json:"volume_size_in_gb,omitempty"`
-	// When users specify an instance_count > 1, Flyte will try to configure SageMaker to enable distributed training.
-	// If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-	// field should be set to the corresponding enum value
-	DistributedProtocol  DistributedProtocol_Value `protobuf:"varint,4,opt,name=distributed_protocol,json=distributedProtocol,proto3,enum=flyteidl.plugins.sagemaker.DistributedProtocol_Value" json:"distributed_protocol,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
-	XXX_unrecognized     []byte                    `json:"-"`
-	XXX_sizecache        int32                     `json:"-"`
-}
-
-func (m *TrainingJobResourceConfig) Reset()         { *m = TrainingJobResourceConfig{} }
-func (m *TrainingJobResourceConfig) String() string { return proto.CompactTextString(m) }
-func (*TrainingJobResourceConfig) ProtoMessage()    {}
-func (*TrainingJobResourceConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{6}
-}
-
-func (m *TrainingJobResourceConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TrainingJobResourceConfig.Unmarshal(m, b)
-}
-func (m *TrainingJobResourceConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TrainingJobResourceConfig.Marshal(b, m, deterministic)
-}
-func (m *TrainingJobResourceConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TrainingJobResourceConfig.Merge(m, src)
-}
-func (m *TrainingJobResourceConfig) XXX_Size() int {
-	return xxx_messageInfo_TrainingJobResourceConfig.Size(m)
-}
-func (m *TrainingJobResourceConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_TrainingJobResourceConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TrainingJobResourceConfig proto.InternalMessageInfo
-
-func (m *TrainingJobResourceConfig) GetInstanceCount() int64 {
-	if m != nil {
-		return m.InstanceCount
-	}
-	return 0
-}
-
-func (m *TrainingJobResourceConfig) GetInstanceType() string {
-	if m != nil {
-		return m.InstanceType
-	}
-	return ""
-}
-
-func (m *TrainingJobResourceConfig) GetVolumeSizeInGb() int64 {
-	if m != nil {
-		return m.VolumeSizeInGb
-	}
-	return 0
-}
-
-func (m *TrainingJobResourceConfig) GetDistributedProtocol() DistributedProtocol_Value {
-	if m != nil {
-		return m.DistributedProtocol
-	}
-	return DistributedProtocol_UNSPECIFIED
-}
-
-// The spec of a training job. This is mostly a pass-through object
-// https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
-type TrainingJob struct {
-	AlgorithmSpecification    *AlgorithmSpecification    `protobuf:"bytes,1,opt,name=algorithm_specification,json=algorithmSpecification,proto3" json:"algorithm_specification,omitempty"`
-	TrainingJobResourceConfig *TrainingJobResourceConfig `protobuf:"bytes,2,opt,name=training_job_resource_config,json=trainingJobResourceConfig,proto3" json:"training_job_resource_config,omitempty"`
-	XXX_NoUnkeyedLiteral      struct{}                   `json:"-"`
-	XXX_unrecognized          []byte                     `json:"-"`
-	XXX_sizecache             int32                      `json:"-"`
-}
-
-func (m *TrainingJob) Reset()         { *m = TrainingJob{} }
-func (m *TrainingJob) String() string { return proto.CompactTextString(m) }
-func (*TrainingJob) ProtoMessage()    {}
-func (*TrainingJob) Descriptor() ([]byte, []int) {
-	return fileDescriptor_6a68f64d8fd9fe30, []int{7}
-}
-
-func (m *TrainingJob) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TrainingJob.Unmarshal(m, b)
-}
-func (m *TrainingJob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TrainingJob.Marshal(b, m, deterministic)
-}
-func (m *TrainingJob) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TrainingJob.Merge(m, src)
-}
-func (m *TrainingJob) XXX_Size() int {
-	return xxx_messageInfo_TrainingJob.Size(m)
-}
-func (m *TrainingJob) XXX_DiscardUnknown() {
-	xxx_messageInfo_TrainingJob.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TrainingJob proto.InternalMessageInfo
-
-func (m *TrainingJob) GetAlgorithmSpecification() *AlgorithmSpecification {
-	if m != nil {
-		return m.AlgorithmSpecification
-	}
-	return nil
-}
-
-func (m *TrainingJob) GetTrainingJobResourceConfig() *TrainingJobResourceConfig {
-	if m != nil {
-		return m.TrainingJobResourceConfig
-	}
-	return nil
-}
-
-func init() {
-	proto.RegisterEnum("flyteidl.plugins.sagemaker.InputMode_Value", InputMode_Value_name, InputMode_Value_value)
-	proto.RegisterEnum("flyteidl.plugins.sagemaker.AlgorithmName_Value", AlgorithmName_Value_name, AlgorithmName_Value_value)
-	proto.RegisterEnum("flyteidl.plugins.sagemaker.InputContentType_Value", InputContentType_Value_name, InputContentType_Value_value)
-	proto.RegisterEnum("flyteidl.plugins.sagemaker.DistributedProtocol_Value", DistributedProtocol_Value_name, DistributedProtocol_Value_value)
-	proto.RegisterType((*InputMode)(nil), "flyteidl.plugins.sagemaker.InputMode")
-	proto.RegisterType((*AlgorithmName)(nil), "flyteidl.plugins.sagemaker.AlgorithmName")
-	proto.RegisterType((*InputContentType)(nil), "flyteidl.plugins.sagemaker.InputContentType")
-	proto.RegisterType((*MetricDefinition)(nil), "flyteidl.plugins.sagemaker.MetricDefinition")
-	proto.RegisterType((*AlgorithmSpecification)(nil), "flyteidl.plugins.sagemaker.AlgorithmSpecification")
-	proto.RegisterType((*DistributedProtocol)(nil), "flyteidl.plugins.sagemaker.DistributedProtocol")
-	proto.RegisterType((*TrainingJobResourceConfig)(nil), "flyteidl.plugins.sagemaker.TrainingJobResourceConfig")
-	proto.RegisterType((*TrainingJob)(nil), "flyteidl.plugins.sagemaker.TrainingJob")
-}
-
-func init() {
-	proto.RegisterFile("flyteidl/plugins/sagemaker/training_job.proto", fileDescriptor_6a68f64d8fd9fe30)
-}
-
-var fileDescriptor_6a68f64d8fd9fe30 = []byte{
-	// 662 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x94, 0x5d, 0x4f, 0xdb, 0x3c,
-	0x14, 0xc7, 0x5b, 0x5a, 0xde, 0x4e, 0xa1, 0x4f, 0x30, 0x3c, 0x3c, 0x85, 0x67, 0x9a, 0x58, 0xa6,
-	0x49, 0x20, 0x46, 0xa2, 0x31, 0x4d, 0xda, 0xc5, 0xa6, 0x69, 0x94, 0x82, 0x82, 0x56, 0xa8, 0xd2,
-	0x52, 0xa1, 0xed, 0x22, 0xcb, 0x8b, 0x6b, 0x3c, 0x12, 0x3b, 0x4a, 0x1c, 0x34, 0xf8, 0x44, 0xfb,
-	0x7c, 0xbb, 0xde, 0xc5, 0x14, 0xe7, 0x85, 0xae, 0x2a, 0xdd, 0x9d, 0xf3, 0xf7, 0xf1, 0xc9, 0xf9,
-	0xff, 0xce, 0xb1, 0xe1, 0x60, 0xe4, 0xdf, 0x09, 0x4c, 0x3d, 0x5f, 0x0f, 0xfd, 0x84, 0x50, 0x16,
-	0xeb, 0xb1, 0x4d, 0x70, 0x60, 0xdf, 0xe0, 0x48, 0x17, 0x91, 0x4d, 0x19, 0x65, 0xc4, 0xfa, 0xc6,
-	0x1d, 0x2d, 0x8c, 0xb8, 0xe0, 0x68, 0xbb, 0x08, 0xd7, 0xf2, 0x70, 0xad, 0x0c, 0xdf, 0x7e, 0x4a,
-	0x38, 0x27, 0x3e, 0xd6, 0x65, 0xa4, 0x93, 0x8c, 0x74, 0x2f, 0x89, 0x6c, 0x41, 0x39, 0xcb, 0xce,
-	0xaa, 0xbb, 0xb0, 0x6c, 0xb0, 0x30, 0x11, 0x5d, 0xee, 0x61, 0xf5, 0x7f, 0x98, 0x1f, 0xda, 0x7e,
-	0x82, 0xd1, 0x12, 0xd4, 0x4f, 0x8c, 0x4f, 0x1d, 0xa5, 0x92, 0xae, 0x7a, 0x46, 0xaf, 0xa3, 0x54,
-	0xd5, 0x57, 0xb0, 0xfa, 0xd1, 0x27, 0x3c, 0xa2, 0xe2, 0x3a, 0x38, 0xb7, 0x03, 0xac, 0xee, 0x14,
-	0xd1, 0x00, 0x0b, 0xed, 0xcb, 0xfe, 0xe0, 0xa2, 0xab, 0x54, 0x50, 0x03, 0x16, 0xaf, 0x4e, 0x8f,
-	0x2e, 0x2e, 0xfa, 0x03, 0xa5, 0xaa, 0xee, 0x81, 0x22, 0x93, 0xb7, 0x39, 0x13, 0x98, 0x89, 0xc1,
-	0x5d, 0x88, 0xd5, 0x7f, 0x8b, 0x53, 0x2b, 0xb0, 0x34, 0xe8, 0x5c, 0x0d, 0xac, 0x76, 0x7f, 0xa8,
-	0x54, 0xd4, 0x77, 0xa0, 0x74, 0xb1, 0x88, 0xa8, 0x7b, 0x8c, 0x47, 0x94, 0xd1, 0xb4, 0x42, 0x84,
-	0xa0, 0xce, 0xec, 0x00, 0xb7, 0xaa, 0x3b, 0xd5, 0xdd, 0x65, 0x53, 0xae, 0xd1, 0x06, 0xcc, 0x47,
-	0x98, 0xe0, 0xef, 0xad, 0x39, 0x29, 0x66, 0x1f, 0xea, 0x8f, 0x1a, 0x6c, 0x96, 0xc5, 0xf5, 0x43,
-	0xec, 0xd2, 0x11, 0x75, 0xa5, 0x4d, 0x74, 0x06, 0x40, 0xd3, 0x1a, 0xac, 0x80, 0x7b, 0x59, 0xaa,
-	0xe6, 0xe1, 0xbe, 0xf6, 0x38, 0x31, 0xad, 0xc4, 0xa1, 0xc9, 0x3a, 0xcd, 0x65, 0x5a, 0x08, 0x68,
-	0x08, 0x4d, 0xbb, 0xf8, 0x8b, 0x25, 0x4b, 0x9b, 0x93, 0xf9, 0xf4, 0x59, 0xf9, 0xfe, 0x80, 0x96,
-	0xe7, 0x5c, 0xb5, 0xc7, 0x45, 0xb4, 0x0f, 0x6b, 0x0f, 0x79, 0x6f, 0x71, 0x14, 0x53, 0xce, 0x5a,
-	0x35, 0x69, 0x50, 0x29, 0x37, 0x86, 0x99, 0x8e, 0xbe, 0x00, 0x0a, 0x24, 0x29, 0xcb, 0x2b, 0x51,
-	0xc5, 0xad, 0xfa, 0x4e, 0x6d, 0xb7, 0x71, 0xf8, 0x72, 0x56, 0x21, 0x93, 0x7c, 0xcd, 0xb5, 0x60,
-	0x42, 0x89, 0xd1, 0x57, 0x40, 0x19, 0x2d, 0x37, 0x6b, 0x99, 0x25, 0xee, 0x42, 0xdc, 0x9a, 0x97,
-	0x2e, 0x0f, 0xff, 0x4a, 0x6d, 0xac, 0xcf, 0xb9, 0x51, 0x85, 0x4e, 0xf6, 0xff, 0x2d, 0xac, 0x1f,
-	0xd3, 0x58, 0x44, 0xd4, 0x49, 0x04, 0xf6, 0x7a, 0xe9, 0x10, 0xba, 0xdc, 0x57, 0x9f, 0x15, 0x63,
-	0xf1, 0x0f, 0x34, 0x2e, 0xcf, 0xfb, 0xbd, 0x4e, 0xdb, 0x38, 0x31, 0x3a, 0xc7, 0x4a, 0x05, 0x2d,
-	0x42, 0xad, 0xdb, 0x33, 0x94, 0xaa, 0xfa, 0xab, 0x0a, 0x5b, 0x83, 0x7c, 0xfa, 0xcf, 0xb8, 0x63,
-	0xe2, 0x98, 0x27, 0x91, 0x8b, 0xdb, 0x9c, 0x8d, 0x28, 0x41, 0x2f, 0xa0, 0x49, 0x59, 0x2c, 0x6c,
-	0xe6, 0x62, 0xcb, 0xe5, 0x09, 0x13, 0xb2, 0xd7, 0x35, 0x73, 0xb5, 0x50, 0xdb, 0xa9, 0x88, 0x9e,
-	0x43, 0x29, 0x64, 0xde, 0xb2, 0x39, 0x5a, 0x29, 0xc4, 0xb4, 0x46, 0xb4, 0x07, 0x6b, 0xb7, 0xdc,
-	0x4f, 0x02, 0x6c, 0xc5, 0xf4, 0x1e, 0x5b, 0x94, 0x59, 0xc4, 0x91, 0xfd, 0xa8, 0x99, 0xcd, 0x6c,
-	0xa3, 0x4f, 0xef, 0xb1, 0xc1, 0x4e, 0x1d, 0x74, 0x0d, 0x1b, 0xde, 0x83, 0x1d, 0x2b, 0xcc, 0xfd,
-	0xb4, 0xea, 0x12, 0xd9, 0x9b, 0x59, 0xc8, 0xa6, 0x60, 0xc8, 0xa9, 0xad, 0x7b, 0x53, 0x08, 0xfd,
-	0xac, 0x42, 0x63, 0xcc, 0x3e, 0xba, 0x81, 0xff, 0x1e, 0x86, 0x26, 0x1e, 0x9f, 0x79, 0xe9, 0xbc,
-	0x31, 0xbb, 0x5f, 0xd3, 0x6f, 0x8b, 0xb9, 0x69, 0x4f, 0xbf, 0x45, 0xb7, 0xf0, 0x64, 0xfc, 0xe1,
-	0xb1, 0xa2, 0x1c, 0x7e, 0x3a, 0x27, 0x23, 0x4a, 0x24, 0xc5, 0xc6, 0x6c, 0xbb, 0x8f, 0xb6, 0xce,
-	0xdc, 0x12, 0x8f, 0x6d, 0x1d, 0x7d, 0xf8, 0xfc, 0x9e, 0x50, 0x71, 0x9d, 0x38, 0x9a, 0xcb, 0x03,
-	0x5d, 0x66, 0xe7, 0x11, 0xc9, 0x16, 0x7a, 0xf9, 0x4a, 0x12, 0xcc, 0xf4, 0xd0, 0x39, 0x20, 0x5c,
-	0x9f, 0x7c, 0x38, 0x9d, 0x05, 0xd9, 0x91, 0xd7, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x50, 0x80,
-	0x56, 0x45, 0x53, 0x05, 0x00, 0x00,
-}
diff --git a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/training_job.pb.validate.go b/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/training_job.pb.validate.go
deleted file mode 100644
index 19d1eb9a21..0000000000
--- a/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker/training_job.pb.validate.go
+++ /dev/null
@@ -1,617 +0,0 @@
-// Code generated by protoc-gen-validate. DO NOT EDIT.
-// source: flyteidl/plugins/sagemaker/training_job.proto
-
-package plugins
-
-import (
-	"bytes"
-	"errors"
-	"fmt"
-	"net"
-	"net/mail"
-	"net/url"
-	"regexp"
-	"strings"
-	"time"
-	"unicode/utf8"
-
-	"github.com/golang/protobuf/ptypes"
-)
-
-// ensure the imports are used
-var (
-	_ = bytes.MinRead
-	_ = errors.New("")
-	_ = fmt.Print
-	_ = utf8.UTFMax
-	_ = (*regexp.Regexp)(nil)
-	_ = (*strings.Reader)(nil)
-	_ = net.IPv4len
-	_ = time.Duration(0)
-	_ = (*url.URL)(nil)
-	_ = (*mail.Address)(nil)
-	_ = ptypes.DynamicAny{}
-)
-
-// define the regex for a UUID once up-front
-var _training_job_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$")
-
-// Validate checks the field values on InputMode with the rules defined in the
-// proto definition for this message. If any rules are violated, an error is returned.
-func (m *InputMode) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	return nil
-}
-
-// InputModeValidationError is the validation error returned by
-// InputMode.Validate if the designated constraints aren't met.
-type InputModeValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e InputModeValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e InputModeValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e InputModeValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e InputModeValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e InputModeValidationError) ErrorName() string { return "InputModeValidationError" }
-
-// Error satisfies the builtin error interface
-func (e InputModeValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sInputMode.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = InputModeValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = InputModeValidationError{}
-
-// Validate checks the field values on AlgorithmName with the rules defined in
-// the proto definition for this message. If any rules are violated, an error
-// is returned.
-func (m *AlgorithmName) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	return nil
-}
-
-// AlgorithmNameValidationError is the validation error returned by
-// AlgorithmName.Validate if the designated constraints aren't met.
-type AlgorithmNameValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e AlgorithmNameValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e AlgorithmNameValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e AlgorithmNameValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e AlgorithmNameValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e AlgorithmNameValidationError) ErrorName() string { return "AlgorithmNameValidationError" }
-
-// Error satisfies the builtin error interface
-func (e AlgorithmNameValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sAlgorithmName.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = AlgorithmNameValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = AlgorithmNameValidationError{}
-
-// Validate checks the field values on InputContentType with the rules defined
-// in the proto definition for this message. If any rules are violated, an
-// error is returned.
-func (m *InputContentType) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	return nil
-}
-
-// InputContentTypeValidationError is the validation error returned by
-// InputContentType.Validate if the designated constraints aren't met.
-type InputContentTypeValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e InputContentTypeValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e InputContentTypeValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e InputContentTypeValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e InputContentTypeValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e InputContentTypeValidationError) ErrorName() string { return "InputContentTypeValidationError" }
-
-// Error satisfies the builtin error interface
-func (e InputContentTypeValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sInputContentType.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = InputContentTypeValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = InputContentTypeValidationError{}
-
-// Validate checks the field values on MetricDefinition with the rules defined
-// in the proto definition for this message. If any rules are violated, an
-// error is returned.
-func (m *MetricDefinition) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	// no validation rules for Name
-
-	// no validation rules for Regex
-
-	return nil
-}
-
-// MetricDefinitionValidationError is the validation error returned by
-// MetricDefinition.Validate if the designated constraints aren't met.
-type MetricDefinitionValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e MetricDefinitionValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e MetricDefinitionValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e MetricDefinitionValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e MetricDefinitionValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e MetricDefinitionValidationError) ErrorName() string { return "MetricDefinitionValidationError" }
-
-// Error satisfies the builtin error interface
-func (e MetricDefinitionValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sMetricDefinition.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = MetricDefinitionValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = MetricDefinitionValidationError{}
-
-// Validate checks the field values on AlgorithmSpecification with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *AlgorithmSpecification) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	// no validation rules for InputMode
-
-	// no validation rules for AlgorithmName
-
-	// no validation rules for AlgorithmVersion
-
-	for idx, item := range m.GetMetricDefinitions() {
-		_, _ = idx, item
-
-		if v, ok := interface{}(item).(interface{ Validate() error }); ok {
-			if err := v.Validate(); err != nil {
-				return AlgorithmSpecificationValidationError{
-					field:  fmt.Sprintf("MetricDefinitions[%v]", idx),
-					reason: "embedded message failed validation",
-					cause:  err,
-				}
-			}
-		}
-
-	}
-
-	// no validation rules for InputContentType
-
-	return nil
-}
-
-// AlgorithmSpecificationValidationError is the validation error returned by
-// AlgorithmSpecification.Validate if the designated constraints aren't met.
-type AlgorithmSpecificationValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e AlgorithmSpecificationValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e AlgorithmSpecificationValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e AlgorithmSpecificationValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e AlgorithmSpecificationValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e AlgorithmSpecificationValidationError) ErrorName() string {
-	return "AlgorithmSpecificationValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e AlgorithmSpecificationValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sAlgorithmSpecification.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = AlgorithmSpecificationValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = AlgorithmSpecificationValidationError{}
-
-// Validate checks the field values on DistributedProtocol with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *DistributedProtocol) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	return nil
-}
-
-// DistributedProtocolValidationError is the validation error returned by
-// DistributedProtocol.Validate if the designated constraints aren't met.
-type DistributedProtocolValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e DistributedProtocolValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e DistributedProtocolValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e DistributedProtocolValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e DistributedProtocolValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e DistributedProtocolValidationError) ErrorName() string {
-	return "DistributedProtocolValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e DistributedProtocolValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sDistributedProtocol.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = DistributedProtocolValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = DistributedProtocolValidationError{}
-
-// Validate checks the field values on TrainingJobResourceConfig with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, an error is returned.
-func (m *TrainingJobResourceConfig) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	// no validation rules for InstanceCount
-
-	// no validation rules for InstanceType
-
-	// no validation rules for VolumeSizeInGb
-
-	// no validation rules for DistributedProtocol
-
-	return nil
-}
-
-// TrainingJobResourceConfigValidationError is the validation error returned by
-// TrainingJobResourceConfig.Validate if the designated constraints aren't met.
-type TrainingJobResourceConfigValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e TrainingJobResourceConfigValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e TrainingJobResourceConfigValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e TrainingJobResourceConfigValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e TrainingJobResourceConfigValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e TrainingJobResourceConfigValidationError) ErrorName() string {
-	return "TrainingJobResourceConfigValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e TrainingJobResourceConfigValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sTrainingJobResourceConfig.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = TrainingJobResourceConfigValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = TrainingJobResourceConfigValidationError{}
-
-// Validate checks the field values on TrainingJob with the rules defined in
-// the proto definition for this message. If any rules are violated, an error
-// is returned.
-func (m *TrainingJob) Validate() error {
-	if m == nil {
-		return nil
-	}
-
-	if v, ok := interface{}(m.GetAlgorithmSpecification()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return TrainingJobValidationError{
-				field:  "AlgorithmSpecification",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if v, ok := interface{}(m.GetTrainingJobResourceConfig()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return TrainingJobValidationError{
-				field:  "TrainingJobResourceConfig",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	return nil
-}
-
-// TrainingJobValidationError is the validation error returned by
-// TrainingJob.Validate if the designated constraints aren't met.
-type TrainingJobValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e TrainingJobValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e TrainingJobValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e TrainingJobValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e TrainingJobValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e TrainingJobValidationError) ErrorName() string { return "TrainingJobValidationError" }
-
-// Error satisfies the builtin error interface
-func (e TrainingJobValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sTrainingJob.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = TrainingJobValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = TrainingJobValidationError{}
diff --git a/flyteidl/gen/pb-java/flyteidl/plugins/sagemaker/HyperparameterTuningJobOuterClass.java b/flyteidl/gen/pb-java/flyteidl/plugins/sagemaker/HyperparameterTuningJobOuterClass.java
deleted file mode 100644
index 6c91927e51..0000000000
--- a/flyteidl/gen/pb-java/flyteidl/plugins/sagemaker/HyperparameterTuningJobOuterClass.java
+++ /dev/null
@@ -1,4497 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto
-
-package flyteidl.plugins.sagemaker;
-
-public final class HyperparameterTuningJobOuterClass {
-  private HyperparameterTuningJobOuterClass() {}
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistryLite registry) {
-  }
-
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistry registry) {
-    registerAllExtensions(
-        (com.google.protobuf.ExtensionRegistryLite) registry);
-  }
-  public interface HyperparameterTuningJobOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <pre>
-     * The underlying training job that the hyperparameter tuning job will launch during the process
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-     */
-    boolean hasTrainingJob();
-    /**
-     * <pre>
-     * The underlying training job that the hyperparameter tuning job will launch during the process
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob getTrainingJob();
-    /**
-     * <pre>
-     * The underlying training job that the hyperparameter tuning job will launch during the process
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobOrBuilder getTrainingJobOrBuilder();
-
-    /**
-     * <pre>
-     * The maximum number of training jobs that an hpo job can launch. For resource limit purpose.
-     * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-     * </pre>
-     *
-     * <code>int64 max_number_of_training_jobs = 2;</code>
-     */
-    long getMaxNumberOfTrainingJobs();
-
-    /**
-     * <pre>
-     * The maximum number of concurrent training job that an hpo job can launch
-     * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-     * </pre>
-     *
-     * <code>int64 max_parallel_training_jobs = 3;</code>
-     */
-    long getMaxParallelTrainingJobs();
-  }
-  /**
-   * <pre>
-   * A pass-through for SageMaker's hyperparameter tuning job
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterTuningJob}
-   */
-  public  static final class HyperparameterTuningJob extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-      HyperparameterTuningJobOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use HyperparameterTuningJob.newBuilder() to construct.
-    private HyperparameterTuningJob(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private HyperparameterTuningJob() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private HyperparameterTuningJob(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10: {
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.Builder subBuilder = null;
-              if (trainingJob_ != null) {
-                subBuilder = trainingJob_.toBuilder();
-              }
-              trainingJob_ = input.readMessage(flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(trainingJob_);
-                trainingJob_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            case 16: {
-
-              maxNumberOfTrainingJobs_ = input.readInt64();
-              break;
-            }
-            case 24: {
-
-              maxParallelTrainingJobs_ = input.readInt64();
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJob_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJob_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob.Builder.class);
-    }
-
-    public static final int TRAINING_JOB_FIELD_NUMBER = 1;
-    private flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob trainingJob_;
-    /**
-     * <pre>
-     * The underlying training job that the hyperparameter tuning job will launch during the process
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-     */
-    public boolean hasTrainingJob() {
-      return trainingJob_ != null;
-    }
-    /**
-     * <pre>
-     * The underlying training job that the hyperparameter tuning job will launch during the process
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob getTrainingJob() {
-      return trainingJob_ == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.getDefaultInstance() : trainingJob_;
-    }
-    /**
-     * <pre>
-     * The underlying training job that the hyperparameter tuning job will launch during the process
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobOrBuilder getTrainingJobOrBuilder() {
-      return getTrainingJob();
-    }
-
-    public static final int MAX_NUMBER_OF_TRAINING_JOBS_FIELD_NUMBER = 2;
-    private long maxNumberOfTrainingJobs_;
-    /**
-     * <pre>
-     * The maximum number of training jobs that an hpo job can launch. For resource limit purpose.
-     * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-     * </pre>
-     *
-     * <code>int64 max_number_of_training_jobs = 2;</code>
-     */
-    public long getMaxNumberOfTrainingJobs() {
-      return maxNumberOfTrainingJobs_;
-    }
-
-    public static final int MAX_PARALLEL_TRAINING_JOBS_FIELD_NUMBER = 3;
-    private long maxParallelTrainingJobs_;
-    /**
-     * <pre>
-     * The maximum number of concurrent training job that an hpo job can launch
-     * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-     * </pre>
-     *
-     * <code>int64 max_parallel_training_jobs = 3;</code>
-     */
-    public long getMaxParallelTrainingJobs() {
-      return maxParallelTrainingJobs_;
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (trainingJob_ != null) {
-        output.writeMessage(1, getTrainingJob());
-      }
-      if (maxNumberOfTrainingJobs_ != 0L) {
-        output.writeInt64(2, maxNumberOfTrainingJobs_);
-      }
-      if (maxParallelTrainingJobs_ != 0L) {
-        output.writeInt64(3, maxParallelTrainingJobs_);
-      }
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      if (trainingJob_ != null) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(1, getTrainingJob());
-      }
-      if (maxNumberOfTrainingJobs_ != 0L) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(2, maxNumberOfTrainingJobs_);
-      }
-      if (maxParallelTrainingJobs_ != 0L) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(3, maxParallelTrainingJobs_);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob other = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob) obj;
-
-      if (hasTrainingJob() != other.hasTrainingJob()) return false;
-      if (hasTrainingJob()) {
-        if (!getTrainingJob()
-            .equals(other.getTrainingJob())) return false;
-      }
-      if (getMaxNumberOfTrainingJobs()
-          != other.getMaxNumberOfTrainingJobs()) return false;
-      if (getMaxParallelTrainingJobs()
-          != other.getMaxParallelTrainingJobs()) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      if (hasTrainingJob()) {
-        hash = (37 * hash) + TRAINING_JOB_FIELD_NUMBER;
-        hash = (53 * hash) + getTrainingJob().hashCode();
-      }
-      hash = (37 * hash) + MAX_NUMBER_OF_TRAINING_JOBS_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
-          getMaxNumberOfTrainingJobs());
-      hash = (37 * hash) + MAX_PARALLEL_TRAINING_JOBS_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
-          getMaxParallelTrainingJobs());
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * A pass-through for SageMaker's hyperparameter tuning job
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterTuningJob}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJob_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJob_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        if (trainingJobBuilder_ == null) {
-          trainingJob_ = null;
-        } else {
-          trainingJob_ = null;
-          trainingJobBuilder_ = null;
-        }
-        maxNumberOfTrainingJobs_ = 0L;
-
-        maxParallelTrainingJobs_ = 0L;
-
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJob_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob build() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob buildPartial() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob result = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob(this);
-        if (trainingJobBuilder_ == null) {
-          result.trainingJob_ = trainingJob_;
-        } else {
-          result.trainingJob_ = trainingJobBuilder_.build();
-        }
-        result.maxNumberOfTrainingJobs_ = maxNumberOfTrainingJobs_;
-        result.maxParallelTrainingJobs_ = maxParallelTrainingJobs_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob) {
-          return mergeFrom((flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob other) {
-        if (other == flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob.getDefaultInstance()) return this;
-        if (other.hasTrainingJob()) {
-          mergeTrainingJob(other.getTrainingJob());
-        }
-        if (other.getMaxNumberOfTrainingJobs() != 0L) {
-          setMaxNumberOfTrainingJobs(other.getMaxNumberOfTrainingJobs());
-        }
-        if (other.getMaxParallelTrainingJobs() != 0L) {
-          setMaxParallelTrainingJobs(other.getMaxParallelTrainingJobs());
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      private flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob trainingJob_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobOrBuilder> trainingJobBuilder_;
-      /**
-       * <pre>
-       * The underlying training job that the hyperparameter tuning job will launch during the process
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-       */
-      public boolean hasTrainingJob() {
-        return trainingJobBuilder_ != null || trainingJob_ != null;
-      }
-      /**
-       * <pre>
-       * The underlying training job that the hyperparameter tuning job will launch during the process
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob getTrainingJob() {
-        if (trainingJobBuilder_ == null) {
-          return trainingJob_ == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.getDefaultInstance() : trainingJob_;
-        } else {
-          return trainingJobBuilder_.getMessage();
-        }
-      }
-      /**
-       * <pre>
-       * The underlying training job that the hyperparameter tuning job will launch during the process
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-       */
-      public Builder setTrainingJob(flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob value) {
-        if (trainingJobBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          trainingJob_ = value;
-          onChanged();
-        } else {
-          trainingJobBuilder_.setMessage(value);
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * The underlying training job that the hyperparameter tuning job will launch during the process
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-       */
-      public Builder setTrainingJob(
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.Builder builderForValue) {
-        if (trainingJobBuilder_ == null) {
-          trainingJob_ = builderForValue.build();
-          onChanged();
-        } else {
-          trainingJobBuilder_.setMessage(builderForValue.build());
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * The underlying training job that the hyperparameter tuning job will launch during the process
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-       */
-      public Builder mergeTrainingJob(flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob value) {
-        if (trainingJobBuilder_ == null) {
-          if (trainingJob_ != null) {
-            trainingJob_ =
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.newBuilder(trainingJob_).mergeFrom(value).buildPartial();
-          } else {
-            trainingJob_ = value;
-          }
-          onChanged();
-        } else {
-          trainingJobBuilder_.mergeFrom(value);
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * The underlying training job that the hyperparameter tuning job will launch during the process
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-       */
-      public Builder clearTrainingJob() {
-        if (trainingJobBuilder_ == null) {
-          trainingJob_ = null;
-          onChanged();
-        } else {
-          trainingJob_ = null;
-          trainingJobBuilder_ = null;
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * The underlying training job that the hyperparameter tuning job will launch during the process
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.Builder getTrainingJobBuilder() {
-        
-        onChanged();
-        return getTrainingJobFieldBuilder().getBuilder();
-      }
-      /**
-       * <pre>
-       * The underlying training job that the hyperparameter tuning job will launch during the process
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobOrBuilder getTrainingJobOrBuilder() {
-        if (trainingJobBuilder_ != null) {
-          return trainingJobBuilder_.getMessageOrBuilder();
-        } else {
-          return trainingJob_ == null ?
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.getDefaultInstance() : trainingJob_;
-        }
-      }
-      /**
-       * <pre>
-       * The underlying training job that the hyperparameter tuning job will launch during the process
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJob training_job = 1;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobOrBuilder> 
-          getTrainingJobFieldBuilder() {
-        if (trainingJobBuilder_ == null) {
-          trainingJobBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobOrBuilder>(
-                  getTrainingJob(),
-                  getParentForChildren(),
-                  isClean());
-          trainingJob_ = null;
-        }
-        return trainingJobBuilder_;
-      }
-
-      private long maxNumberOfTrainingJobs_ ;
-      /**
-       * <pre>
-       * The maximum number of training jobs that an hpo job can launch. For resource limit purpose.
-       * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-       * </pre>
-       *
-       * <code>int64 max_number_of_training_jobs = 2;</code>
-       */
-      public long getMaxNumberOfTrainingJobs() {
-        return maxNumberOfTrainingJobs_;
-      }
-      /**
-       * <pre>
-       * The maximum number of training jobs that an hpo job can launch. For resource limit purpose.
-       * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-       * </pre>
-       *
-       * <code>int64 max_number_of_training_jobs = 2;</code>
-       */
-      public Builder setMaxNumberOfTrainingJobs(long value) {
-        
-        maxNumberOfTrainingJobs_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The maximum number of training jobs that an hpo job can launch. For resource limit purpose.
-       * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-       * </pre>
-       *
-       * <code>int64 max_number_of_training_jobs = 2;</code>
-       */
-      public Builder clearMaxNumberOfTrainingJobs() {
-        
-        maxNumberOfTrainingJobs_ = 0L;
-        onChanged();
-        return this;
-      }
-
-      private long maxParallelTrainingJobs_ ;
-      /**
-       * <pre>
-       * The maximum number of concurrent training job that an hpo job can launch
-       * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-       * </pre>
-       *
-       * <code>int64 max_parallel_training_jobs = 3;</code>
-       */
-      public long getMaxParallelTrainingJobs() {
-        return maxParallelTrainingJobs_;
-      }
-      /**
-       * <pre>
-       * The maximum number of concurrent training job that an hpo job can launch
-       * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-       * </pre>
-       *
-       * <code>int64 max_parallel_training_jobs = 3;</code>
-       */
-      public Builder setMaxParallelTrainingJobs(long value) {
-        
-        maxParallelTrainingJobs_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The maximum number of concurrent training job that an hpo job can launch
-       * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-       * </pre>
-       *
-       * <code>int64 max_parallel_training_jobs = 3;</code>
-       */
-      public Builder clearMaxParallelTrainingJobs() {
-        
-        maxParallelTrainingJobs_ = 0L;
-        onChanged();
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterTuningJob)
-    private static final flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob();
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<HyperparameterTuningJob>
-        PARSER = new com.google.protobuf.AbstractParser<HyperparameterTuningJob>() {
-      @java.lang.Override
-      public HyperparameterTuningJob parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new HyperparameterTuningJob(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<HyperparameterTuningJob> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<HyperparameterTuningJob> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJob getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface HyperparameterTuningObjectiveTypeOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-      com.google.protobuf.MessageOrBuilder {
-  }
-  /**
-   * <pre>
-   * HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-   * with respect to the specified metric.
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType}
-   */
-  public  static final class HyperparameterTuningObjectiveType extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-      HyperparameterTuningObjectiveTypeOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use HyperparameterTuningObjectiveType.newBuilder() to construct.
-    private HyperparameterTuningObjectiveType(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private HyperparameterTuningObjectiveType() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private HyperparameterTuningObjectiveType(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjectiveType_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjectiveType_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Builder.class);
-    }
-
-    /**
-     * Protobuf enum {@code flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value}
-     */
-    public enum Value
-        implements com.google.protobuf.ProtocolMessageEnum {
-      /**
-       * <code>MINIMIZE = 0;</code>
-       */
-      MINIMIZE(0),
-      /**
-       * <code>MAXIMIZE = 1;</code>
-       */
-      MAXIMIZE(1),
-      UNRECOGNIZED(-1),
-      ;
-
-      /**
-       * <code>MINIMIZE = 0;</code>
-       */
-      public static final int MINIMIZE_VALUE = 0;
-      /**
-       * <code>MAXIMIZE = 1;</code>
-       */
-      public static final int MAXIMIZE_VALUE = 1;
-
-
-      public final int getNumber() {
-        if (this == UNRECOGNIZED) {
-          throw new java.lang.IllegalArgumentException(
-              "Can't get the number of an unknown enum value.");
-        }
-        return value;
-      }
-
-      /**
-       * @deprecated Use {@link #forNumber(int)} instead.
-       */
-      @java.lang.Deprecated
-      public static Value valueOf(int value) {
-        return forNumber(value);
-      }
-
-      public static Value forNumber(int value) {
-        switch (value) {
-          case 0: return MINIMIZE;
-          case 1: return MAXIMIZE;
-          default: return null;
-        }
-      }
-
-      public static com.google.protobuf.Internal.EnumLiteMap<Value>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static final com.google.protobuf.Internal.EnumLiteMap<
-          Value> internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<Value>() {
-              public Value findValueByNumber(int number) {
-                return Value.forNumber(number);
-              }
-            };
-
-      public final com.google.protobuf.Descriptors.EnumValueDescriptor
-          getValueDescriptor() {
-        return getDescriptor().getValues().get(ordinal());
-      }
-      public final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptorForType() {
-        return getDescriptor();
-      }
-      public static final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.getDescriptor().getEnumTypes().get(0);
-      }
-
-      private static final Value[] VALUES = values();
-
-      public static Value valueOf(
-          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
-        if (desc.getType() != getDescriptor()) {
-          throw new java.lang.IllegalArgumentException(
-            "EnumValueDescriptor is not for this type.");
-        }
-        if (desc.getIndex() == -1) {
-          return UNRECOGNIZED;
-        }
-        return VALUES[desc.getIndex()];
-      }
-
-      private final int value;
-
-      private Value(int value) {
-        this.value = value;
-      }
-
-      // @@protoc_insertion_point(enum_scope:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value)
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType other = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType) obj;
-
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-     * with respect to the specified metric.
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveTypeOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjectiveType_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjectiveType_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjectiveType_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType build() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType buildPartial() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType result = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType(this);
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType) {
-          return mergeFrom((flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType other) {
-        if (other == flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.getDefaultInstance()) return this;
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType)
-    private static final flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType();
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<HyperparameterTuningObjectiveType>
-        PARSER = new com.google.protobuf.AbstractParser<HyperparameterTuningObjectiveType>() {
-      @java.lang.Override
-      public HyperparameterTuningObjectiveType parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new HyperparameterTuningObjectiveType(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<HyperparameterTuningObjectiveType> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<HyperparameterTuningObjectiveType> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface HyperparameterTuningObjectiveOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <pre>
-     * HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-     * with respect to the specified metric.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;</code>
-     */
-    int getObjectiveTypeValue();
-    /**
-     * <pre>
-     * HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-     * with respect to the specified metric.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;</code>
-     */
-    flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value getObjectiveType();
-
-    /**
-     * <pre>
-     * The target metric name, which is the user-defined name of the metric specified in the
-     * training job's algorithm specification
-     * </pre>
-     *
-     * <code>string metric_name = 2;</code>
-     */
-    java.lang.String getMetricName();
-    /**
-     * <pre>
-     * The target metric name, which is the user-defined name of the metric specified in the
-     * training job's algorithm specification
-     * </pre>
-     *
-     * <code>string metric_name = 2;</code>
-     */
-    com.google.protobuf.ByteString
-        getMetricNameBytes();
-  }
-  /**
-   * <pre>
-   * The target metric and the objective of the hyperparameter tuning.
-   * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterTuningObjective}
-   */
-  public  static final class HyperparameterTuningObjective extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-      HyperparameterTuningObjectiveOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use HyperparameterTuningObjective.newBuilder() to construct.
-    private HyperparameterTuningObjective(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private HyperparameterTuningObjective() {
-      objectiveType_ = 0;
-      metricName_ = "";
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private HyperparameterTuningObjective(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 8: {
-              int rawValue = input.readEnum();
-
-              objectiveType_ = rawValue;
-              break;
-            }
-            case 18: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              metricName_ = s;
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjective_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjective_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.Builder.class);
-    }
-
-    public static final int OBJECTIVE_TYPE_FIELD_NUMBER = 1;
-    private int objectiveType_;
-    /**
-     * <pre>
-     * HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-     * with respect to the specified metric.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;</code>
-     */
-    public int getObjectiveTypeValue() {
-      return objectiveType_;
-    }
-    /**
-     * <pre>
-     * HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-     * with respect to the specified metric.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;</code>
-     */
-    public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value getObjectiveType() {
-      @SuppressWarnings("deprecation")
-      flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value result = flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value.valueOf(objectiveType_);
-      return result == null ? flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value.UNRECOGNIZED : result;
-    }
-
-    public static final int METRIC_NAME_FIELD_NUMBER = 2;
-    private volatile java.lang.Object metricName_;
-    /**
-     * <pre>
-     * The target metric name, which is the user-defined name of the metric specified in the
-     * training job's algorithm specification
-     * </pre>
-     *
-     * <code>string metric_name = 2;</code>
-     */
-    public java.lang.String getMetricName() {
-      java.lang.Object ref = metricName_;
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        metricName_ = s;
-        return s;
-      }
-    }
-    /**
-     * <pre>
-     * The target metric name, which is the user-defined name of the metric specified in the
-     * training job's algorithm specification
-     * </pre>
-     *
-     * <code>string metric_name = 2;</code>
-     */
-    public com.google.protobuf.ByteString
-        getMetricNameBytes() {
-      java.lang.Object ref = metricName_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8(
-                (java.lang.String) ref);
-        metricName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (objectiveType_ != flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value.MINIMIZE.getNumber()) {
-        output.writeEnum(1, objectiveType_);
-      }
-      if (!getMetricNameBytes().isEmpty()) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, metricName_);
-      }
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      if (objectiveType_ != flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value.MINIMIZE.getNumber()) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(1, objectiveType_);
-      }
-      if (!getMetricNameBytes().isEmpty()) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, metricName_);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective other = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective) obj;
-
-      if (objectiveType_ != other.objectiveType_) return false;
-      if (!getMetricName()
-          .equals(other.getMetricName())) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + OBJECTIVE_TYPE_FIELD_NUMBER;
-      hash = (53 * hash) + objectiveType_;
-      hash = (37 * hash) + METRIC_NAME_FIELD_NUMBER;
-      hash = (53 * hash) + getMetricName().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * The target metric and the objective of the hyperparameter tuning.
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterTuningObjective}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjective_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjective_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        objectiveType_ = 0;
-
-        metricName_ = "";
-
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjective_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective build() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective buildPartial() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective result = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective(this);
-        result.objectiveType_ = objectiveType_;
-        result.metricName_ = metricName_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective) {
-          return mergeFrom((flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective other) {
-        if (other == flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.getDefaultInstance()) return this;
-        if (other.objectiveType_ != 0) {
-          setObjectiveTypeValue(other.getObjectiveTypeValue());
-        }
-        if (!other.getMetricName().isEmpty()) {
-          metricName_ = other.metricName_;
-          onChanged();
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      private int objectiveType_ = 0;
-      /**
-       * <pre>
-       * HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-       * with respect to the specified metric.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;</code>
-       */
-      public int getObjectiveTypeValue() {
-        return objectiveType_;
-      }
-      /**
-       * <pre>
-       * HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-       * with respect to the specified metric.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;</code>
-       */
-      public Builder setObjectiveTypeValue(int value) {
-        objectiveType_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-       * with respect to the specified metric.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value getObjectiveType() {
-        @SuppressWarnings("deprecation")
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value result = flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value.valueOf(objectiveType_);
-        return result == null ? flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value.UNRECOGNIZED : result;
-      }
-      /**
-       * <pre>
-       * HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-       * with respect to the specified metric.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;</code>
-       */
-      public Builder setObjectiveType(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveType.Value value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        
-        objectiveType_ = value.getNumber();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-       * with respect to the specified metric.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.Value objective_type = 1;</code>
-       */
-      public Builder clearObjectiveType() {
-        
-        objectiveType_ = 0;
-        onChanged();
-        return this;
-      }
-
-      private java.lang.Object metricName_ = "";
-      /**
-       * <pre>
-       * The target metric name, which is the user-defined name of the metric specified in the
-       * training job's algorithm specification
-       * </pre>
-       *
-       * <code>string metric_name = 2;</code>
-       */
-      public java.lang.String getMetricName() {
-        java.lang.Object ref = metricName_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          metricName_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       * <pre>
-       * The target metric name, which is the user-defined name of the metric specified in the
-       * training job's algorithm specification
-       * </pre>
-       *
-       * <code>string metric_name = 2;</code>
-       */
-      public com.google.protobuf.ByteString
-          getMetricNameBytes() {
-        java.lang.Object ref = metricName_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          metricName_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
-      /**
-       * <pre>
-       * The target metric name, which is the user-defined name of the metric specified in the
-       * training job's algorithm specification
-       * </pre>
-       *
-       * <code>string metric_name = 2;</code>
-       */
-      public Builder setMetricName(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        metricName_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The target metric name, which is the user-defined name of the metric specified in the
-       * training job's algorithm specification
-       * </pre>
-       *
-       * <code>string metric_name = 2;</code>
-       */
-      public Builder clearMetricName() {
-        
-        metricName_ = getDefaultInstance().getMetricName();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The target metric name, which is the user-defined name of the metric specified in the
-       * training job's algorithm specification
-       * </pre>
-       *
-       * <code>string metric_name = 2;</code>
-       */
-      public Builder setMetricNameBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
-        metricName_ = value;
-        onChanged();
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterTuningObjective)
-    private static final flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective();
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<HyperparameterTuningObjective>
-        PARSER = new com.google.protobuf.AbstractParser<HyperparameterTuningObjective>() {
-      @java.lang.Override
-      public HyperparameterTuningObjective parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new HyperparameterTuningObjective(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<HyperparameterTuningObjective> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<HyperparameterTuningObjective> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface HyperparameterTuningStrategyOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-      com.google.protobuf.MessageOrBuilder {
-  }
-  /**
-   * <pre>
-   * Setting the strategy used when searching in the hyperparameter space
-   * Refer this doc for more details:
-   * https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-automatic-model-tuning-now-supports-random-search-and-hyperparameter-scaling/
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterTuningStrategy}
-   */
-  public  static final class HyperparameterTuningStrategy extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-      HyperparameterTuningStrategyOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use HyperparameterTuningStrategy.newBuilder() to construct.
-    private HyperparameterTuningStrategy(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private HyperparameterTuningStrategy() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private HyperparameterTuningStrategy(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningStrategy_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningStrategy_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Builder.class);
-    }
-
-    /**
-     * Protobuf enum {@code flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value}
-     */
-    public enum Value
-        implements com.google.protobuf.ProtocolMessageEnum {
-      /**
-       * <code>BAYESIAN = 0;</code>
-       */
-      BAYESIAN(0),
-      /**
-       * <code>RANDOM = 1;</code>
-       */
-      RANDOM(1),
-      UNRECOGNIZED(-1),
-      ;
-
-      /**
-       * <code>BAYESIAN = 0;</code>
-       */
-      public static final int BAYESIAN_VALUE = 0;
-      /**
-       * <code>RANDOM = 1;</code>
-       */
-      public static final int RANDOM_VALUE = 1;
-
-
-      public final int getNumber() {
-        if (this == UNRECOGNIZED) {
-          throw new java.lang.IllegalArgumentException(
-              "Can't get the number of an unknown enum value.");
-        }
-        return value;
-      }
-
-      /**
-       * @deprecated Use {@link #forNumber(int)} instead.
-       */
-      @java.lang.Deprecated
-      public static Value valueOf(int value) {
-        return forNumber(value);
-      }
-
-      public static Value forNumber(int value) {
-        switch (value) {
-          case 0: return BAYESIAN;
-          case 1: return RANDOM;
-          default: return null;
-        }
-      }
-
-      public static com.google.protobuf.Internal.EnumLiteMap<Value>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static final com.google.protobuf.Internal.EnumLiteMap<
-          Value> internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<Value>() {
-              public Value findValueByNumber(int number) {
-                return Value.forNumber(number);
-              }
-            };
-
-      public final com.google.protobuf.Descriptors.EnumValueDescriptor
-          getValueDescriptor() {
-        return getDescriptor().getValues().get(ordinal());
-      }
-      public final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptorForType() {
-        return getDescriptor();
-      }
-      public static final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.getDescriptor().getEnumTypes().get(0);
-      }
-
-      private static final Value[] VALUES = values();
-
-      public static Value valueOf(
-          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
-        if (desc.getType() != getDescriptor()) {
-          throw new java.lang.IllegalArgumentException(
-            "EnumValueDescriptor is not for this type.");
-        }
-        if (desc.getIndex() == -1) {
-          return UNRECOGNIZED;
-        }
-        return VALUES[desc.getIndex()];
-      }
-
-      private final int value;
-
-      private Value(int value) {
-        this.value = value;
-      }
-
-      // @@protoc_insertion_point(enum_scope:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value)
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy other = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy) obj;
-
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * Setting the strategy used when searching in the hyperparameter space
-     * Refer this doc for more details:
-     * https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-automatic-model-tuning-now-supports-random-search-and-hyperparameter-scaling/
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterTuningStrategy}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategyOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningStrategy_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningStrategy_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningStrategy_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy build() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy buildPartial() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy result = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy(this);
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy) {
-          return mergeFrom((flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy other) {
-        if (other == flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.getDefaultInstance()) return this;
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterTuningStrategy)
-    private static final flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy();
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<HyperparameterTuningStrategy>
-        PARSER = new com.google.protobuf.AbstractParser<HyperparameterTuningStrategy>() {
-      @java.lang.Override
-      public HyperparameterTuningStrategy parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new HyperparameterTuningStrategy(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<HyperparameterTuningStrategy> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<HyperparameterTuningStrategy> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface TrainingJobEarlyStoppingTypeOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-      com.google.protobuf.MessageOrBuilder {
-  }
-  /**
-   * <pre>
-   * When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-   * a hyperparameter tuning job can be stopping early.
-   * Note that there's only a subset of built-in algorithms that supports early stopping.
-   * see: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType}
-   */
-  public  static final class TrainingJobEarlyStoppingType extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-      TrainingJobEarlyStoppingTypeOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use TrainingJobEarlyStoppingType.newBuilder() to construct.
-    private TrainingJobEarlyStoppingType(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private TrainingJobEarlyStoppingType() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private TrainingJobEarlyStoppingType(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJobEarlyStoppingType_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJobEarlyStoppingType_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Builder.class);
-    }
-
-    /**
-     * Protobuf enum {@code flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value}
-     */
-    public enum Value
-        implements com.google.protobuf.ProtocolMessageEnum {
-      /**
-       * <code>OFF = 0;</code>
-       */
-      OFF(0),
-      /**
-       * <code>AUTO = 1;</code>
-       */
-      AUTO(1),
-      UNRECOGNIZED(-1),
-      ;
-
-      /**
-       * <code>OFF = 0;</code>
-       */
-      public static final int OFF_VALUE = 0;
-      /**
-       * <code>AUTO = 1;</code>
-       */
-      public static final int AUTO_VALUE = 1;
-
-
-      public final int getNumber() {
-        if (this == UNRECOGNIZED) {
-          throw new java.lang.IllegalArgumentException(
-              "Can't get the number of an unknown enum value.");
-        }
-        return value;
-      }
-
-      /**
-       * @deprecated Use {@link #forNumber(int)} instead.
-       */
-      @java.lang.Deprecated
-      public static Value valueOf(int value) {
-        return forNumber(value);
-      }
-
-      public static Value forNumber(int value) {
-        switch (value) {
-          case 0: return OFF;
-          case 1: return AUTO;
-          default: return null;
-        }
-      }
-
-      public static com.google.protobuf.Internal.EnumLiteMap<Value>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static final com.google.protobuf.Internal.EnumLiteMap<
-          Value> internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<Value>() {
-              public Value findValueByNumber(int number) {
-                return Value.forNumber(number);
-              }
-            };
-
-      public final com.google.protobuf.Descriptors.EnumValueDescriptor
-          getValueDescriptor() {
-        return getDescriptor().getValues().get(ordinal());
-      }
-      public final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptorForType() {
-        return getDescriptor();
-      }
-      public static final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.getDescriptor().getEnumTypes().get(0);
-      }
-
-      private static final Value[] VALUES = values();
-
-      public static Value valueOf(
-          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
-        if (desc.getType() != getDescriptor()) {
-          throw new java.lang.IllegalArgumentException(
-            "EnumValueDescriptor is not for this type.");
-        }
-        if (desc.getIndex() == -1) {
-          return UNRECOGNIZED;
-        }
-        return VALUES[desc.getIndex()];
-      }
-
-      private final int value;
-
-      private Value(int value) {
-        this.value = value;
-      }
-
-      // @@protoc_insertion_point(enum_scope:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value)
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType other = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType) obj;
-
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-     * a hyperparameter tuning job can be stopping early.
-     * Note that there's only a subset of built-in algorithms that supports early stopping.
-     * see: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingTypeOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJobEarlyStoppingType_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJobEarlyStoppingType_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJobEarlyStoppingType_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType build() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType buildPartial() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType result = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType(this);
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType) {
-          return mergeFrom((flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType other) {
-        if (other == flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.getDefaultInstance()) return this;
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType)
-    private static final flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType();
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<TrainingJobEarlyStoppingType>
-        PARSER = new com.google.protobuf.AbstractParser<TrainingJobEarlyStoppingType>() {
-      @java.lang.Override
-      public TrainingJobEarlyStoppingType parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new TrainingJobEarlyStoppingType(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<TrainingJobEarlyStoppingType> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<TrainingJobEarlyStoppingType> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface HyperparameterTuningJobConfigOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <pre>
-     * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-     */
-    boolean hasHyperparameterRanges();
-    /**
-     * <pre>
-     * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-     */
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges getHyperparameterRanges();
-    /**
-     * <pre>
-     * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-     */
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangesOrBuilder getHyperparameterRangesOrBuilder();
-
-    /**
-     * <pre>
-     * Setting the strategy used when searching in the hyperparameter space
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;</code>
-     */
-    int getTuningStrategyValue();
-    /**
-     * <pre>
-     * Setting the strategy used when searching in the hyperparameter space
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;</code>
-     */
-    flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value getTuningStrategy();
-
-    /**
-     * <pre>
-     * The target metric and the objective of the hyperparameter tuning.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-     */
-    boolean hasTuningObjective();
-    /**
-     * <pre>
-     * The target metric and the objective of the hyperparameter tuning.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-     */
-    flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective getTuningObjective();
-    /**
-     * <pre>
-     * The target metric and the objective of the hyperparameter tuning.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-     */
-    flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveOrBuilder getTuningObjectiveOrBuilder();
-
-    /**
-     * <pre>
-     * When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-     * a hyperparameter tuning job can be stopping early.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;</code>
-     */
-    int getTrainingJobEarlyStoppingTypeValue();
-    /**
-     * <pre>
-     * When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-     * a hyperparameter tuning job can be stopping early.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;</code>
-     */
-    flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value getTrainingJobEarlyStoppingType();
-  }
-  /**
-   * <pre>
-   * The specification of the hyperparameter tuning process
-   * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-ex-tuning-job.html#automatic-model-tuning-ex-low-tuning-config
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig}
-   */
-  public  static final class HyperparameterTuningJobConfig extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-      HyperparameterTuningJobConfigOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use HyperparameterTuningJobConfig.newBuilder() to construct.
-    private HyperparameterTuningJobConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private HyperparameterTuningJobConfig() {
-      tuningStrategy_ = 0;
-      trainingJobEarlyStoppingType_ = 0;
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private HyperparameterTuningJobConfig(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10: {
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.Builder subBuilder = null;
-              if (hyperparameterRanges_ != null) {
-                subBuilder = hyperparameterRanges_.toBuilder();
-              }
-              hyperparameterRanges_ = input.readMessage(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(hyperparameterRanges_);
-                hyperparameterRanges_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            case 16: {
-              int rawValue = input.readEnum();
-
-              tuningStrategy_ = rawValue;
-              break;
-            }
-            case 26: {
-              flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.Builder subBuilder = null;
-              if (tuningObjective_ != null) {
-                subBuilder = tuningObjective_.toBuilder();
-              }
-              tuningObjective_ = input.readMessage(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(tuningObjective_);
-                tuningObjective_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            case 32: {
-              int rawValue = input.readEnum();
-
-              trainingJobEarlyStoppingType_ = rawValue;
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJobConfig_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJobConfig_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig.Builder.class);
-    }
-
-    public static final int HYPERPARAMETER_RANGES_FIELD_NUMBER = 1;
-    private flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges hyperparameterRanges_;
-    /**
-     * <pre>
-     * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-     */
-    public boolean hasHyperparameterRanges() {
-      return hyperparameterRanges_ != null;
-    }
-    /**
-     * <pre>
-     * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-     */
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges getHyperparameterRanges() {
-      return hyperparameterRanges_ == null ? flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.getDefaultInstance() : hyperparameterRanges_;
-    }
-    /**
-     * <pre>
-     * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-     */
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangesOrBuilder getHyperparameterRangesOrBuilder() {
-      return getHyperparameterRanges();
-    }
-
-    public static final int TUNING_STRATEGY_FIELD_NUMBER = 2;
-    private int tuningStrategy_;
-    /**
-     * <pre>
-     * Setting the strategy used when searching in the hyperparameter space
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;</code>
-     */
-    public int getTuningStrategyValue() {
-      return tuningStrategy_;
-    }
-    /**
-     * <pre>
-     * Setting the strategy used when searching in the hyperparameter space
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;</code>
-     */
-    public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value getTuningStrategy() {
-      @SuppressWarnings("deprecation")
-      flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value result = flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value.valueOf(tuningStrategy_);
-      return result == null ? flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value.UNRECOGNIZED : result;
-    }
-
-    public static final int TUNING_OBJECTIVE_FIELD_NUMBER = 3;
-    private flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective tuningObjective_;
-    /**
-     * <pre>
-     * The target metric and the objective of the hyperparameter tuning.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-     */
-    public boolean hasTuningObjective() {
-      return tuningObjective_ != null;
-    }
-    /**
-     * <pre>
-     * The target metric and the objective of the hyperparameter tuning.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-     */
-    public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective getTuningObjective() {
-      return tuningObjective_ == null ? flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.getDefaultInstance() : tuningObjective_;
-    }
-    /**
-     * <pre>
-     * The target metric and the objective of the hyperparameter tuning.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-     */
-    public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveOrBuilder getTuningObjectiveOrBuilder() {
-      return getTuningObjective();
-    }
-
-    public static final int TRAINING_JOB_EARLY_STOPPING_TYPE_FIELD_NUMBER = 4;
-    private int trainingJobEarlyStoppingType_;
-    /**
-     * <pre>
-     * When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-     * a hyperparameter tuning job can be stopping early.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;</code>
-     */
-    public int getTrainingJobEarlyStoppingTypeValue() {
-      return trainingJobEarlyStoppingType_;
-    }
-    /**
-     * <pre>
-     * When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-     * a hyperparameter tuning job can be stopping early.
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;</code>
-     */
-    public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value getTrainingJobEarlyStoppingType() {
-      @SuppressWarnings("deprecation")
-      flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value result = flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value.valueOf(trainingJobEarlyStoppingType_);
-      return result == null ? flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value.UNRECOGNIZED : result;
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (hyperparameterRanges_ != null) {
-        output.writeMessage(1, getHyperparameterRanges());
-      }
-      if (tuningStrategy_ != flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value.BAYESIAN.getNumber()) {
-        output.writeEnum(2, tuningStrategy_);
-      }
-      if (tuningObjective_ != null) {
-        output.writeMessage(3, getTuningObjective());
-      }
-      if (trainingJobEarlyStoppingType_ != flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value.OFF.getNumber()) {
-        output.writeEnum(4, trainingJobEarlyStoppingType_);
-      }
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      if (hyperparameterRanges_ != null) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(1, getHyperparameterRanges());
-      }
-      if (tuningStrategy_ != flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value.BAYESIAN.getNumber()) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(2, tuningStrategy_);
-      }
-      if (tuningObjective_ != null) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(3, getTuningObjective());
-      }
-      if (trainingJobEarlyStoppingType_ != flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value.OFF.getNumber()) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(4, trainingJobEarlyStoppingType_);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig other = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig) obj;
-
-      if (hasHyperparameterRanges() != other.hasHyperparameterRanges()) return false;
-      if (hasHyperparameterRanges()) {
-        if (!getHyperparameterRanges()
-            .equals(other.getHyperparameterRanges())) return false;
-      }
-      if (tuningStrategy_ != other.tuningStrategy_) return false;
-      if (hasTuningObjective() != other.hasTuningObjective()) return false;
-      if (hasTuningObjective()) {
-        if (!getTuningObjective()
-            .equals(other.getTuningObjective())) return false;
-      }
-      if (trainingJobEarlyStoppingType_ != other.trainingJobEarlyStoppingType_) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      if (hasHyperparameterRanges()) {
-        hash = (37 * hash) + HYPERPARAMETER_RANGES_FIELD_NUMBER;
-        hash = (53 * hash) + getHyperparameterRanges().hashCode();
-      }
-      hash = (37 * hash) + TUNING_STRATEGY_FIELD_NUMBER;
-      hash = (53 * hash) + tuningStrategy_;
-      if (hasTuningObjective()) {
-        hash = (37 * hash) + TUNING_OBJECTIVE_FIELD_NUMBER;
-        hash = (53 * hash) + getTuningObjective().hashCode();
-      }
-      hash = (37 * hash) + TRAINING_JOB_EARLY_STOPPING_TYPE_FIELD_NUMBER;
-      hash = (53 * hash) + trainingJobEarlyStoppingType_;
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * The specification of the hyperparameter tuning process
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-ex-tuning-job.html#automatic-model-tuning-ex-low-tuning-config
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfigOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJobConfig_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJobConfig_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig.class, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        if (hyperparameterRangesBuilder_ == null) {
-          hyperparameterRanges_ = null;
-        } else {
-          hyperparameterRanges_ = null;
-          hyperparameterRangesBuilder_ = null;
-        }
-        tuningStrategy_ = 0;
-
-        if (tuningObjectiveBuilder_ == null) {
-          tuningObjective_ = null;
-        } else {
-          tuningObjective_ = null;
-          tuningObjectiveBuilder_ = null;
-        }
-        trainingJobEarlyStoppingType_ = 0;
-
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJobConfig_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig build() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig buildPartial() {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig result = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig(this);
-        if (hyperparameterRangesBuilder_ == null) {
-          result.hyperparameterRanges_ = hyperparameterRanges_;
-        } else {
-          result.hyperparameterRanges_ = hyperparameterRangesBuilder_.build();
-        }
-        result.tuningStrategy_ = tuningStrategy_;
-        if (tuningObjectiveBuilder_ == null) {
-          result.tuningObjective_ = tuningObjective_;
-        } else {
-          result.tuningObjective_ = tuningObjectiveBuilder_.build();
-        }
-        result.trainingJobEarlyStoppingType_ = trainingJobEarlyStoppingType_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig) {
-          return mergeFrom((flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig other) {
-        if (other == flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig.getDefaultInstance()) return this;
-        if (other.hasHyperparameterRanges()) {
-          mergeHyperparameterRanges(other.getHyperparameterRanges());
-        }
-        if (other.tuningStrategy_ != 0) {
-          setTuningStrategyValue(other.getTuningStrategyValue());
-        }
-        if (other.hasTuningObjective()) {
-          mergeTuningObjective(other.getTuningObjective());
-        }
-        if (other.trainingJobEarlyStoppingType_ != 0) {
-          setTrainingJobEarlyStoppingTypeValue(other.getTrainingJobEarlyStoppingTypeValue());
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      private flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges hyperparameterRanges_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangesOrBuilder> hyperparameterRangesBuilder_;
-      /**
-       * <pre>
-       * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-       */
-      public boolean hasHyperparameterRanges() {
-        return hyperparameterRangesBuilder_ != null || hyperparameterRanges_ != null;
-      }
-      /**
-       * <pre>
-       * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges getHyperparameterRanges() {
-        if (hyperparameterRangesBuilder_ == null) {
-          return hyperparameterRanges_ == null ? flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.getDefaultInstance() : hyperparameterRanges_;
-        } else {
-          return hyperparameterRangesBuilder_.getMessage();
-        }
-      }
-      /**
-       * <pre>
-       * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-       */
-      public Builder setHyperparameterRanges(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges value) {
-        if (hyperparameterRangesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          hyperparameterRanges_ = value;
-          onChanged();
-        } else {
-          hyperparameterRangesBuilder_.setMessage(value);
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-       */
-      public Builder setHyperparameterRanges(
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.Builder builderForValue) {
-        if (hyperparameterRangesBuilder_ == null) {
-          hyperparameterRanges_ = builderForValue.build();
-          onChanged();
-        } else {
-          hyperparameterRangesBuilder_.setMessage(builderForValue.build());
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-       */
-      public Builder mergeHyperparameterRanges(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges value) {
-        if (hyperparameterRangesBuilder_ == null) {
-          if (hyperparameterRanges_ != null) {
-            hyperparameterRanges_ =
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.newBuilder(hyperparameterRanges_).mergeFrom(value).buildPartial();
-          } else {
-            hyperparameterRanges_ = value;
-          }
-          onChanged();
-        } else {
-          hyperparameterRangesBuilder_.mergeFrom(value);
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-       */
-      public Builder clearHyperparameterRanges() {
-        if (hyperparameterRangesBuilder_ == null) {
-          hyperparameterRanges_ = null;
-          onChanged();
-        } else {
-          hyperparameterRanges_ = null;
-          hyperparameterRangesBuilder_ = null;
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.Builder getHyperparameterRangesBuilder() {
-        
-        onChanged();
-        return getHyperparameterRangesFieldBuilder().getBuilder();
-      }
-      /**
-       * <pre>
-       * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangesOrBuilder getHyperparameterRangesOrBuilder() {
-        if (hyperparameterRangesBuilder_ != null) {
-          return hyperparameterRangesBuilder_.getMessageOrBuilder();
-        } else {
-          return hyperparameterRanges_ == null ?
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.getDefaultInstance() : hyperparameterRanges_;
-        }
-      }
-      /**
-       * <pre>
-       * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.ParameterRanges hyperparameter_ranges = 1;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangesOrBuilder> 
-          getHyperparameterRangesFieldBuilder() {
-        if (hyperparameterRangesBuilder_ == null) {
-          hyperparameterRangesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangesOrBuilder>(
-                  getHyperparameterRanges(),
-                  getParentForChildren(),
-                  isClean());
-          hyperparameterRanges_ = null;
-        }
-        return hyperparameterRangesBuilder_;
-      }
-
-      private int tuningStrategy_ = 0;
-      /**
-       * <pre>
-       * Setting the strategy used when searching in the hyperparameter space
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;</code>
-       */
-      public int getTuningStrategyValue() {
-        return tuningStrategy_;
-      }
-      /**
-       * <pre>
-       * Setting the strategy used when searching in the hyperparameter space
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;</code>
-       */
-      public Builder setTuningStrategyValue(int value) {
-        tuningStrategy_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * Setting the strategy used when searching in the hyperparameter space
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;</code>
-       */
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value getTuningStrategy() {
-        @SuppressWarnings("deprecation")
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value result = flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value.valueOf(tuningStrategy_);
-        return result == null ? flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value.UNRECOGNIZED : result;
-      }
-      /**
-       * <pre>
-       * Setting the strategy used when searching in the hyperparameter space
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;</code>
-       */
-      public Builder setTuningStrategy(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningStrategy.Value value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        
-        tuningStrategy_ = value.getNumber();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * Setting the strategy used when searching in the hyperparameter space
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.Value tuning_strategy = 2;</code>
-       */
-      public Builder clearTuningStrategy() {
-        
-        tuningStrategy_ = 0;
-        onChanged();
-        return this;
-      }
-
-      private flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective tuningObjective_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.Builder, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveOrBuilder> tuningObjectiveBuilder_;
-      /**
-       * <pre>
-       * The target metric and the objective of the hyperparameter tuning.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-       */
-      public boolean hasTuningObjective() {
-        return tuningObjectiveBuilder_ != null || tuningObjective_ != null;
-      }
-      /**
-       * <pre>
-       * The target metric and the objective of the hyperparameter tuning.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-       */
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective getTuningObjective() {
-        if (tuningObjectiveBuilder_ == null) {
-          return tuningObjective_ == null ? flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.getDefaultInstance() : tuningObjective_;
-        } else {
-          return tuningObjectiveBuilder_.getMessage();
-        }
-      }
-      /**
-       * <pre>
-       * The target metric and the objective of the hyperparameter tuning.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-       */
-      public Builder setTuningObjective(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective value) {
-        if (tuningObjectiveBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          tuningObjective_ = value;
-          onChanged();
-        } else {
-          tuningObjectiveBuilder_.setMessage(value);
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * The target metric and the objective of the hyperparameter tuning.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-       */
-      public Builder setTuningObjective(
-          flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.Builder builderForValue) {
-        if (tuningObjectiveBuilder_ == null) {
-          tuningObjective_ = builderForValue.build();
-          onChanged();
-        } else {
-          tuningObjectiveBuilder_.setMessage(builderForValue.build());
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * The target metric and the objective of the hyperparameter tuning.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-       */
-      public Builder mergeTuningObjective(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective value) {
-        if (tuningObjectiveBuilder_ == null) {
-          if (tuningObjective_ != null) {
-            tuningObjective_ =
-              flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.newBuilder(tuningObjective_).mergeFrom(value).buildPartial();
-          } else {
-            tuningObjective_ = value;
-          }
-          onChanged();
-        } else {
-          tuningObjectiveBuilder_.mergeFrom(value);
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * The target metric and the objective of the hyperparameter tuning.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-       */
-      public Builder clearTuningObjective() {
-        if (tuningObjectiveBuilder_ == null) {
-          tuningObjective_ = null;
-          onChanged();
-        } else {
-          tuningObjective_ = null;
-          tuningObjectiveBuilder_ = null;
-        }
-
-        return this;
-      }
-      /**
-       * <pre>
-       * The target metric and the objective of the hyperparameter tuning.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-       */
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.Builder getTuningObjectiveBuilder() {
-        
-        onChanged();
-        return getTuningObjectiveFieldBuilder().getBuilder();
-      }
-      /**
-       * <pre>
-       * The target metric and the objective of the hyperparameter tuning.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-       */
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveOrBuilder getTuningObjectiveOrBuilder() {
-        if (tuningObjectiveBuilder_ != null) {
-          return tuningObjectiveBuilder_.getMessageOrBuilder();
-        } else {
-          return tuningObjective_ == null ?
-              flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.getDefaultInstance() : tuningObjective_;
-        }
-      }
-      /**
-       * <pre>
-       * The target metric and the objective of the hyperparameter tuning.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterTuningObjective tuning_objective = 3;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.Builder, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveOrBuilder> 
-          getTuningObjectiveFieldBuilder() {
-        if (tuningObjectiveBuilder_ == null) {
-          tuningObjectiveBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjective.Builder, flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningObjectiveOrBuilder>(
-                  getTuningObjective(),
-                  getParentForChildren(),
-                  isClean());
-          tuningObjective_ = null;
-        }
-        return tuningObjectiveBuilder_;
-      }
-
-      private int trainingJobEarlyStoppingType_ = 0;
-      /**
-       * <pre>
-       * When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-       * a hyperparameter tuning job can be stopping early.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;</code>
-       */
-      public int getTrainingJobEarlyStoppingTypeValue() {
-        return trainingJobEarlyStoppingType_;
-      }
-      /**
-       * <pre>
-       * When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-       * a hyperparameter tuning job can be stopping early.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;</code>
-       */
-      public Builder setTrainingJobEarlyStoppingTypeValue(int value) {
-        trainingJobEarlyStoppingType_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-       * a hyperparameter tuning job can be stopping early.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;</code>
-       */
-      public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value getTrainingJobEarlyStoppingType() {
-        @SuppressWarnings("deprecation")
-        flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value result = flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value.valueOf(trainingJobEarlyStoppingType_);
-        return result == null ? flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value.UNRECOGNIZED : result;
-      }
-      /**
-       * <pre>
-       * When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-       * a hyperparameter tuning job can be stopping early.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;</code>
-       */
-      public Builder setTrainingJobEarlyStoppingType(flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.TrainingJobEarlyStoppingType.Value value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        
-        trainingJobEarlyStoppingType_ = value.getNumber();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-       * a hyperparameter tuning job can be stopping early.
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;</code>
-       */
-      public Builder clearTrainingJobEarlyStoppingType() {
-        
-        trainingJobEarlyStoppingType_ = 0;
-        onChanged();
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterTuningJobConfig)
-    private static final flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig();
-    }
-
-    public static flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<HyperparameterTuningJobConfig>
-        PARSER = new com.google.protobuf.AbstractParser<HyperparameterTuningJobConfig>() {
-      @java.lang.Override
-      public HyperparameterTuningJobConfig parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new HyperparameterTuningJobConfig(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<HyperparameterTuningJobConfig> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<HyperparameterTuningJobConfig> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.HyperparameterTuningJobOuterClass.HyperparameterTuningJobConfig getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJob_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJob_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjectiveType_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjectiveType_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjective_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjective_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningStrategy_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningStrategy_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_TrainingJobEarlyStoppingType_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_TrainingJobEarlyStoppingType_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJobConfig_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJobConfig_fieldAccessorTable;
-
-  public static com.google.protobuf.Descriptors.FileDescriptor
-      getDescriptor() {
-    return descriptor;
-  }
-  private static  com.google.protobuf.Descriptors.FileDescriptor
-      descriptor;
-  static {
-    java.lang.String[] descriptorData = {
-      "\n:flyteidl/plugins/sagemaker/hyperparame" +
-      "ter_tuning_job.proto\022\032flyteidl.plugins.s" +
-      "agemaker\0321flyteidl/plugins/sagemaker/par" +
-      "ameter_ranges.proto\032-flyteidl/plugins/sa" +
-      "gemaker/training_job.proto\"\241\001\n\027Hyperpara" +
-      "meterTuningJob\022=\n\014training_job\030\001 \001(\0132\'.f" +
-      "lyteidl.plugins.sagemaker.TrainingJob\022#\n" +
-      "\033max_number_of_training_jobs\030\002 \001(\003\022\"\n\032ma" +
-      "x_parallel_training_jobs\030\003 \001(\003\"H\n!Hyperp" +
-      "arameterTuningObjectiveType\"#\n\005Value\022\014\n\010" +
-      "MINIMIZE\020\000\022\014\n\010MAXIMIZE\020\001\"\221\001\n\035Hyperparame" +
-      "terTuningObjective\022[\n\016objective_type\030\001 \001" +
-      "(\0162C.flyteidl.plugins.sagemaker.Hyperpar" +
-      "ameterTuningObjectiveType.Value\022\023\n\013metri" +
-      "c_name\030\002 \001(\t\"A\n\034HyperparameterTuningStra" +
-      "tegy\"!\n\005Value\022\014\n\010BAYESIAN\020\000\022\n\n\006RANDOM\020\001\"" +
-      ":\n\034TrainingJobEarlyStoppingType\"\032\n\005Value" +
-      "\022\007\n\003OFF\020\000\022\010\n\004AUTO\020\001\"\203\003\n\035HyperparameterTu" +
-      "ningJobConfig\022J\n\025hyperparameter_ranges\030\001" +
-      " \001(\0132+.flyteidl.plugins.sagemaker.Parame" +
-      "terRanges\022W\n\017tuning_strategy\030\002 \001(\0162>.fly" +
-      "teidl.plugins.sagemaker.HyperparameterTu" +
-      "ningStrategy.Value\022S\n\020tuning_objective\030\003" +
-      " \001(\01329.flyteidl.plugins.sagemaker.Hyperp" +
-      "arameterTuningObjective\022h\n training_job_" +
-      "early_stopping_type\030\004 \001(\0162>.flyteidl.plu" +
-      "gins.sagemaker.TrainingJobEarlyStoppingT" +
-      "ype.ValueB?Z=github.com/flyteorg/flyte/f" +
-      "lyteidl/gen/pb-go/flyteidl/pluginsb\006prot" +
-      "o3"
-    };
-    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
-        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
-          public com.google.protobuf.ExtensionRegistry assignDescriptors(
-              com.google.protobuf.Descriptors.FileDescriptor root) {
-            descriptor = root;
-            return null;
-          }
-        };
-    com.google.protobuf.Descriptors.FileDescriptor
-      .internalBuildGeneratedFileFrom(descriptorData,
-        new com.google.protobuf.Descriptors.FileDescriptor[] {
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.getDescriptor(),
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.getDescriptor(),
-        }, assigner);
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJob_descriptor =
-      getDescriptor().getMessageTypes().get(0);
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJob_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJob_descriptor,
-        new java.lang.String[] { "TrainingJob", "MaxNumberOfTrainingJobs", "MaxParallelTrainingJobs", });
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjectiveType_descriptor =
-      getDescriptor().getMessageTypes().get(1);
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjectiveType_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjectiveType_descriptor,
-        new java.lang.String[] { });
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjective_descriptor =
-      getDescriptor().getMessageTypes().get(2);
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjective_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningObjective_descriptor,
-        new java.lang.String[] { "ObjectiveType", "MetricName", });
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningStrategy_descriptor =
-      getDescriptor().getMessageTypes().get(3);
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningStrategy_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningStrategy_descriptor,
-        new java.lang.String[] { });
-    internal_static_flyteidl_plugins_sagemaker_TrainingJobEarlyStoppingType_descriptor =
-      getDescriptor().getMessageTypes().get(4);
-    internal_static_flyteidl_plugins_sagemaker_TrainingJobEarlyStoppingType_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_TrainingJobEarlyStoppingType_descriptor,
-        new java.lang.String[] { });
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJobConfig_descriptor =
-      getDescriptor().getMessageTypes().get(5);
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJobConfig_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_HyperparameterTuningJobConfig_descriptor,
-        new java.lang.String[] { "HyperparameterRanges", "TuningStrategy", "TuningObjective", "TrainingJobEarlyStoppingType", });
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.getDescriptor();
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.getDescriptor();
-  }
-
-  // @@protoc_insertion_point(outer_class_scope)
-}
diff --git a/flyteidl/gen/pb-java/flyteidl/plugins/sagemaker/ParameterRangesOuterClass.java b/flyteidl/gen/pb-java/flyteidl/plugins/sagemaker/ParameterRangesOuterClass.java
deleted file mode 100644
index 4c7c23a438..0000000000
--- a/flyteidl/gen/pb-java/flyteidl/plugins/sagemaker/ParameterRangesOuterClass.java
+++ /dev/null
@@ -1,4468 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: flyteidl/plugins/sagemaker/parameter_ranges.proto
-
-package flyteidl.plugins.sagemaker;
-
-public final class ParameterRangesOuterClass {
-  private ParameterRangesOuterClass() {}
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistryLite registry) {
-  }
-
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistry registry) {
-    registerAllExtensions(
-        (com.google.protobuf.ExtensionRegistryLite) registry);
-  }
-  public interface HyperparameterScalingTypeOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-      com.google.protobuf.MessageOrBuilder {
-  }
-  /**
-   * <pre>
-   * HyperparameterScalingType defines the way to increase or decrease the value of the hyperparameter
-   * For details, refer to: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-   * See examples of these scaling type, refer to: https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-automatic-model-tuning-now-supports-random-search-and-hyperparameter-scaling/
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterScalingType}
-   */
-  public  static final class HyperparameterScalingType extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-      HyperparameterScalingTypeOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use HyperparameterScalingType.newBuilder() to construct.
-    private HyperparameterScalingType(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private HyperparameterScalingType() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private HyperparameterScalingType(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterScalingType_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterScalingType_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Builder.class);
-    }
-
-    /**
-     * Protobuf enum {@code flyteidl.plugins.sagemaker.HyperparameterScalingType.Value}
-     */
-    public enum Value
-        implements com.google.protobuf.ProtocolMessageEnum {
-      /**
-       * <code>AUTO = 0;</code>
-       */
-      AUTO(0),
-      /**
-       * <code>LINEAR = 1;</code>
-       */
-      LINEAR(1),
-      /**
-       * <code>LOGARITHMIC = 2;</code>
-       */
-      LOGARITHMIC(2),
-      /**
-       * <code>REVERSELOGARITHMIC = 3;</code>
-       */
-      REVERSELOGARITHMIC(3),
-      UNRECOGNIZED(-1),
-      ;
-
-      /**
-       * <code>AUTO = 0;</code>
-       */
-      public static final int AUTO_VALUE = 0;
-      /**
-       * <code>LINEAR = 1;</code>
-       */
-      public static final int LINEAR_VALUE = 1;
-      /**
-       * <code>LOGARITHMIC = 2;</code>
-       */
-      public static final int LOGARITHMIC_VALUE = 2;
-      /**
-       * <code>REVERSELOGARITHMIC = 3;</code>
-       */
-      public static final int REVERSELOGARITHMIC_VALUE = 3;
-
-
-      public final int getNumber() {
-        if (this == UNRECOGNIZED) {
-          throw new java.lang.IllegalArgumentException(
-              "Can't get the number of an unknown enum value.");
-        }
-        return value;
-      }
-
-      /**
-       * @deprecated Use {@link #forNumber(int)} instead.
-       */
-      @java.lang.Deprecated
-      public static Value valueOf(int value) {
-        return forNumber(value);
-      }
-
-      public static Value forNumber(int value) {
-        switch (value) {
-          case 0: return AUTO;
-          case 1: return LINEAR;
-          case 2: return LOGARITHMIC;
-          case 3: return REVERSELOGARITHMIC;
-          default: return null;
-        }
-      }
-
-      public static com.google.protobuf.Internal.EnumLiteMap<Value>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static final com.google.protobuf.Internal.EnumLiteMap<
-          Value> internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<Value>() {
-              public Value findValueByNumber(int number) {
-                return Value.forNumber(number);
-              }
-            };
-
-      public final com.google.protobuf.Descriptors.EnumValueDescriptor
-          getValueDescriptor() {
-        return getDescriptor().getValues().get(ordinal());
-      }
-      public final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptorForType() {
-        return getDescriptor();
-      }
-      public static final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.getDescriptor().getEnumTypes().get(0);
-      }
-
-      private static final Value[] VALUES = values();
-
-      public static Value valueOf(
-          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
-        if (desc.getType() != getDescriptor()) {
-          throw new java.lang.IllegalArgumentException(
-            "EnumValueDescriptor is not for this type.");
-        }
-        if (desc.getIndex() == -1) {
-          return UNRECOGNIZED;
-        }
-        return VALUES[desc.getIndex()];
-      }
-
-      private final int value;
-
-      private Value(int value) {
-        this.value = value;
-      }
-
-      // @@protoc_insertion_point(enum_scope:flyteidl.plugins.sagemaker.HyperparameterScalingType.Value)
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType other = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType) obj;
-
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * HyperparameterScalingType defines the way to increase or decrease the value of the hyperparameter
-     * For details, refer to: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-     * See examples of these scaling type, refer to: https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-automatic-model-tuning-now-supports-random-search-and-hyperparameter-scaling/
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.HyperparameterScalingType}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingTypeOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterScalingType_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterScalingType_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_HyperparameterScalingType_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType build() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType buildPartial() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType result = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType(this);
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType) {
-          return mergeFrom((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType other) {
-        if (other == flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.getDefaultInstance()) return this;
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.HyperparameterScalingType)
-    private static final flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType();
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<HyperparameterScalingType>
-        PARSER = new com.google.protobuf.AbstractParser<HyperparameterScalingType>() {
-      @java.lang.Override
-      public HyperparameterScalingType parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new HyperparameterScalingType(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<HyperparameterScalingType> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<HyperparameterScalingType> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface ContinuousParameterRangeOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <code>double max_value = 1;</code>
-     */
-    double getMaxValue();
-
-    /**
-     * <code>double min_value = 2;</code>
-     */
-    double getMinValue();
-
-    /**
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-     */
-    int getScalingTypeValue();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-     */
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value getScalingType();
-  }
-  /**
-   * <pre>
-   * ContinuousParameterRange refers to a continuous range of hyperparameter values, allowing
-   * users to specify the search space of a floating-point hyperparameter
-   * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.ContinuousParameterRange}
-   */
-  public  static final class ContinuousParameterRange extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-      ContinuousParameterRangeOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use ContinuousParameterRange.newBuilder() to construct.
-    private ContinuousParameterRange(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private ContinuousParameterRange() {
-      scalingType_ = 0;
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private ContinuousParameterRange(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 9: {
-
-              maxValue_ = input.readDouble();
-              break;
-            }
-            case 17: {
-
-              minValue_ = input.readDouble();
-              break;
-            }
-            case 24: {
-              int rawValue = input.readEnum();
-
-              scalingType_ = rawValue;
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ContinuousParameterRange_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ContinuousParameterRange_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.Builder.class);
-    }
-
-    public static final int MAX_VALUE_FIELD_NUMBER = 1;
-    private double maxValue_;
-    /**
-     * <code>double max_value = 1;</code>
-     */
-    public double getMaxValue() {
-      return maxValue_;
-    }
-
-    public static final int MIN_VALUE_FIELD_NUMBER = 2;
-    private double minValue_;
-    /**
-     * <code>double min_value = 2;</code>
-     */
-    public double getMinValue() {
-      return minValue_;
-    }
-
-    public static final int SCALING_TYPE_FIELD_NUMBER = 3;
-    private int scalingType_;
-    /**
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-     */
-    public int getScalingTypeValue() {
-      return scalingType_;
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-     */
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value getScalingType() {
-      @SuppressWarnings("deprecation")
-      flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value result = flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.valueOf(scalingType_);
-      return result == null ? flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.UNRECOGNIZED : result;
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (maxValue_ != 0D) {
-        output.writeDouble(1, maxValue_);
-      }
-      if (minValue_ != 0D) {
-        output.writeDouble(2, minValue_);
-      }
-      if (scalingType_ != flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.AUTO.getNumber()) {
-        output.writeEnum(3, scalingType_);
-      }
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      if (maxValue_ != 0D) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeDoubleSize(1, maxValue_);
-      }
-      if (minValue_ != 0D) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeDoubleSize(2, minValue_);
-      }
-      if (scalingType_ != flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.AUTO.getNumber()) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(3, scalingType_);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange other = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) obj;
-
-      if (java.lang.Double.doubleToLongBits(getMaxValue())
-          != java.lang.Double.doubleToLongBits(
-              other.getMaxValue())) return false;
-      if (java.lang.Double.doubleToLongBits(getMinValue())
-          != java.lang.Double.doubleToLongBits(
-              other.getMinValue())) return false;
-      if (scalingType_ != other.scalingType_) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + MAX_VALUE_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
-          java.lang.Double.doubleToLongBits(getMaxValue()));
-      hash = (37 * hash) + MIN_VALUE_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
-          java.lang.Double.doubleToLongBits(getMinValue()));
-      hash = (37 * hash) + SCALING_TYPE_FIELD_NUMBER;
-      hash = (53 * hash) + scalingType_;
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * ContinuousParameterRange refers to a continuous range of hyperparameter values, allowing
-     * users to specify the search space of a floating-point hyperparameter
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.ContinuousParameterRange}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRangeOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ContinuousParameterRange_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ContinuousParameterRange_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        maxValue_ = 0D;
-
-        minValue_ = 0D;
-
-        scalingType_ = 0;
-
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ContinuousParameterRange_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange build() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange buildPartial() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange result = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange(this);
-        result.maxValue_ = maxValue_;
-        result.minValue_ = minValue_;
-        result.scalingType_ = scalingType_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) {
-          return mergeFrom((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange other) {
-        if (other == flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.getDefaultInstance()) return this;
-        if (other.getMaxValue() != 0D) {
-          setMaxValue(other.getMaxValue());
-        }
-        if (other.getMinValue() != 0D) {
-          setMinValue(other.getMinValue());
-        }
-        if (other.scalingType_ != 0) {
-          setScalingTypeValue(other.getScalingTypeValue());
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      private double maxValue_ ;
-      /**
-       * <code>double max_value = 1;</code>
-       */
-      public double getMaxValue() {
-        return maxValue_;
-      }
-      /**
-       * <code>double max_value = 1;</code>
-       */
-      public Builder setMaxValue(double value) {
-        
-        maxValue_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>double max_value = 1;</code>
-       */
-      public Builder clearMaxValue() {
-        
-        maxValue_ = 0D;
-        onChanged();
-        return this;
-      }
-
-      private double minValue_ ;
-      /**
-       * <code>double min_value = 2;</code>
-       */
-      public double getMinValue() {
-        return minValue_;
-      }
-      /**
-       * <code>double min_value = 2;</code>
-       */
-      public Builder setMinValue(double value) {
-        
-        minValue_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>double min_value = 2;</code>
-       */
-      public Builder clearMinValue() {
-        
-        minValue_ = 0D;
-        onChanged();
-        return this;
-      }
-
-      private int scalingType_ = 0;
-      /**
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-       */
-      public int getScalingTypeValue() {
-        return scalingType_;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-       */
-      public Builder setScalingTypeValue(int value) {
-        scalingType_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value getScalingType() {
-        @SuppressWarnings("deprecation")
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value result = flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.valueOf(scalingType_);
-        return result == null ? flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.UNRECOGNIZED : result;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-       */
-      public Builder setScalingType(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        
-        scalingType_ = value.getNumber();
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-       */
-      public Builder clearScalingType() {
-        
-        scalingType_ = 0;
-        onChanged();
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.ContinuousParameterRange)
-    private static final flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange();
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<ContinuousParameterRange>
-        PARSER = new com.google.protobuf.AbstractParser<ContinuousParameterRange>() {
-      @java.lang.Override
-      public ContinuousParameterRange parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ContinuousParameterRange(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<ContinuousParameterRange> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<ContinuousParameterRange> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface IntegerParameterRangeOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.IntegerParameterRange)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <code>int64 max_value = 1;</code>
-     */
-    long getMaxValue();
-
-    /**
-     * <code>int64 min_value = 2;</code>
-     */
-    long getMinValue();
-
-    /**
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-     */
-    int getScalingTypeValue();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-     */
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value getScalingType();
-  }
-  /**
-   * <pre>
-   * IntegerParameterRange refers to a discrete range of hyperparameter values, allowing
-   * users to specify the search space of an integer hyperparameter
-   * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.IntegerParameterRange}
-   */
-  public  static final class IntegerParameterRange extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.IntegerParameterRange)
-      IntegerParameterRangeOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use IntegerParameterRange.newBuilder() to construct.
-    private IntegerParameterRange(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private IntegerParameterRange() {
-      scalingType_ = 0;
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private IntegerParameterRange(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 8: {
-
-              maxValue_ = input.readInt64();
-              break;
-            }
-            case 16: {
-
-              minValue_ = input.readInt64();
-              break;
-            }
-            case 24: {
-              int rawValue = input.readEnum();
-
-              scalingType_ = rawValue;
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_IntegerParameterRange_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_IntegerParameterRange_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.Builder.class);
-    }
-
-    public static final int MAX_VALUE_FIELD_NUMBER = 1;
-    private long maxValue_;
-    /**
-     * <code>int64 max_value = 1;</code>
-     */
-    public long getMaxValue() {
-      return maxValue_;
-    }
-
-    public static final int MIN_VALUE_FIELD_NUMBER = 2;
-    private long minValue_;
-    /**
-     * <code>int64 min_value = 2;</code>
-     */
-    public long getMinValue() {
-      return minValue_;
-    }
-
-    public static final int SCALING_TYPE_FIELD_NUMBER = 3;
-    private int scalingType_;
-    /**
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-     */
-    public int getScalingTypeValue() {
-      return scalingType_;
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-     */
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value getScalingType() {
-      @SuppressWarnings("deprecation")
-      flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value result = flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.valueOf(scalingType_);
-      return result == null ? flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.UNRECOGNIZED : result;
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (maxValue_ != 0L) {
-        output.writeInt64(1, maxValue_);
-      }
-      if (minValue_ != 0L) {
-        output.writeInt64(2, minValue_);
-      }
-      if (scalingType_ != flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.AUTO.getNumber()) {
-        output.writeEnum(3, scalingType_);
-      }
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      if (maxValue_ != 0L) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(1, maxValue_);
-      }
-      if (minValue_ != 0L) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(2, minValue_);
-      }
-      if (scalingType_ != flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.AUTO.getNumber()) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(3, scalingType_);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange other = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) obj;
-
-      if (getMaxValue()
-          != other.getMaxValue()) return false;
-      if (getMinValue()
-          != other.getMinValue()) return false;
-      if (scalingType_ != other.scalingType_) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + MAX_VALUE_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
-          getMaxValue());
-      hash = (37 * hash) + MIN_VALUE_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
-          getMinValue());
-      hash = (37 * hash) + SCALING_TYPE_FIELD_NUMBER;
-      hash = (53 * hash) + scalingType_;
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * IntegerParameterRange refers to a discrete range of hyperparameter values, allowing
-     * users to specify the search space of an integer hyperparameter
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.IntegerParameterRange}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.IntegerParameterRange)
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRangeOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_IntegerParameterRange_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_IntegerParameterRange_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        maxValue_ = 0L;
-
-        minValue_ = 0L;
-
-        scalingType_ = 0;
-
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_IntegerParameterRange_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange build() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange buildPartial() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange result = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange(this);
-        result.maxValue_ = maxValue_;
-        result.minValue_ = minValue_;
-        result.scalingType_ = scalingType_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) {
-          return mergeFrom((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange other) {
-        if (other == flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.getDefaultInstance()) return this;
-        if (other.getMaxValue() != 0L) {
-          setMaxValue(other.getMaxValue());
-        }
-        if (other.getMinValue() != 0L) {
-          setMinValue(other.getMinValue());
-        }
-        if (other.scalingType_ != 0) {
-          setScalingTypeValue(other.getScalingTypeValue());
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      private long maxValue_ ;
-      /**
-       * <code>int64 max_value = 1;</code>
-       */
-      public long getMaxValue() {
-        return maxValue_;
-      }
-      /**
-       * <code>int64 max_value = 1;</code>
-       */
-      public Builder setMaxValue(long value) {
-        
-        maxValue_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>int64 max_value = 1;</code>
-       */
-      public Builder clearMaxValue() {
-        
-        maxValue_ = 0L;
-        onChanged();
-        return this;
-      }
-
-      private long minValue_ ;
-      /**
-       * <code>int64 min_value = 2;</code>
-       */
-      public long getMinValue() {
-        return minValue_;
-      }
-      /**
-       * <code>int64 min_value = 2;</code>
-       */
-      public Builder setMinValue(long value) {
-        
-        minValue_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>int64 min_value = 2;</code>
-       */
-      public Builder clearMinValue() {
-        
-        minValue_ = 0L;
-        onChanged();
-        return this;
-      }
-
-      private int scalingType_ = 0;
-      /**
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-       */
-      public int getScalingTypeValue() {
-        return scalingType_;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-       */
-      public Builder setScalingTypeValue(int value) {
-        scalingType_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value getScalingType() {
-        @SuppressWarnings("deprecation")
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value result = flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.valueOf(scalingType_);
-        return result == null ? flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value.UNRECOGNIZED : result;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-       */
-      public Builder setScalingType(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.HyperparameterScalingType.Value value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        
-        scalingType_ = value.getNumber();
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.HyperparameterScalingType.Value scaling_type = 3;</code>
-       */
-      public Builder clearScalingType() {
-        
-        scalingType_ = 0;
-        onChanged();
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.IntegerParameterRange)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.IntegerParameterRange)
-    private static final flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange();
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<IntegerParameterRange>
-        PARSER = new com.google.protobuf.AbstractParser<IntegerParameterRange>() {
-      @java.lang.Override
-      public IntegerParameterRange parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new IntegerParameterRange(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<IntegerParameterRange> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<IntegerParameterRange> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface CategoricalParameterRangeOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <code>repeated string values = 1;</code>
-     */
-    java.util.List<java.lang.String>
-        getValuesList();
-    /**
-     * <code>repeated string values = 1;</code>
-     */
-    int getValuesCount();
-    /**
-     * <code>repeated string values = 1;</code>
-     */
-    java.lang.String getValues(int index);
-    /**
-     * <code>repeated string values = 1;</code>
-     */
-    com.google.protobuf.ByteString
-        getValuesBytes(int index);
-  }
-  /**
-   * <pre>
-   * ContinuousParameterRange refers to a continuous range of hyperparameter values, allowing
-   * users to specify the search space of a floating-point hyperparameter
-   * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.CategoricalParameterRange}
-   */
-  public  static final class CategoricalParameterRange extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-      CategoricalParameterRangeOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use CategoricalParameterRange.newBuilder() to construct.
-    private CategoricalParameterRange(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private CategoricalParameterRange() {
-      values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private CategoricalParameterRange(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10: {
-              java.lang.String s = input.readStringRequireUtf8();
-              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-                values_ = new com.google.protobuf.LazyStringArrayList();
-                mutable_bitField0_ |= 0x00000001;
-              }
-              values_.add(s);
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
-          values_ = values_.getUnmodifiableView();
-        }
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_CategoricalParameterRange_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_CategoricalParameterRange_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.Builder.class);
-    }
-
-    public static final int VALUES_FIELD_NUMBER = 1;
-    private com.google.protobuf.LazyStringList values_;
-    /**
-     * <code>repeated string values = 1;</code>
-     */
-    public com.google.protobuf.ProtocolStringList
-        getValuesList() {
-      return values_;
-    }
-    /**
-     * <code>repeated string values = 1;</code>
-     */
-    public int getValuesCount() {
-      return values_.size();
-    }
-    /**
-     * <code>repeated string values = 1;</code>
-     */
-    public java.lang.String getValues(int index) {
-      return values_.get(index);
-    }
-    /**
-     * <code>repeated string values = 1;</code>
-     */
-    public com.google.protobuf.ByteString
-        getValuesBytes(int index) {
-      return values_.getByteString(index);
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      for (int i = 0; i < values_.size(); i++) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, values_.getRaw(i));
-      }
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      {
-        int dataSize = 0;
-        for (int i = 0; i < values_.size(); i++) {
-          dataSize += computeStringSizeNoTag(values_.getRaw(i));
-        }
-        size += dataSize;
-        size += 1 * getValuesList().size();
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange other = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) obj;
-
-      if (!getValuesList()
-          .equals(other.getValuesList())) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      if (getValuesCount() > 0) {
-        hash = (37 * hash) + VALUES_FIELD_NUMBER;
-        hash = (53 * hash) + getValuesList().hashCode();
-      }
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * ContinuousParameterRange refers to a continuous range of hyperparameter values, allowing
-     * users to specify the search space of a floating-point hyperparameter
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.CategoricalParameterRange}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRangeOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_CategoricalParameterRange_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_CategoricalParameterRange_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_CategoricalParameterRange_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange build() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange buildPartial() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange result = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange(this);
-        int from_bitField0_ = bitField0_;
-        if (((bitField0_ & 0x00000001) != 0)) {
-          values_ = values_.getUnmodifiableView();
-          bitField0_ = (bitField0_ & ~0x00000001);
-        }
-        result.values_ = values_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) {
-          return mergeFrom((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange other) {
-        if (other == flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.getDefaultInstance()) return this;
-        if (!other.values_.isEmpty()) {
-          if (values_.isEmpty()) {
-            values_ = other.values_;
-            bitField0_ = (bitField0_ & ~0x00000001);
-          } else {
-            ensureValuesIsMutable();
-            values_.addAll(other.values_);
-          }
-          onChanged();
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      private int bitField0_;
-
-      private com.google.protobuf.LazyStringList values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      private void ensureValuesIsMutable() {
-        if (!((bitField0_ & 0x00000001) != 0)) {
-          values_ = new com.google.protobuf.LazyStringArrayList(values_);
-          bitField0_ |= 0x00000001;
-         }
-      }
-      /**
-       * <code>repeated string values = 1;</code>
-       */
-      public com.google.protobuf.ProtocolStringList
-          getValuesList() {
-        return values_.getUnmodifiableView();
-      }
-      /**
-       * <code>repeated string values = 1;</code>
-       */
-      public int getValuesCount() {
-        return values_.size();
-      }
-      /**
-       * <code>repeated string values = 1;</code>
-       */
-      public java.lang.String getValues(int index) {
-        return values_.get(index);
-      }
-      /**
-       * <code>repeated string values = 1;</code>
-       */
-      public com.google.protobuf.ByteString
-          getValuesBytes(int index) {
-        return values_.getByteString(index);
-      }
-      /**
-       * <code>repeated string values = 1;</code>
-       */
-      public Builder setValues(
-          int index, java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureValuesIsMutable();
-        values_.set(index, value);
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>repeated string values = 1;</code>
-       */
-      public Builder addValues(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureValuesIsMutable();
-        values_.add(value);
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>repeated string values = 1;</code>
-       */
-      public Builder addAllValues(
-          java.lang.Iterable<java.lang.String> values) {
-        ensureValuesIsMutable();
-        com.google.protobuf.AbstractMessageLite.Builder.addAll(
-            values, values_);
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>repeated string values = 1;</code>
-       */
-      public Builder clearValues() {
-        values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>repeated string values = 1;</code>
-       */
-      public Builder addValuesBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        ensureValuesIsMutable();
-        values_.add(value);
-        onChanged();
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.CategoricalParameterRange)
-    private static final flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange();
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<CategoricalParameterRange>
-        PARSER = new com.google.protobuf.AbstractParser<CategoricalParameterRange>() {
-      @java.lang.Override
-      public CategoricalParameterRange parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new CategoricalParameterRange(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<CategoricalParameterRange> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<CategoricalParameterRange> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface ParameterRangeOneOfOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-     */
-    boolean hasContinuousParameterRange();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-     */
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange getContinuousParameterRange();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-     */
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRangeOrBuilder getContinuousParameterRangeOrBuilder();
-
-    /**
-     * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-     */
-    boolean hasIntegerParameterRange();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-     */
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange getIntegerParameterRange();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-     */
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRangeOrBuilder getIntegerParameterRangeOrBuilder();
-
-    /**
-     * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-     */
-    boolean hasCategoricalParameterRange();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-     */
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange getCategoricalParameterRange();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-     */
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRangeOrBuilder getCategoricalParameterRangeOrBuilder();
-
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf.ParameterRangeTypeCase getParameterRangeTypeCase();
-  }
-  /**
-   * <pre>
-   * ParameterRangeOneOf describes a single ParameterRange, which is a one-of structure that can be one of
-   * the three possible types: ContinuousParameterRange, IntegerParameterRange, and CategoricalParameterRange.
-   * This one-of structure in Flyte enables specifying a Parameter in a type-safe manner
-   * See: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.ParameterRangeOneOf}
-   */
-  public  static final class ParameterRangeOneOf extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-      ParameterRangeOneOfOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use ParameterRangeOneOf.newBuilder() to construct.
-    private ParameterRangeOneOf(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private ParameterRangeOneOf() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private ParameterRangeOneOf(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10: {
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.Builder subBuilder = null;
-              if (parameterRangeTypeCase_ == 1) {
-                subBuilder = ((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) parameterRangeType_).toBuilder();
-              }
-              parameterRangeType_ =
-                  input.readMessage(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) parameterRangeType_);
-                parameterRangeType_ = subBuilder.buildPartial();
-              }
-              parameterRangeTypeCase_ = 1;
-              break;
-            }
-            case 18: {
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.Builder subBuilder = null;
-              if (parameterRangeTypeCase_ == 2) {
-                subBuilder = ((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) parameterRangeType_).toBuilder();
-              }
-              parameterRangeType_ =
-                  input.readMessage(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) parameterRangeType_);
-                parameterRangeType_ = subBuilder.buildPartial();
-              }
-              parameterRangeTypeCase_ = 2;
-              break;
-            }
-            case 26: {
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.Builder subBuilder = null;
-              if (parameterRangeTypeCase_ == 3) {
-                subBuilder = ((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) parameterRangeType_).toBuilder();
-              }
-              parameterRangeType_ =
-                  input.readMessage(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) parameterRangeType_);
-                parameterRangeType_ = subBuilder.buildPartial();
-              }
-              parameterRangeTypeCase_ = 3;
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ParameterRangeOneOf_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ParameterRangeOneOf_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf.Builder.class);
-    }
-
-    private int parameterRangeTypeCase_ = 0;
-    private java.lang.Object parameterRangeType_;
-    public enum ParameterRangeTypeCase
-        implements com.google.protobuf.Internal.EnumLite {
-      CONTINUOUS_PARAMETER_RANGE(1),
-      INTEGER_PARAMETER_RANGE(2),
-      CATEGORICAL_PARAMETER_RANGE(3),
-      PARAMETERRANGETYPE_NOT_SET(0);
-      private final int value;
-      private ParameterRangeTypeCase(int value) {
-        this.value = value;
-      }
-      /**
-       * @deprecated Use {@link #forNumber(int)} instead.
-       */
-      @java.lang.Deprecated
-      public static ParameterRangeTypeCase valueOf(int value) {
-        return forNumber(value);
-      }
-
-      public static ParameterRangeTypeCase forNumber(int value) {
-        switch (value) {
-          case 1: return CONTINUOUS_PARAMETER_RANGE;
-          case 2: return INTEGER_PARAMETER_RANGE;
-          case 3: return CATEGORICAL_PARAMETER_RANGE;
-          case 0: return PARAMETERRANGETYPE_NOT_SET;
-          default: return null;
-        }
-      }
-      public int getNumber() {
-        return this.value;
-      }
-    };
-
-    public ParameterRangeTypeCase
-    getParameterRangeTypeCase() {
-      return ParameterRangeTypeCase.forNumber(
-          parameterRangeTypeCase_);
-    }
-
-    public static final int CONTINUOUS_PARAMETER_RANGE_FIELD_NUMBER = 1;
-    /**
-     * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-     */
-    public boolean hasContinuousParameterRange() {
-      return parameterRangeTypeCase_ == 1;
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-     */
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange getContinuousParameterRange() {
-      if (parameterRangeTypeCase_ == 1) {
-         return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) parameterRangeType_;
-      }
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.getDefaultInstance();
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-     */
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRangeOrBuilder getContinuousParameterRangeOrBuilder() {
-      if (parameterRangeTypeCase_ == 1) {
-         return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) parameterRangeType_;
-      }
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.getDefaultInstance();
-    }
-
-    public static final int INTEGER_PARAMETER_RANGE_FIELD_NUMBER = 2;
-    /**
-     * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-     */
-    public boolean hasIntegerParameterRange() {
-      return parameterRangeTypeCase_ == 2;
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-     */
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange getIntegerParameterRange() {
-      if (parameterRangeTypeCase_ == 2) {
-         return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) parameterRangeType_;
-      }
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.getDefaultInstance();
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-     */
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRangeOrBuilder getIntegerParameterRangeOrBuilder() {
-      if (parameterRangeTypeCase_ == 2) {
-         return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) parameterRangeType_;
-      }
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.getDefaultInstance();
-    }
-
-    public static final int CATEGORICAL_PARAMETER_RANGE_FIELD_NUMBER = 3;
-    /**
-     * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-     */
-    public boolean hasCategoricalParameterRange() {
-      return parameterRangeTypeCase_ == 3;
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-     */
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange getCategoricalParameterRange() {
-      if (parameterRangeTypeCase_ == 3) {
-         return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) parameterRangeType_;
-      }
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.getDefaultInstance();
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-     */
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRangeOrBuilder getCategoricalParameterRangeOrBuilder() {
-      if (parameterRangeTypeCase_ == 3) {
-         return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) parameterRangeType_;
-      }
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.getDefaultInstance();
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (parameterRangeTypeCase_ == 1) {
-        output.writeMessage(1, (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) parameterRangeType_);
-      }
-      if (parameterRangeTypeCase_ == 2) {
-        output.writeMessage(2, (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) parameterRangeType_);
-      }
-      if (parameterRangeTypeCase_ == 3) {
-        output.writeMessage(3, (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) parameterRangeType_);
-      }
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      if (parameterRangeTypeCase_ == 1) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(1, (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) parameterRangeType_);
-      }
-      if (parameterRangeTypeCase_ == 2) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(2, (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) parameterRangeType_);
-      }
-      if (parameterRangeTypeCase_ == 3) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(3, (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) parameterRangeType_);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf other = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf) obj;
-
-      if (!getParameterRangeTypeCase().equals(other.getParameterRangeTypeCase())) return false;
-      switch (parameterRangeTypeCase_) {
-        case 1:
-          if (!getContinuousParameterRange()
-              .equals(other.getContinuousParameterRange())) return false;
-          break;
-        case 2:
-          if (!getIntegerParameterRange()
-              .equals(other.getIntegerParameterRange())) return false;
-          break;
-        case 3:
-          if (!getCategoricalParameterRange()
-              .equals(other.getCategoricalParameterRange())) return false;
-          break;
-        case 0:
-        default:
-      }
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      switch (parameterRangeTypeCase_) {
-        case 1:
-          hash = (37 * hash) + CONTINUOUS_PARAMETER_RANGE_FIELD_NUMBER;
-          hash = (53 * hash) + getContinuousParameterRange().hashCode();
-          break;
-        case 2:
-          hash = (37 * hash) + INTEGER_PARAMETER_RANGE_FIELD_NUMBER;
-          hash = (53 * hash) + getIntegerParameterRange().hashCode();
-          break;
-        case 3:
-          hash = (37 * hash) + CATEGORICAL_PARAMETER_RANGE_FIELD_NUMBER;
-          hash = (53 * hash) + getCategoricalParameterRange().hashCode();
-          break;
-        case 0:
-        default:
-      }
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * ParameterRangeOneOf describes a single ParameterRange, which is a one-of structure that can be one of
-     * the three possible types: ContinuousParameterRange, IntegerParameterRange, and CategoricalParameterRange.
-     * This one-of structure in Flyte enables specifying a Parameter in a type-safe manner
-     * See: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.ParameterRangeOneOf}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOfOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ParameterRangeOneOf_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ParameterRangeOneOf_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        parameterRangeTypeCase_ = 0;
-        parameterRangeType_ = null;
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ParameterRangeOneOf_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf build() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf buildPartial() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf result = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf(this);
-        if (parameterRangeTypeCase_ == 1) {
-          if (continuousParameterRangeBuilder_ == null) {
-            result.parameterRangeType_ = parameterRangeType_;
-          } else {
-            result.parameterRangeType_ = continuousParameterRangeBuilder_.build();
-          }
-        }
-        if (parameterRangeTypeCase_ == 2) {
-          if (integerParameterRangeBuilder_ == null) {
-            result.parameterRangeType_ = parameterRangeType_;
-          } else {
-            result.parameterRangeType_ = integerParameterRangeBuilder_.build();
-          }
-        }
-        if (parameterRangeTypeCase_ == 3) {
-          if (categoricalParameterRangeBuilder_ == null) {
-            result.parameterRangeType_ = parameterRangeType_;
-          } else {
-            result.parameterRangeType_ = categoricalParameterRangeBuilder_.build();
-          }
-        }
-        result.parameterRangeTypeCase_ = parameterRangeTypeCase_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf) {
-          return mergeFrom((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf other) {
-        if (other == flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf.getDefaultInstance()) return this;
-        switch (other.getParameterRangeTypeCase()) {
-          case CONTINUOUS_PARAMETER_RANGE: {
-            mergeContinuousParameterRange(other.getContinuousParameterRange());
-            break;
-          }
-          case INTEGER_PARAMETER_RANGE: {
-            mergeIntegerParameterRange(other.getIntegerParameterRange());
-            break;
-          }
-          case CATEGORICAL_PARAMETER_RANGE: {
-            mergeCategoricalParameterRange(other.getCategoricalParameterRange());
-            break;
-          }
-          case PARAMETERRANGETYPE_NOT_SET: {
-            break;
-          }
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      private int parameterRangeTypeCase_ = 0;
-      private java.lang.Object parameterRangeType_;
-      public ParameterRangeTypeCase
-          getParameterRangeTypeCase() {
-        return ParameterRangeTypeCase.forNumber(
-            parameterRangeTypeCase_);
-      }
-
-      public Builder clearParameterRangeType() {
-        parameterRangeTypeCase_ = 0;
-        parameterRangeType_ = null;
-        onChanged();
-        return this;
-      }
-
-
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRangeOrBuilder> continuousParameterRangeBuilder_;
-      /**
-       * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-       */
-      public boolean hasContinuousParameterRange() {
-        return parameterRangeTypeCase_ == 1;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange getContinuousParameterRange() {
-        if (continuousParameterRangeBuilder_ == null) {
-          if (parameterRangeTypeCase_ == 1) {
-            return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) parameterRangeType_;
-          }
-          return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.getDefaultInstance();
-        } else {
-          if (parameterRangeTypeCase_ == 1) {
-            return continuousParameterRangeBuilder_.getMessage();
-          }
-          return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.getDefaultInstance();
-        }
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-       */
-      public Builder setContinuousParameterRange(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange value) {
-        if (continuousParameterRangeBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          parameterRangeType_ = value;
-          onChanged();
-        } else {
-          continuousParameterRangeBuilder_.setMessage(value);
-        }
-        parameterRangeTypeCase_ = 1;
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-       */
-      public Builder setContinuousParameterRange(
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.Builder builderForValue) {
-        if (continuousParameterRangeBuilder_ == null) {
-          parameterRangeType_ = builderForValue.build();
-          onChanged();
-        } else {
-          continuousParameterRangeBuilder_.setMessage(builderForValue.build());
-        }
-        parameterRangeTypeCase_ = 1;
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-       */
-      public Builder mergeContinuousParameterRange(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange value) {
-        if (continuousParameterRangeBuilder_ == null) {
-          if (parameterRangeTypeCase_ == 1 &&
-              parameterRangeType_ != flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.getDefaultInstance()) {
-            parameterRangeType_ = flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.newBuilder((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) parameterRangeType_)
-                .mergeFrom(value).buildPartial();
-          } else {
-            parameterRangeType_ = value;
-          }
-          onChanged();
-        } else {
-          if (parameterRangeTypeCase_ == 1) {
-            continuousParameterRangeBuilder_.mergeFrom(value);
-          }
-          continuousParameterRangeBuilder_.setMessage(value);
-        }
-        parameterRangeTypeCase_ = 1;
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-       */
-      public Builder clearContinuousParameterRange() {
-        if (continuousParameterRangeBuilder_ == null) {
-          if (parameterRangeTypeCase_ == 1) {
-            parameterRangeTypeCase_ = 0;
-            parameterRangeType_ = null;
-            onChanged();
-          }
-        } else {
-          if (parameterRangeTypeCase_ == 1) {
-            parameterRangeTypeCase_ = 0;
-            parameterRangeType_ = null;
-          }
-          continuousParameterRangeBuilder_.clear();
-        }
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.Builder getContinuousParameterRangeBuilder() {
-        return getContinuousParameterRangeFieldBuilder().getBuilder();
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRangeOrBuilder getContinuousParameterRangeOrBuilder() {
-        if ((parameterRangeTypeCase_ == 1) && (continuousParameterRangeBuilder_ != null)) {
-          return continuousParameterRangeBuilder_.getMessageOrBuilder();
-        } else {
-          if (parameterRangeTypeCase_ == 1) {
-            return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) parameterRangeType_;
-          }
-          return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.getDefaultInstance();
-        }
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.ContinuousParameterRange continuous_parameter_range = 1;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRangeOrBuilder> 
-          getContinuousParameterRangeFieldBuilder() {
-        if (continuousParameterRangeBuilder_ == null) {
-          if (!(parameterRangeTypeCase_ == 1)) {
-            parameterRangeType_ = flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.getDefaultInstance();
-          }
-          continuousParameterRangeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRangeOrBuilder>(
-                  (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ContinuousParameterRange) parameterRangeType_,
-                  getParentForChildren(),
-                  isClean());
-          parameterRangeType_ = null;
-        }
-        parameterRangeTypeCase_ = 1;
-        onChanged();;
-        return continuousParameterRangeBuilder_;
-      }
-
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRangeOrBuilder> integerParameterRangeBuilder_;
-      /**
-       * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-       */
-      public boolean hasIntegerParameterRange() {
-        return parameterRangeTypeCase_ == 2;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange getIntegerParameterRange() {
-        if (integerParameterRangeBuilder_ == null) {
-          if (parameterRangeTypeCase_ == 2) {
-            return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) parameterRangeType_;
-          }
-          return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.getDefaultInstance();
-        } else {
-          if (parameterRangeTypeCase_ == 2) {
-            return integerParameterRangeBuilder_.getMessage();
-          }
-          return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.getDefaultInstance();
-        }
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-       */
-      public Builder setIntegerParameterRange(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange value) {
-        if (integerParameterRangeBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          parameterRangeType_ = value;
-          onChanged();
-        } else {
-          integerParameterRangeBuilder_.setMessage(value);
-        }
-        parameterRangeTypeCase_ = 2;
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-       */
-      public Builder setIntegerParameterRange(
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.Builder builderForValue) {
-        if (integerParameterRangeBuilder_ == null) {
-          parameterRangeType_ = builderForValue.build();
-          onChanged();
-        } else {
-          integerParameterRangeBuilder_.setMessage(builderForValue.build());
-        }
-        parameterRangeTypeCase_ = 2;
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-       */
-      public Builder mergeIntegerParameterRange(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange value) {
-        if (integerParameterRangeBuilder_ == null) {
-          if (parameterRangeTypeCase_ == 2 &&
-              parameterRangeType_ != flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.getDefaultInstance()) {
-            parameterRangeType_ = flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.newBuilder((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) parameterRangeType_)
-                .mergeFrom(value).buildPartial();
-          } else {
-            parameterRangeType_ = value;
-          }
-          onChanged();
-        } else {
-          if (parameterRangeTypeCase_ == 2) {
-            integerParameterRangeBuilder_.mergeFrom(value);
-          }
-          integerParameterRangeBuilder_.setMessage(value);
-        }
-        parameterRangeTypeCase_ = 2;
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-       */
-      public Builder clearIntegerParameterRange() {
-        if (integerParameterRangeBuilder_ == null) {
-          if (parameterRangeTypeCase_ == 2) {
-            parameterRangeTypeCase_ = 0;
-            parameterRangeType_ = null;
-            onChanged();
-          }
-        } else {
-          if (parameterRangeTypeCase_ == 2) {
-            parameterRangeTypeCase_ = 0;
-            parameterRangeType_ = null;
-          }
-          integerParameterRangeBuilder_.clear();
-        }
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.Builder getIntegerParameterRangeBuilder() {
-        return getIntegerParameterRangeFieldBuilder().getBuilder();
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRangeOrBuilder getIntegerParameterRangeOrBuilder() {
-        if ((parameterRangeTypeCase_ == 2) && (integerParameterRangeBuilder_ != null)) {
-          return integerParameterRangeBuilder_.getMessageOrBuilder();
-        } else {
-          if (parameterRangeTypeCase_ == 2) {
-            return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) parameterRangeType_;
-          }
-          return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.getDefaultInstance();
-        }
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.IntegerParameterRange integer_parameter_range = 2;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRangeOrBuilder> 
-          getIntegerParameterRangeFieldBuilder() {
-        if (integerParameterRangeBuilder_ == null) {
-          if (!(parameterRangeTypeCase_ == 2)) {
-            parameterRangeType_ = flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.getDefaultInstance();
-          }
-          integerParameterRangeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRangeOrBuilder>(
-                  (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.IntegerParameterRange) parameterRangeType_,
-                  getParentForChildren(),
-                  isClean());
-          parameterRangeType_ = null;
-        }
-        parameterRangeTypeCase_ = 2;
-        onChanged();;
-        return integerParameterRangeBuilder_;
-      }
-
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRangeOrBuilder> categoricalParameterRangeBuilder_;
-      /**
-       * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-       */
-      public boolean hasCategoricalParameterRange() {
-        return parameterRangeTypeCase_ == 3;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange getCategoricalParameterRange() {
-        if (categoricalParameterRangeBuilder_ == null) {
-          if (parameterRangeTypeCase_ == 3) {
-            return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) parameterRangeType_;
-          }
-          return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.getDefaultInstance();
-        } else {
-          if (parameterRangeTypeCase_ == 3) {
-            return categoricalParameterRangeBuilder_.getMessage();
-          }
-          return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.getDefaultInstance();
-        }
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-       */
-      public Builder setCategoricalParameterRange(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange value) {
-        if (categoricalParameterRangeBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          parameterRangeType_ = value;
-          onChanged();
-        } else {
-          categoricalParameterRangeBuilder_.setMessage(value);
-        }
-        parameterRangeTypeCase_ = 3;
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-       */
-      public Builder setCategoricalParameterRange(
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.Builder builderForValue) {
-        if (categoricalParameterRangeBuilder_ == null) {
-          parameterRangeType_ = builderForValue.build();
-          onChanged();
-        } else {
-          categoricalParameterRangeBuilder_.setMessage(builderForValue.build());
-        }
-        parameterRangeTypeCase_ = 3;
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-       */
-      public Builder mergeCategoricalParameterRange(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange value) {
-        if (categoricalParameterRangeBuilder_ == null) {
-          if (parameterRangeTypeCase_ == 3 &&
-              parameterRangeType_ != flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.getDefaultInstance()) {
-            parameterRangeType_ = flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.newBuilder((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) parameterRangeType_)
-                .mergeFrom(value).buildPartial();
-          } else {
-            parameterRangeType_ = value;
-          }
-          onChanged();
-        } else {
-          if (parameterRangeTypeCase_ == 3) {
-            categoricalParameterRangeBuilder_.mergeFrom(value);
-          }
-          categoricalParameterRangeBuilder_.setMessage(value);
-        }
-        parameterRangeTypeCase_ = 3;
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-       */
-      public Builder clearCategoricalParameterRange() {
-        if (categoricalParameterRangeBuilder_ == null) {
-          if (parameterRangeTypeCase_ == 3) {
-            parameterRangeTypeCase_ = 0;
-            parameterRangeType_ = null;
-            onChanged();
-          }
-        } else {
-          if (parameterRangeTypeCase_ == 3) {
-            parameterRangeTypeCase_ = 0;
-            parameterRangeType_ = null;
-          }
-          categoricalParameterRangeBuilder_.clear();
-        }
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.Builder getCategoricalParameterRangeBuilder() {
-        return getCategoricalParameterRangeFieldBuilder().getBuilder();
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-       */
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRangeOrBuilder getCategoricalParameterRangeOrBuilder() {
-        if ((parameterRangeTypeCase_ == 3) && (categoricalParameterRangeBuilder_ != null)) {
-          return categoricalParameterRangeBuilder_.getMessageOrBuilder();
-        } else {
-          if (parameterRangeTypeCase_ == 3) {
-            return (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) parameterRangeType_;
-          }
-          return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.getDefaultInstance();
-        }
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.CategoricalParameterRange categorical_parameter_range = 3;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRangeOrBuilder> 
-          getCategoricalParameterRangeFieldBuilder() {
-        if (categoricalParameterRangeBuilder_ == null) {
-          if (!(parameterRangeTypeCase_ == 3)) {
-            parameterRangeType_ = flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.getDefaultInstance();
-          }
-          categoricalParameterRangeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange.Builder, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRangeOrBuilder>(
-                  (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.CategoricalParameterRange) parameterRangeType_,
-                  getParentForChildren(),
-                  isClean());
-          parameterRangeType_ = null;
-        }
-        parameterRangeTypeCase_ = 3;
-        onChanged();;
-        return categoricalParameterRangeBuilder_;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.ParameterRangeOneOf)
-    private static final flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf();
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<ParameterRangeOneOf>
-        PARSER = new com.google.protobuf.AbstractParser<ParameterRangeOneOf>() {
-      @java.lang.Override
-      public ParameterRangeOneOf parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ParameterRangeOneOf(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<ParameterRangeOneOf> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<ParameterRangeOneOf> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface ParameterRangesOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.ParameterRanges)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-     */
-    int getParameterRangeMapCount();
-    /**
-     * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-     */
-    boolean containsParameterRangeMap(
-        java.lang.String key);
-    /**
-     * Use {@link #getParameterRangeMapMap()} instead.
-     */
-    @java.lang.Deprecated
-    java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf>
-    getParameterRangeMap();
-    /**
-     * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-     */
-    java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf>
-    getParameterRangeMapMap();
-    /**
-     * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-     */
-
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf getParameterRangeMapOrDefault(
-        java.lang.String key,
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf defaultValue);
-    /**
-     * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-     */
-
-    flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf getParameterRangeMapOrThrow(
-        java.lang.String key);
-  }
-  /**
-   * <pre>
-   * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-   * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.ParameterRanges}
-   */
-  public  static final class ParameterRanges extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.ParameterRanges)
-      ParameterRangesOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use ParameterRanges.newBuilder() to construct.
-    private ParameterRanges(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private ParameterRanges() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private ParameterRanges(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10: {
-              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-                parameterRangeMap_ = com.google.protobuf.MapField.newMapField(
-                    ParameterRangeMapDefaultEntryHolder.defaultEntry);
-                mutable_bitField0_ |= 0x00000001;
-              }
-              com.google.protobuf.MapEntry<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf>
-              parameterRangeMap__ = input.readMessage(
-                  ParameterRangeMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
-              parameterRangeMap_.getMutableMap().put(
-                  parameterRangeMap__.getKey(), parameterRangeMap__.getValue());
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ParameterRanges_descriptor;
-    }
-
-    @SuppressWarnings({"rawtypes"})
-    @java.lang.Override
-    protected com.google.protobuf.MapField internalGetMapField(
-        int number) {
-      switch (number) {
-        case 1:
-          return internalGetParameterRangeMap();
-        default:
-          throw new RuntimeException(
-              "Invalid map field number: " + number);
-      }
-    }
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ParameterRanges_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.Builder.class);
-    }
-
-    public static final int PARAMETER_RANGE_MAP_FIELD_NUMBER = 1;
-    private static final class ParameterRangeMapDefaultEntryHolder {
-      static final com.google.protobuf.MapEntry<
-          java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> defaultEntry =
-              com.google.protobuf.MapEntry
-              .<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf>newDefaultInstance(
-                  flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ParameterRanges_ParameterRangeMapEntry_descriptor, 
-                  com.google.protobuf.WireFormat.FieldType.STRING,
-                  "",
-                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
-                  flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf.getDefaultInstance());
-    }
-    private com.google.protobuf.MapField<
-        java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> parameterRangeMap_;
-    private com.google.protobuf.MapField<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf>
-    internalGetParameterRangeMap() {
-      if (parameterRangeMap_ == null) {
-        return com.google.protobuf.MapField.emptyMapField(
-            ParameterRangeMapDefaultEntryHolder.defaultEntry);
-      }
-      return parameterRangeMap_;
-    }
-
-    public int getParameterRangeMapCount() {
-      return internalGetParameterRangeMap().getMap().size();
-    }
-    /**
-     * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-     */
-
-    public boolean containsParameterRangeMap(
-        java.lang.String key) {
-      if (key == null) { throw new java.lang.NullPointerException(); }
-      return internalGetParameterRangeMap().getMap().containsKey(key);
-    }
-    /**
-     * Use {@link #getParameterRangeMapMap()} instead.
-     */
-    @java.lang.Deprecated
-    public java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> getParameterRangeMap() {
-      return getParameterRangeMapMap();
-    }
-    /**
-     * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-     */
-
-    public java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> getParameterRangeMapMap() {
-      return internalGetParameterRangeMap().getMap();
-    }
-    /**
-     * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-     */
-
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf getParameterRangeMapOrDefault(
-        java.lang.String key,
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf defaultValue) {
-      if (key == null) { throw new java.lang.NullPointerException(); }
-      java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> map =
-          internalGetParameterRangeMap().getMap();
-      return map.containsKey(key) ? map.get(key) : defaultValue;
-    }
-    /**
-     * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-     */
-
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf getParameterRangeMapOrThrow(
-        java.lang.String key) {
-      if (key == null) { throw new java.lang.NullPointerException(); }
-      java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> map =
-          internalGetParameterRangeMap().getMap();
-      if (!map.containsKey(key)) {
-        throw new java.lang.IllegalArgumentException();
-      }
-      return map.get(key);
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      com.google.protobuf.GeneratedMessageV3
-        .serializeStringMapTo(
-          output,
-          internalGetParameterRangeMap(),
-          ParameterRangeMapDefaultEntryHolder.defaultEntry,
-          1);
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      for (java.util.Map.Entry<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> entry
-           : internalGetParameterRangeMap().getMap().entrySet()) {
-        com.google.protobuf.MapEntry<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf>
-        parameterRangeMap__ = ParameterRangeMapDefaultEntryHolder.defaultEntry.newBuilderForType()
-            .setKey(entry.getKey())
-            .setValue(entry.getValue())
-            .build();
-        size += com.google.protobuf.CodedOutputStream
-            .computeMessageSize(1, parameterRangeMap__);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges other = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges) obj;
-
-      if (!internalGetParameterRangeMap().equals(
-          other.internalGetParameterRangeMap())) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      if (!internalGetParameterRangeMap().getMap().isEmpty()) {
-        hash = (37 * hash) + PARAMETER_RANGE_MAP_FIELD_NUMBER;
-        hash = (53 * hash) + internalGetParameterRangeMap().hashCode();
-      }
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.ParameterRanges}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.ParameterRanges)
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangesOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ParameterRanges_descriptor;
-      }
-
-      @SuppressWarnings({"rawtypes"})
-      protected com.google.protobuf.MapField internalGetMapField(
-          int number) {
-        switch (number) {
-          case 1:
-            return internalGetParameterRangeMap();
-          default:
-            throw new RuntimeException(
-                "Invalid map field number: " + number);
-        }
-      }
-      @SuppressWarnings({"rawtypes"})
-      protected com.google.protobuf.MapField internalGetMutableMapField(
-          int number) {
-        switch (number) {
-          case 1:
-            return internalGetMutableParameterRangeMap();
-          default:
-            throw new RuntimeException(
-                "Invalid map field number: " + number);
-        }
-      }
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ParameterRanges_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.class, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        internalGetMutableParameterRangeMap().clear();
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.internal_static_flyteidl_plugins_sagemaker_ParameterRanges_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges build() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges buildPartial() {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges result = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges(this);
-        int from_bitField0_ = bitField0_;
-        result.parameterRangeMap_ = internalGetParameterRangeMap();
-        result.parameterRangeMap_.makeImmutable();
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges) {
-          return mergeFrom((flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges other) {
-        if (other == flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges.getDefaultInstance()) return this;
-        internalGetMutableParameterRangeMap().mergeFrom(
-            other.internalGetParameterRangeMap());
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      private int bitField0_;
-
-      private com.google.protobuf.MapField<
-          java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> parameterRangeMap_;
-      private com.google.protobuf.MapField<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf>
-      internalGetParameterRangeMap() {
-        if (parameterRangeMap_ == null) {
-          return com.google.protobuf.MapField.emptyMapField(
-              ParameterRangeMapDefaultEntryHolder.defaultEntry);
-        }
-        return parameterRangeMap_;
-      }
-      private com.google.protobuf.MapField<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf>
-      internalGetMutableParameterRangeMap() {
-        onChanged();;
-        if (parameterRangeMap_ == null) {
-          parameterRangeMap_ = com.google.protobuf.MapField.newMapField(
-              ParameterRangeMapDefaultEntryHolder.defaultEntry);
-        }
-        if (!parameterRangeMap_.isMutable()) {
-          parameterRangeMap_ = parameterRangeMap_.copy();
-        }
-        return parameterRangeMap_;
-      }
-
-      public int getParameterRangeMapCount() {
-        return internalGetParameterRangeMap().getMap().size();
-      }
-      /**
-       * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-       */
-
-      public boolean containsParameterRangeMap(
-          java.lang.String key) {
-        if (key == null) { throw new java.lang.NullPointerException(); }
-        return internalGetParameterRangeMap().getMap().containsKey(key);
-      }
-      /**
-       * Use {@link #getParameterRangeMapMap()} instead.
-       */
-      @java.lang.Deprecated
-      public java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> getParameterRangeMap() {
-        return getParameterRangeMapMap();
-      }
-      /**
-       * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-       */
-
-      public java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> getParameterRangeMapMap() {
-        return internalGetParameterRangeMap().getMap();
-      }
-      /**
-       * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-       */
-
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf getParameterRangeMapOrDefault(
-          java.lang.String key,
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf defaultValue) {
-        if (key == null) { throw new java.lang.NullPointerException(); }
-        java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> map =
-            internalGetParameterRangeMap().getMap();
-        return map.containsKey(key) ? map.get(key) : defaultValue;
-      }
-      /**
-       * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-       */
-
-      public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf getParameterRangeMapOrThrow(
-          java.lang.String key) {
-        if (key == null) { throw new java.lang.NullPointerException(); }
-        java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> map =
-            internalGetParameterRangeMap().getMap();
-        if (!map.containsKey(key)) {
-          throw new java.lang.IllegalArgumentException();
-        }
-        return map.get(key);
-      }
-
-      public Builder clearParameterRangeMap() {
-        internalGetMutableParameterRangeMap().getMutableMap()
-            .clear();
-        return this;
-      }
-      /**
-       * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-       */
-
-      public Builder removeParameterRangeMap(
-          java.lang.String key) {
-        if (key == null) { throw new java.lang.NullPointerException(); }
-        internalGetMutableParameterRangeMap().getMutableMap()
-            .remove(key);
-        return this;
-      }
-      /**
-       * Use alternate mutation accessors instead.
-       */
-      @java.lang.Deprecated
-      public java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf>
-      getMutableParameterRangeMap() {
-        return internalGetMutableParameterRangeMap().getMutableMap();
-      }
-      /**
-       * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-       */
-      public Builder putParameterRangeMap(
-          java.lang.String key,
-          flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf value) {
-        if (key == null) { throw new java.lang.NullPointerException(); }
-        if (value == null) { throw new java.lang.NullPointerException(); }
-        internalGetMutableParameterRangeMap().getMutableMap()
-            .put(key, value);
-        return this;
-      }
-      /**
-       * <code>map&lt;string, .flyteidl.plugins.sagemaker.ParameterRangeOneOf&gt; parameter_range_map = 1;</code>
-       */
-
-      public Builder putAllParameterRangeMap(
-          java.util.Map<java.lang.String, flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRangeOneOf> values) {
-        internalGetMutableParameterRangeMap().getMutableMap()
-            .putAll(values);
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.ParameterRanges)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.ParameterRanges)
-    private static final flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges();
-    }
-
-    public static flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<ParameterRanges>
-        PARSER = new com.google.protobuf.AbstractParser<ParameterRanges>() {
-      @java.lang.Override
-      public ParameterRanges parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ParameterRanges(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<ParameterRanges> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<ParameterRanges> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.ParameterRangesOuterClass.ParameterRanges getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterScalingType_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_HyperparameterScalingType_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_ContinuousParameterRange_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_ContinuousParameterRange_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_IntegerParameterRange_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_IntegerParameterRange_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_CategoricalParameterRange_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_CategoricalParameterRange_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_ParameterRangeOneOf_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_ParameterRangeOneOf_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_ParameterRanges_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_ParameterRanges_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_ParameterRanges_ParameterRangeMapEntry_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_ParameterRanges_ParameterRangeMapEntry_fieldAccessorTable;
-
-  public static com.google.protobuf.Descriptors.FileDescriptor
-      getDescriptor() {
-    return descriptor;
-  }
-  private static  com.google.protobuf.Descriptors.FileDescriptor
-      descriptor;
-  static {
-    java.lang.String[] descriptorData = {
-      "\n1flyteidl/plugins/sagemaker/parameter_r" +
-      "anges.proto\022\032flyteidl.plugins.sagemaker\"" +
-      "c\n\031HyperparameterScalingType\"F\n\005Value\022\010\n" +
-      "\004AUTO\020\000\022\n\n\006LINEAR\020\001\022\017\n\013LOGARITHMIC\020\002\022\026\n\022" +
-      "REVERSELOGARITHMIC\020\003\"\223\001\n\030ContinuousParam" +
-      "eterRange\022\021\n\tmax_value\030\001 \001(\001\022\021\n\tmin_valu" +
-      "e\030\002 \001(\001\022Q\n\014scaling_type\030\003 \001(\0162;.flyteidl" +
-      ".plugins.sagemaker.HyperparameterScaling" +
-      "Type.Value\"\220\001\n\025IntegerParameterRange\022\021\n\t" +
-      "max_value\030\001 \001(\003\022\021\n\tmin_value\030\002 \001(\003\022Q\n\014sc" +
-      "aling_type\030\003 \001(\0162;.flyteidl.plugins.sage" +
-      "maker.HyperparameterScalingType.Value\"+\n" +
-      "\031CategoricalParameterRange\022\016\n\006values\030\001 \003" +
-      "(\t\"\275\002\n\023ParameterRangeOneOf\022Z\n\032continuous" +
-      "_parameter_range\030\001 \001(\01324.flyteidl.plugin" +
-      "s.sagemaker.ContinuousParameterRangeH\000\022T" +
-      "\n\027integer_parameter_range\030\002 \001(\01321.flytei" +
-      "dl.plugins.sagemaker.IntegerParameterRan" +
-      "geH\000\022\\\n\033categorical_parameter_range\030\003 \001(" +
-      "\01325.flyteidl.plugins.sagemaker.Categoric" +
-      "alParameterRangeH\000B\026\n\024parameter_range_ty" +
-      "pe\"\335\001\n\017ParameterRanges\022_\n\023parameter_rang" +
-      "e_map\030\001 \003(\0132B.flyteidl.plugins.sagemaker" +
-      ".ParameterRanges.ParameterRangeMapEntry\032" +
-      "i\n\026ParameterRangeMapEntry\022\013\n\003key\030\001 \001(\t\022>" +
-      "\n\005value\030\002 \001(\0132/.flyteidl.plugins.sagemak" +
-      "er.ParameterRangeOneOf:\0028\001B?Z=github.com" +
-      "/flyteorg/flyte/flyteidl/gen/pb-go/flyte" +
-      "idl/pluginsb\006proto3"
-    };
-    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
-        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
-          public com.google.protobuf.ExtensionRegistry assignDescriptors(
-              com.google.protobuf.Descriptors.FileDescriptor root) {
-            descriptor = root;
-            return null;
-          }
-        };
-    com.google.protobuf.Descriptors.FileDescriptor
-      .internalBuildGeneratedFileFrom(descriptorData,
-        new com.google.protobuf.Descriptors.FileDescriptor[] {
-        }, assigner);
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterScalingType_descriptor =
-      getDescriptor().getMessageTypes().get(0);
-    internal_static_flyteidl_plugins_sagemaker_HyperparameterScalingType_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_HyperparameterScalingType_descriptor,
-        new java.lang.String[] { });
-    internal_static_flyteidl_plugins_sagemaker_ContinuousParameterRange_descriptor =
-      getDescriptor().getMessageTypes().get(1);
-    internal_static_flyteidl_plugins_sagemaker_ContinuousParameterRange_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_ContinuousParameterRange_descriptor,
-        new java.lang.String[] { "MaxValue", "MinValue", "ScalingType", });
-    internal_static_flyteidl_plugins_sagemaker_IntegerParameterRange_descriptor =
-      getDescriptor().getMessageTypes().get(2);
-    internal_static_flyteidl_plugins_sagemaker_IntegerParameterRange_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_IntegerParameterRange_descriptor,
-        new java.lang.String[] { "MaxValue", "MinValue", "ScalingType", });
-    internal_static_flyteidl_plugins_sagemaker_CategoricalParameterRange_descriptor =
-      getDescriptor().getMessageTypes().get(3);
-    internal_static_flyteidl_plugins_sagemaker_CategoricalParameterRange_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_CategoricalParameterRange_descriptor,
-        new java.lang.String[] { "Values", });
-    internal_static_flyteidl_plugins_sagemaker_ParameterRangeOneOf_descriptor =
-      getDescriptor().getMessageTypes().get(4);
-    internal_static_flyteidl_plugins_sagemaker_ParameterRangeOneOf_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_ParameterRangeOneOf_descriptor,
-        new java.lang.String[] { "ContinuousParameterRange", "IntegerParameterRange", "CategoricalParameterRange", "ParameterRangeType", });
-    internal_static_flyteidl_plugins_sagemaker_ParameterRanges_descriptor =
-      getDescriptor().getMessageTypes().get(5);
-    internal_static_flyteidl_plugins_sagemaker_ParameterRanges_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_ParameterRanges_descriptor,
-        new java.lang.String[] { "ParameterRangeMap", });
-    internal_static_flyteidl_plugins_sagemaker_ParameterRanges_ParameterRangeMapEntry_descriptor =
-      internal_static_flyteidl_plugins_sagemaker_ParameterRanges_descriptor.getNestedTypes().get(0);
-    internal_static_flyteidl_plugins_sagemaker_ParameterRanges_ParameterRangeMapEntry_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_ParameterRanges_ParameterRangeMapEntry_descriptor,
-        new java.lang.String[] { "Key", "Value", });
-  }
-
-  // @@protoc_insertion_point(outer_class_scope)
-}
diff --git a/flyteidl/gen/pb-java/flyteidl/plugins/sagemaker/TrainingJobOuterClass.java b/flyteidl/gen/pb-java/flyteidl/plugins/sagemaker/TrainingJobOuterClass.java
deleted file mode 100644
index 7b81bb48b6..0000000000
--- a/flyteidl/gen/pb-java/flyteidl/plugins/sagemaker/TrainingJobOuterClass.java
+++ /dev/null
@@ -1,6321 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: flyteidl/plugins/sagemaker/training_job.proto
-
-package flyteidl.plugins.sagemaker;
-
-public final class TrainingJobOuterClass {
-  private TrainingJobOuterClass() {}
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistryLite registry) {
-  }
-
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistry registry) {
-    registerAllExtensions(
-        (com.google.protobuf.ExtensionRegistryLite) registry);
-  }
-  public interface InputModeOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.InputMode)
-      com.google.protobuf.MessageOrBuilder {
-  }
-  /**
-   * <pre>
-   * The input mode that the algorithm supports. When using the File input mode, SageMaker downloads
-   * the training data from S3 to the provisioned ML storage Volume, and mounts the directory to docker
-   * volume for training container. When using Pipe input mode, Amazon SageMaker streams data directly
-   * from S3 to the container.
-   * See: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-   * For the input modes that different SageMaker algorithms support, see:
-   * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.InputMode}
-   */
-  public  static final class InputMode extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.InputMode)
-      InputModeOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use InputMode.newBuilder() to construct.
-    private InputMode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private InputMode() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private InputMode(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_InputMode_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_InputMode_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Builder.class);
-    }
-
-    /**
-     * Protobuf enum {@code flyteidl.plugins.sagemaker.InputMode.Value}
-     */
-    public enum Value
-        implements com.google.protobuf.ProtocolMessageEnum {
-      /**
-       * <code>FILE = 0;</code>
-       */
-      FILE(0),
-      /**
-       * <code>PIPE = 1;</code>
-       */
-      PIPE(1),
-      UNRECOGNIZED(-1),
-      ;
-
-      /**
-       * <code>FILE = 0;</code>
-       */
-      public static final int FILE_VALUE = 0;
-      /**
-       * <code>PIPE = 1;</code>
-       */
-      public static final int PIPE_VALUE = 1;
-
-
-      public final int getNumber() {
-        if (this == UNRECOGNIZED) {
-          throw new java.lang.IllegalArgumentException(
-              "Can't get the number of an unknown enum value.");
-        }
-        return value;
-      }
-
-      /**
-       * @deprecated Use {@link #forNumber(int)} instead.
-       */
-      @java.lang.Deprecated
-      public static Value valueOf(int value) {
-        return forNumber(value);
-      }
-
-      public static Value forNumber(int value) {
-        switch (value) {
-          case 0: return FILE;
-          case 1: return PIPE;
-          default: return null;
-        }
-      }
-
-      public static com.google.protobuf.Internal.EnumLiteMap<Value>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static final com.google.protobuf.Internal.EnumLiteMap<
-          Value> internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<Value>() {
-              public Value findValueByNumber(int number) {
-                return Value.forNumber(number);
-              }
-            };
-
-      public final com.google.protobuf.Descriptors.EnumValueDescriptor
-          getValueDescriptor() {
-        return getDescriptor().getValues().get(ordinal());
-      }
-      public final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptorForType() {
-        return getDescriptor();
-      }
-      public static final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.getDescriptor().getEnumTypes().get(0);
-      }
-
-      private static final Value[] VALUES = values();
-
-      public static Value valueOf(
-          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
-        if (desc.getType() != getDescriptor()) {
-          throw new java.lang.IllegalArgumentException(
-            "EnumValueDescriptor is not for this type.");
-        }
-        if (desc.getIndex() == -1) {
-          return UNRECOGNIZED;
-        }
-        return VALUES[desc.getIndex()];
-      }
-
-      private final int value;
-
-      private Value(int value) {
-        this.value = value;
-      }
-
-      // @@protoc_insertion_point(enum_scope:flyteidl.plugins.sagemaker.InputMode.Value)
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode other = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode) obj;
-
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * The input mode that the algorithm supports. When using the File input mode, SageMaker downloads
-     * the training data from S3 to the provisioned ML storage Volume, and mounts the directory to docker
-     * volume for training container. When using Pipe input mode, Amazon SageMaker streams data directly
-     * from S3 to the container.
-     * See: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * For the input modes that different SageMaker algorithms support, see:
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.InputMode}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.InputMode)
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputModeOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_InputMode_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_InputMode_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_InputMode_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode build() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode buildPartial() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode result = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode(this);
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode) {
-          return mergeFrom((flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode other) {
-        if (other == flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.getDefaultInstance()) return this;
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.InputMode)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.InputMode)
-    private static final flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode();
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<InputMode>
-        PARSER = new com.google.protobuf.AbstractParser<InputMode>() {
-      @java.lang.Override
-      public InputMode parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new InputMode(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<InputMode> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<InputMode> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface AlgorithmNameOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.AlgorithmName)
-      com.google.protobuf.MessageOrBuilder {
-  }
-  /**
-   * <pre>
-   * The algorithm name is used for deciding which pre-built image to point to.
-   * This is only required for use cases where SageMaker's built-in algorithm mode is used.
-   * While we currently only support a subset of the algorithms, more will be added to the list.
-   * See: https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.AlgorithmName}
-   */
-  public  static final class AlgorithmName extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.AlgorithmName)
-      AlgorithmNameOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use AlgorithmName.newBuilder() to construct.
-    private AlgorithmName(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private AlgorithmName() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private AlgorithmName(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_AlgorithmName_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_AlgorithmName_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Builder.class);
-    }
-
-    /**
-     * Protobuf enum {@code flyteidl.plugins.sagemaker.AlgorithmName.Value}
-     */
-    public enum Value
-        implements com.google.protobuf.ProtocolMessageEnum {
-      /**
-       * <code>CUSTOM = 0;</code>
-       */
-      CUSTOM(0),
-      /**
-       * <code>XGBOOST = 1;</code>
-       */
-      XGBOOST(1),
-      UNRECOGNIZED(-1),
-      ;
-
-      /**
-       * <code>CUSTOM = 0;</code>
-       */
-      public static final int CUSTOM_VALUE = 0;
-      /**
-       * <code>XGBOOST = 1;</code>
-       */
-      public static final int XGBOOST_VALUE = 1;
-
-
-      public final int getNumber() {
-        if (this == UNRECOGNIZED) {
-          throw new java.lang.IllegalArgumentException(
-              "Can't get the number of an unknown enum value.");
-        }
-        return value;
-      }
-
-      /**
-       * @deprecated Use {@link #forNumber(int)} instead.
-       */
-      @java.lang.Deprecated
-      public static Value valueOf(int value) {
-        return forNumber(value);
-      }
-
-      public static Value forNumber(int value) {
-        switch (value) {
-          case 0: return CUSTOM;
-          case 1: return XGBOOST;
-          default: return null;
-        }
-      }
-
-      public static com.google.protobuf.Internal.EnumLiteMap<Value>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static final com.google.protobuf.Internal.EnumLiteMap<
-          Value> internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<Value>() {
-              public Value findValueByNumber(int number) {
-                return Value.forNumber(number);
-              }
-            };
-
-      public final com.google.protobuf.Descriptors.EnumValueDescriptor
-          getValueDescriptor() {
-        return getDescriptor().getValues().get(ordinal());
-      }
-      public final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptorForType() {
-        return getDescriptor();
-      }
-      public static final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.getDescriptor().getEnumTypes().get(0);
-      }
-
-      private static final Value[] VALUES = values();
-
-      public static Value valueOf(
-          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
-        if (desc.getType() != getDescriptor()) {
-          throw new java.lang.IllegalArgumentException(
-            "EnumValueDescriptor is not for this type.");
-        }
-        if (desc.getIndex() == -1) {
-          return UNRECOGNIZED;
-        }
-        return VALUES[desc.getIndex()];
-      }
-
-      private final int value;
-
-      private Value(int value) {
-        this.value = value;
-      }
-
-      // @@protoc_insertion_point(enum_scope:flyteidl.plugins.sagemaker.AlgorithmName.Value)
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName other = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName) obj;
-
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * The algorithm name is used for deciding which pre-built image to point to.
-     * This is only required for use cases where SageMaker's built-in algorithm mode is used.
-     * While we currently only support a subset of the algorithms, more will be added to the list.
-     * See: https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.AlgorithmName}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.AlgorithmName)
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmNameOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_AlgorithmName_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_AlgorithmName_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_AlgorithmName_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName build() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName buildPartial() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName result = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName(this);
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName) {
-          return mergeFrom((flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName other) {
-        if (other == flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.getDefaultInstance()) return this;
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.AlgorithmName)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.AlgorithmName)
-    private static final flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName();
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<AlgorithmName>
-        PARSER = new com.google.protobuf.AbstractParser<AlgorithmName>() {
-      @java.lang.Override
-      public AlgorithmName parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new AlgorithmName(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<AlgorithmName> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<AlgorithmName> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface InputContentTypeOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.InputContentType)
-      com.google.protobuf.MessageOrBuilder {
-  }
-  /**
-   * <pre>
-   * Specifies the type of file for input data. Different SageMaker built-in algorithms require different file types of input data
-   * See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-   * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.InputContentType}
-   */
-  public  static final class InputContentType extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.InputContentType)
-      InputContentTypeOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use InputContentType.newBuilder() to construct.
-    private InputContentType(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private InputContentType() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private InputContentType(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_InputContentType_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_InputContentType_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Builder.class);
-    }
-
-    /**
-     * Protobuf enum {@code flyteidl.plugins.sagemaker.InputContentType.Value}
-     */
-    public enum Value
-        implements com.google.protobuf.ProtocolMessageEnum {
-      /**
-       * <code>TEXT_CSV = 0;</code>
-       */
-      TEXT_CSV(0),
-      UNRECOGNIZED(-1),
-      ;
-
-      /**
-       * <code>TEXT_CSV = 0;</code>
-       */
-      public static final int TEXT_CSV_VALUE = 0;
-
-
-      public final int getNumber() {
-        if (this == UNRECOGNIZED) {
-          throw new java.lang.IllegalArgumentException(
-              "Can't get the number of an unknown enum value.");
-        }
-        return value;
-      }
-
-      /**
-       * @deprecated Use {@link #forNumber(int)} instead.
-       */
-      @java.lang.Deprecated
-      public static Value valueOf(int value) {
-        return forNumber(value);
-      }
-
-      public static Value forNumber(int value) {
-        switch (value) {
-          case 0: return TEXT_CSV;
-          default: return null;
-        }
-      }
-
-      public static com.google.protobuf.Internal.EnumLiteMap<Value>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static final com.google.protobuf.Internal.EnumLiteMap<
-          Value> internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<Value>() {
-              public Value findValueByNumber(int number) {
-                return Value.forNumber(number);
-              }
-            };
-
-      public final com.google.protobuf.Descriptors.EnumValueDescriptor
-          getValueDescriptor() {
-        return getDescriptor().getValues().get(ordinal());
-      }
-      public final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptorForType() {
-        return getDescriptor();
-      }
-      public static final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.getDescriptor().getEnumTypes().get(0);
-      }
-
-      private static final Value[] VALUES = values();
-
-      public static Value valueOf(
-          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
-        if (desc.getType() != getDescriptor()) {
-          throw new java.lang.IllegalArgumentException(
-            "EnumValueDescriptor is not for this type.");
-        }
-        if (desc.getIndex() == -1) {
-          return UNRECOGNIZED;
-        }
-        return VALUES[desc.getIndex()];
-      }
-
-      private final int value;
-
-      private Value(int value) {
-        this.value = value;
-      }
-
-      // @@protoc_insertion_point(enum_scope:flyteidl.plugins.sagemaker.InputContentType.Value)
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType other = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType) obj;
-
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * Specifies the type of file for input data. Different SageMaker built-in algorithms require different file types of input data
-     * See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.InputContentType}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.InputContentType)
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentTypeOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_InputContentType_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_InputContentType_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_InputContentType_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType build() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType buildPartial() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType result = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType(this);
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType) {
-          return mergeFrom((flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType other) {
-        if (other == flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.getDefaultInstance()) return this;
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.InputContentType)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.InputContentType)
-    private static final flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType();
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<InputContentType>
-        PARSER = new com.google.protobuf.AbstractParser<InputContentType>() {
-      @java.lang.Override
-      public InputContentType parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new InputContentType(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<InputContentType> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<InputContentType> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface MetricDefinitionOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.MetricDefinition)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <pre>
-     * User-defined name of the metric
-     * </pre>
-     *
-     * <code>string name = 1;</code>
-     */
-    java.lang.String getName();
-    /**
-     * <pre>
-     * User-defined name of the metric
-     * </pre>
-     *
-     * <code>string name = 1;</code>
-     */
-    com.google.protobuf.ByteString
-        getNameBytes();
-
-    /**
-     * <pre>
-     * SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-     * </pre>
-     *
-     * <code>string regex = 2;</code>
-     */
-    java.lang.String getRegex();
-    /**
-     * <pre>
-     * SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-     * </pre>
-     *
-     * <code>string regex = 2;</code>
-     */
-    com.google.protobuf.ByteString
-        getRegexBytes();
-  }
-  /**
-   * <pre>
-   * Specifies a metric that the training algorithm writes to stderr or stdout.
-   * This object is a pass-through.
-   * See this for details: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDefinition.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.MetricDefinition}
-   */
-  public  static final class MetricDefinition extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.MetricDefinition)
-      MetricDefinitionOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use MetricDefinition.newBuilder() to construct.
-    private MetricDefinition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private MetricDefinition() {
-      name_ = "";
-      regex_ = "";
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private MetricDefinition(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              name_ = s;
-              break;
-            }
-            case 18: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              regex_ = s;
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_MetricDefinition_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_MetricDefinition_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder.class);
-    }
-
-    public static final int NAME_FIELD_NUMBER = 1;
-    private volatile java.lang.Object name_;
-    /**
-     * <pre>
-     * User-defined name of the metric
-     * </pre>
-     *
-     * <code>string name = 1;</code>
-     */
-    public java.lang.String getName() {
-      java.lang.Object ref = name_;
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        name_ = s;
-        return s;
-      }
-    }
-    /**
-     * <pre>
-     * User-defined name of the metric
-     * </pre>
-     *
-     * <code>string name = 1;</code>
-     */
-    public com.google.protobuf.ByteString
-        getNameBytes() {
-      java.lang.Object ref = name_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8(
-                (java.lang.String) ref);
-        name_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-
-    public static final int REGEX_FIELD_NUMBER = 2;
-    private volatile java.lang.Object regex_;
-    /**
-     * <pre>
-     * SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-     * </pre>
-     *
-     * <code>string regex = 2;</code>
-     */
-    public java.lang.String getRegex() {
-      java.lang.Object ref = regex_;
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        regex_ = s;
-        return s;
-      }
-    }
-    /**
-     * <pre>
-     * SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-     * </pre>
-     *
-     * <code>string regex = 2;</code>
-     */
-    public com.google.protobuf.ByteString
-        getRegexBytes() {
-      java.lang.Object ref = regex_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8(
-                (java.lang.String) ref);
-        regex_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (!getNameBytes().isEmpty()) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
-      }
-      if (!getRegexBytes().isEmpty()) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, regex_);
-      }
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      if (!getNameBytes().isEmpty()) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
-      }
-      if (!getRegexBytes().isEmpty()) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, regex_);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition other = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition) obj;
-
-      if (!getName()
-          .equals(other.getName())) return false;
-      if (!getRegex()
-          .equals(other.getRegex())) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + NAME_FIELD_NUMBER;
-      hash = (53 * hash) + getName().hashCode();
-      hash = (37 * hash) + REGEX_FIELD_NUMBER;
-      hash = (53 * hash) + getRegex().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * Specifies a metric that the training algorithm writes to stderr or stdout.
-     * This object is a pass-through.
-     * See this for details: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDefinition.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.MetricDefinition}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.MetricDefinition)
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinitionOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_MetricDefinition_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_MetricDefinition_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        name_ = "";
-
-        regex_ = "";
-
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_MetricDefinition_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition build() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition buildPartial() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition result = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition(this);
-        result.name_ = name_;
-        result.regex_ = regex_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition) {
-          return mergeFrom((flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition other) {
-        if (other == flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.getDefaultInstance()) return this;
-        if (!other.getName().isEmpty()) {
-          name_ = other.name_;
-          onChanged();
-        }
-        if (!other.getRegex().isEmpty()) {
-          regex_ = other.regex_;
-          onChanged();
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      private java.lang.Object name_ = "";
-      /**
-       * <pre>
-       * User-defined name of the metric
-       * </pre>
-       *
-       * <code>string name = 1;</code>
-       */
-      public java.lang.String getName() {
-        java.lang.Object ref = name_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          name_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       * <pre>
-       * User-defined name of the metric
-       * </pre>
-       *
-       * <code>string name = 1;</code>
-       */
-      public com.google.protobuf.ByteString
-          getNameBytes() {
-        java.lang.Object ref = name_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          name_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
-      /**
-       * <pre>
-       * User-defined name of the metric
-       * </pre>
-       *
-       * <code>string name = 1;</code>
-       */
-      public Builder setName(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        name_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * User-defined name of the metric
-       * </pre>
-       *
-       * <code>string name = 1;</code>
-       */
-      public Builder clearName() {
-        
-        name_ = getDefaultInstance().getName();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * User-defined name of the metric
-       * </pre>
-       *
-       * <code>string name = 1;</code>
-       */
-      public Builder setNameBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
-        name_ = value;
-        onChanged();
-        return this;
-      }
-
-      private java.lang.Object regex_ = "";
-      /**
-       * <pre>
-       * SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-       * </pre>
-       *
-       * <code>string regex = 2;</code>
-       */
-      public java.lang.String getRegex() {
-        java.lang.Object ref = regex_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          regex_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       * <pre>
-       * SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-       * </pre>
-       *
-       * <code>string regex = 2;</code>
-       */
-      public com.google.protobuf.ByteString
-          getRegexBytes() {
-        java.lang.Object ref = regex_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          regex_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
-      /**
-       * <pre>
-       * SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-       * </pre>
-       *
-       * <code>string regex = 2;</code>
-       */
-      public Builder setRegex(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        regex_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-       * </pre>
-       *
-       * <code>string regex = 2;</code>
-       */
-      public Builder clearRegex() {
-        
-        regex_ = getDefaultInstance().getRegex();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-       * </pre>
-       *
-       * <code>string regex = 2;</code>
-       */
-      public Builder setRegexBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
-        regex_ = value;
-        onChanged();
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.MetricDefinition)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.MetricDefinition)
-    private static final flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition();
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<MetricDefinition>
-        PARSER = new com.google.protobuf.AbstractParser<MetricDefinition>() {
-      @java.lang.Override
-      public MetricDefinition parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new MetricDefinition(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<MetricDefinition> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<MetricDefinition> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface AlgorithmSpecificationOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <pre>
-     * The input mode can be either PIPE or FILE
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;</code>
-     */
-    int getInputModeValue();
-    /**
-     * <pre>
-     * The input mode can be either PIPE or FILE
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value getInputMode();
-
-    /**
-     * <pre>
-     * The algorithm name is used for deciding which pre-built image to point to
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;</code>
-     */
-    int getAlgorithmNameValue();
-    /**
-     * <pre>
-     * The algorithm name is used for deciding which pre-built image to point to
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value getAlgorithmName();
-
-    /**
-     * <pre>
-     * The algorithm version field is used for deciding which pre-built image to point to
-     * This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-     * </pre>
-     *
-     * <code>string algorithm_version = 3;</code>
-     */
-    java.lang.String getAlgorithmVersion();
-    /**
-     * <pre>
-     * The algorithm version field is used for deciding which pre-built image to point to
-     * This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-     * </pre>
-     *
-     * <code>string algorithm_version = 3;</code>
-     */
-    com.google.protobuf.ByteString
-        getAlgorithmVersionBytes();
-
-    /**
-     * <pre>
-     * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-     * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-     * </pre>
-     *
-     * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-     */
-    java.util.List<flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition> 
-        getMetricDefinitionsList();
-    /**
-     * <pre>
-     * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-     * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-     * </pre>
-     *
-     * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition getMetricDefinitions(int index);
-    /**
-     * <pre>
-     * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-     * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-     * </pre>
-     *
-     * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-     */
-    int getMetricDefinitionsCount();
-    /**
-     * <pre>
-     * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-     * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-     * </pre>
-     *
-     * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-     */
-    java.util.List<? extends flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinitionOrBuilder> 
-        getMetricDefinitionsOrBuilderList();
-    /**
-     * <pre>
-     * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-     * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-     * </pre>
-     *
-     * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinitionOrBuilder getMetricDefinitionsOrBuilder(
-        int index);
-
-    /**
-     * <pre>
-     * The content type of the input
-     * See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;</code>
-     */
-    int getInputContentTypeValue();
-    /**
-     * <pre>
-     * The content type of the input
-     * See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value getInputContentType();
-  }
-  /**
-   * <pre>
-   * Specifies the training algorithm to be used in the training job
-   * This object is mostly a pass-through, with a couple of exceptions include: (1) in Flyte, users don't need to specify
-   * TrainingImage; either use the built-in algorithm mode by using Flytekit's Simple Training Job and specifying an algorithm
-   * name and an algorithm version or (2) when users want to supply custom algorithms they should set algorithm_name field to
-   * CUSTOM. In this case, the value of the algorithm_version field has no effect
-   * For pass-through use cases: refer to this AWS official document for more details
-   * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.AlgorithmSpecification}
-   */
-  public  static final class AlgorithmSpecification extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-      AlgorithmSpecificationOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use AlgorithmSpecification.newBuilder() to construct.
-    private AlgorithmSpecification(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private AlgorithmSpecification() {
-      inputMode_ = 0;
-      algorithmName_ = 0;
-      algorithmVersion_ = "";
-      metricDefinitions_ = java.util.Collections.emptyList();
-      inputContentType_ = 0;
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private AlgorithmSpecification(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 8: {
-              int rawValue = input.readEnum();
-
-              inputMode_ = rawValue;
-              break;
-            }
-            case 16: {
-              int rawValue = input.readEnum();
-
-              algorithmName_ = rawValue;
-              break;
-            }
-            case 26: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              algorithmVersion_ = s;
-              break;
-            }
-            case 34: {
-              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
-                metricDefinitions_ = new java.util.ArrayList<flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition>();
-                mutable_bitField0_ |= 0x00000008;
-              }
-              metricDefinitions_.add(
-                  input.readMessage(flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.parser(), extensionRegistry));
-              break;
-            }
-            case 40: {
-              int rawValue = input.readEnum();
-
-              inputContentType_ = rawValue;
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        if (((mutable_bitField0_ & 0x00000008) != 0)) {
-          metricDefinitions_ = java.util.Collections.unmodifiableList(metricDefinitions_);
-        }
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_AlgorithmSpecification_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_AlgorithmSpecification_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.Builder.class);
-    }
-
-    private int bitField0_;
-    public static final int INPUT_MODE_FIELD_NUMBER = 1;
-    private int inputMode_;
-    /**
-     * <pre>
-     * The input mode can be either PIPE or FILE
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;</code>
-     */
-    public int getInputModeValue() {
-      return inputMode_;
-    }
-    /**
-     * <pre>
-     * The input mode can be either PIPE or FILE
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value getInputMode() {
-      @SuppressWarnings("deprecation")
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value result = flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value.valueOf(inputMode_);
-      return result == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value.UNRECOGNIZED : result;
-    }
-
-    public static final int ALGORITHM_NAME_FIELD_NUMBER = 2;
-    private int algorithmName_;
-    /**
-     * <pre>
-     * The algorithm name is used for deciding which pre-built image to point to
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;</code>
-     */
-    public int getAlgorithmNameValue() {
-      return algorithmName_;
-    }
-    /**
-     * <pre>
-     * The algorithm name is used for deciding which pre-built image to point to
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value getAlgorithmName() {
-      @SuppressWarnings("deprecation")
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value result = flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value.valueOf(algorithmName_);
-      return result == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value.UNRECOGNIZED : result;
-    }
-
-    public static final int ALGORITHM_VERSION_FIELD_NUMBER = 3;
-    private volatile java.lang.Object algorithmVersion_;
-    /**
-     * <pre>
-     * The algorithm version field is used for deciding which pre-built image to point to
-     * This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-     * </pre>
-     *
-     * <code>string algorithm_version = 3;</code>
-     */
-    public java.lang.String getAlgorithmVersion() {
-      java.lang.Object ref = algorithmVersion_;
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        algorithmVersion_ = s;
-        return s;
-      }
-    }
-    /**
-     * <pre>
-     * The algorithm version field is used for deciding which pre-built image to point to
-     * This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-     * </pre>
-     *
-     * <code>string algorithm_version = 3;</code>
-     */
-    public com.google.protobuf.ByteString
-        getAlgorithmVersionBytes() {
-      java.lang.Object ref = algorithmVersion_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8(
-                (java.lang.String) ref);
-        algorithmVersion_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-
-    public static final int METRIC_DEFINITIONS_FIELD_NUMBER = 4;
-    private java.util.List<flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition> metricDefinitions_;
-    /**
-     * <pre>
-     * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-     * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-     * </pre>
-     *
-     * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-     */
-    public java.util.List<flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition> getMetricDefinitionsList() {
-      return metricDefinitions_;
-    }
-    /**
-     * <pre>
-     * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-     * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-     * </pre>
-     *
-     * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-     */
-    public java.util.List<? extends flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinitionOrBuilder> 
-        getMetricDefinitionsOrBuilderList() {
-      return metricDefinitions_;
-    }
-    /**
-     * <pre>
-     * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-     * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-     * </pre>
-     *
-     * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-     */
-    public int getMetricDefinitionsCount() {
-      return metricDefinitions_.size();
-    }
-    /**
-     * <pre>
-     * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-     * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-     * </pre>
-     *
-     * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition getMetricDefinitions(int index) {
-      return metricDefinitions_.get(index);
-    }
-    /**
-     * <pre>
-     * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-     * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-     * </pre>
-     *
-     * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinitionOrBuilder getMetricDefinitionsOrBuilder(
-        int index) {
-      return metricDefinitions_.get(index);
-    }
-
-    public static final int INPUT_CONTENT_TYPE_FIELD_NUMBER = 5;
-    private int inputContentType_;
-    /**
-     * <pre>
-     * The content type of the input
-     * See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;</code>
-     */
-    public int getInputContentTypeValue() {
-      return inputContentType_;
-    }
-    /**
-     * <pre>
-     * The content type of the input
-     * See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-     * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value getInputContentType() {
-      @SuppressWarnings("deprecation")
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value result = flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value.valueOf(inputContentType_);
-      return result == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value.UNRECOGNIZED : result;
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (inputMode_ != flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value.FILE.getNumber()) {
-        output.writeEnum(1, inputMode_);
-      }
-      if (algorithmName_ != flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value.CUSTOM.getNumber()) {
-        output.writeEnum(2, algorithmName_);
-      }
-      if (!getAlgorithmVersionBytes().isEmpty()) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, algorithmVersion_);
-      }
-      for (int i = 0; i < metricDefinitions_.size(); i++) {
-        output.writeMessage(4, metricDefinitions_.get(i));
-      }
-      if (inputContentType_ != flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value.TEXT_CSV.getNumber()) {
-        output.writeEnum(5, inputContentType_);
-      }
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      if (inputMode_ != flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value.FILE.getNumber()) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(1, inputMode_);
-      }
-      if (algorithmName_ != flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value.CUSTOM.getNumber()) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(2, algorithmName_);
-      }
-      if (!getAlgorithmVersionBytes().isEmpty()) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, algorithmVersion_);
-      }
-      for (int i = 0; i < metricDefinitions_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(4, metricDefinitions_.get(i));
-      }
-      if (inputContentType_ != flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value.TEXT_CSV.getNumber()) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(5, inputContentType_);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification other = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification) obj;
-
-      if (inputMode_ != other.inputMode_) return false;
-      if (algorithmName_ != other.algorithmName_) return false;
-      if (!getAlgorithmVersion()
-          .equals(other.getAlgorithmVersion())) return false;
-      if (!getMetricDefinitionsList()
-          .equals(other.getMetricDefinitionsList())) return false;
-      if (inputContentType_ != other.inputContentType_) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + INPUT_MODE_FIELD_NUMBER;
-      hash = (53 * hash) + inputMode_;
-      hash = (37 * hash) + ALGORITHM_NAME_FIELD_NUMBER;
-      hash = (53 * hash) + algorithmName_;
-      hash = (37 * hash) + ALGORITHM_VERSION_FIELD_NUMBER;
-      hash = (53 * hash) + getAlgorithmVersion().hashCode();
-      if (getMetricDefinitionsCount() > 0) {
-        hash = (37 * hash) + METRIC_DEFINITIONS_FIELD_NUMBER;
-        hash = (53 * hash) + getMetricDefinitionsList().hashCode();
-      }
-      hash = (37 * hash) + INPUT_CONTENT_TYPE_FIELD_NUMBER;
-      hash = (53 * hash) + inputContentType_;
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * Specifies the training algorithm to be used in the training job
-     * This object is mostly a pass-through, with a couple of exceptions include: (1) in Flyte, users don't need to specify
-     * TrainingImage; either use the built-in algorithm mode by using Flytekit's Simple Training Job and specifying an algorithm
-     * name and an algorithm version or (2) when users want to supply custom algorithms they should set algorithm_name field to
-     * CUSTOM. In this case, the value of the algorithm_version field has no effect
-     * For pass-through use cases: refer to this AWS official document for more details
-     * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.AlgorithmSpecification}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecificationOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_AlgorithmSpecification_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_AlgorithmSpecification_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-          getMetricDefinitionsFieldBuilder();
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        inputMode_ = 0;
-
-        algorithmName_ = 0;
-
-        algorithmVersion_ = "";
-
-        if (metricDefinitionsBuilder_ == null) {
-          metricDefinitions_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-        } else {
-          metricDefinitionsBuilder_.clear();
-        }
-        inputContentType_ = 0;
-
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_AlgorithmSpecification_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification build() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification buildPartial() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification result = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        result.inputMode_ = inputMode_;
-        result.algorithmName_ = algorithmName_;
-        result.algorithmVersion_ = algorithmVersion_;
-        if (metricDefinitionsBuilder_ == null) {
-          if (((bitField0_ & 0x00000008) != 0)) {
-            metricDefinitions_ = java.util.Collections.unmodifiableList(metricDefinitions_);
-            bitField0_ = (bitField0_ & ~0x00000008);
-          }
-          result.metricDefinitions_ = metricDefinitions_;
-        } else {
-          result.metricDefinitions_ = metricDefinitionsBuilder_.build();
-        }
-        result.inputContentType_ = inputContentType_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification) {
-          return mergeFrom((flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification other) {
-        if (other == flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.getDefaultInstance()) return this;
-        if (other.inputMode_ != 0) {
-          setInputModeValue(other.getInputModeValue());
-        }
-        if (other.algorithmName_ != 0) {
-          setAlgorithmNameValue(other.getAlgorithmNameValue());
-        }
-        if (!other.getAlgorithmVersion().isEmpty()) {
-          algorithmVersion_ = other.algorithmVersion_;
-          onChanged();
-        }
-        if (metricDefinitionsBuilder_ == null) {
-          if (!other.metricDefinitions_.isEmpty()) {
-            if (metricDefinitions_.isEmpty()) {
-              metricDefinitions_ = other.metricDefinitions_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-            } else {
-              ensureMetricDefinitionsIsMutable();
-              metricDefinitions_.addAll(other.metricDefinitions_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.metricDefinitions_.isEmpty()) {
-            if (metricDefinitionsBuilder_.isEmpty()) {
-              metricDefinitionsBuilder_.dispose();
-              metricDefinitionsBuilder_ = null;
-              metricDefinitions_ = other.metricDefinitions_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-              metricDefinitionsBuilder_ = 
-                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
-                   getMetricDefinitionsFieldBuilder() : null;
-            } else {
-              metricDefinitionsBuilder_.addAllMessages(other.metricDefinitions_);
-            }
-          }
-        }
-        if (other.inputContentType_ != 0) {
-          setInputContentTypeValue(other.getInputContentTypeValue());
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      private int bitField0_;
-
-      private int inputMode_ = 0;
-      /**
-       * <pre>
-       * The input mode can be either PIPE or FILE
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;</code>
-       */
-      public int getInputModeValue() {
-        return inputMode_;
-      }
-      /**
-       * <pre>
-       * The input mode can be either PIPE or FILE
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;</code>
-       */
-      public Builder setInputModeValue(int value) {
-        inputMode_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The input mode can be either PIPE or FILE
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value getInputMode() {
-        @SuppressWarnings("deprecation")
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value result = flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value.valueOf(inputMode_);
-        return result == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value.UNRECOGNIZED : result;
-      }
-      /**
-       * <pre>
-       * The input mode can be either PIPE or FILE
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;</code>
-       */
-      public Builder setInputMode(flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputMode.Value value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        
-        inputMode_ = value.getNumber();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The input mode can be either PIPE or FILE
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.InputMode.Value input_mode = 1;</code>
-       */
-      public Builder clearInputMode() {
-        
-        inputMode_ = 0;
-        onChanged();
-        return this;
-      }
-
-      private int algorithmName_ = 0;
-      /**
-       * <pre>
-       * The algorithm name is used for deciding which pre-built image to point to
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;</code>
-       */
-      public int getAlgorithmNameValue() {
-        return algorithmName_;
-      }
-      /**
-       * <pre>
-       * The algorithm name is used for deciding which pre-built image to point to
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;</code>
-       */
-      public Builder setAlgorithmNameValue(int value) {
-        algorithmName_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The algorithm name is used for deciding which pre-built image to point to
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value getAlgorithmName() {
-        @SuppressWarnings("deprecation")
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value result = flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value.valueOf(algorithmName_);
-        return result == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value.UNRECOGNIZED : result;
-      }
-      /**
-       * <pre>
-       * The algorithm name is used for deciding which pre-built image to point to
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;</code>
-       */
-      public Builder setAlgorithmName(flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmName.Value value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        
-        algorithmName_ = value.getNumber();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The algorithm name is used for deciding which pre-built image to point to
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmName.Value algorithm_name = 2;</code>
-       */
-      public Builder clearAlgorithmName() {
-        
-        algorithmName_ = 0;
-        onChanged();
-        return this;
-      }
-
-      private java.lang.Object algorithmVersion_ = "";
-      /**
-       * <pre>
-       * The algorithm version field is used for deciding which pre-built image to point to
-       * This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-       * </pre>
-       *
-       * <code>string algorithm_version = 3;</code>
-       */
-      public java.lang.String getAlgorithmVersion() {
-        java.lang.Object ref = algorithmVersion_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          algorithmVersion_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       * <pre>
-       * The algorithm version field is used for deciding which pre-built image to point to
-       * This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-       * </pre>
-       *
-       * <code>string algorithm_version = 3;</code>
-       */
-      public com.google.protobuf.ByteString
-          getAlgorithmVersionBytes() {
-        java.lang.Object ref = algorithmVersion_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          algorithmVersion_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
-      /**
-       * <pre>
-       * The algorithm version field is used for deciding which pre-built image to point to
-       * This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-       * </pre>
-       *
-       * <code>string algorithm_version = 3;</code>
-       */
-      public Builder setAlgorithmVersion(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        algorithmVersion_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The algorithm version field is used for deciding which pre-built image to point to
-       * This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-       * </pre>
-       *
-       * <code>string algorithm_version = 3;</code>
-       */
-      public Builder clearAlgorithmVersion() {
-        
-        algorithmVersion_ = getDefaultInstance().getAlgorithmVersion();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The algorithm version field is used for deciding which pre-built image to point to
-       * This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-       * </pre>
-       *
-       * <code>string algorithm_version = 3;</code>
-       */
-      public Builder setAlgorithmVersionBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
-        algorithmVersion_ = value;
-        onChanged();
-        return this;
-      }
-
-      private java.util.List<flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition> metricDefinitions_ =
-        java.util.Collections.emptyList();
-      private void ensureMetricDefinitionsIsMutable() {
-        if (!((bitField0_ & 0x00000008) != 0)) {
-          metricDefinitions_ = new java.util.ArrayList<flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition>(metricDefinitions_);
-          bitField0_ |= 0x00000008;
-         }
-      }
-
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinitionOrBuilder> metricDefinitionsBuilder_;
-
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public java.util.List<flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition> getMetricDefinitionsList() {
-        if (metricDefinitionsBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(metricDefinitions_);
-        } else {
-          return metricDefinitionsBuilder_.getMessageList();
-        }
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public int getMetricDefinitionsCount() {
-        if (metricDefinitionsBuilder_ == null) {
-          return metricDefinitions_.size();
-        } else {
-          return metricDefinitionsBuilder_.getCount();
-        }
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition getMetricDefinitions(int index) {
-        if (metricDefinitionsBuilder_ == null) {
-          return metricDefinitions_.get(index);
-        } else {
-          return metricDefinitionsBuilder_.getMessage(index);
-        }
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public Builder setMetricDefinitions(
-          int index, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition value) {
-        if (metricDefinitionsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureMetricDefinitionsIsMutable();
-          metricDefinitions_.set(index, value);
-          onChanged();
-        } else {
-          metricDefinitionsBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public Builder setMetricDefinitions(
-          int index, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder builderForValue) {
-        if (metricDefinitionsBuilder_ == null) {
-          ensureMetricDefinitionsIsMutable();
-          metricDefinitions_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          metricDefinitionsBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public Builder addMetricDefinitions(flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition value) {
-        if (metricDefinitionsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureMetricDefinitionsIsMutable();
-          metricDefinitions_.add(value);
-          onChanged();
-        } else {
-          metricDefinitionsBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public Builder addMetricDefinitions(
-          int index, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition value) {
-        if (metricDefinitionsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureMetricDefinitionsIsMutable();
-          metricDefinitions_.add(index, value);
-          onChanged();
-        } else {
-          metricDefinitionsBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public Builder addMetricDefinitions(
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder builderForValue) {
-        if (metricDefinitionsBuilder_ == null) {
-          ensureMetricDefinitionsIsMutable();
-          metricDefinitions_.add(builderForValue.build());
-          onChanged();
-        } else {
-          metricDefinitionsBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public Builder addMetricDefinitions(
-          int index, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder builderForValue) {
-        if (metricDefinitionsBuilder_ == null) {
-          ensureMetricDefinitionsIsMutable();
-          metricDefinitions_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          metricDefinitionsBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public Builder addAllMetricDefinitions(
-          java.lang.Iterable<? extends flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition> values) {
-        if (metricDefinitionsBuilder_ == null) {
-          ensureMetricDefinitionsIsMutable();
-          com.google.protobuf.AbstractMessageLite.Builder.addAll(
-              values, metricDefinitions_);
-          onChanged();
-        } else {
-          metricDefinitionsBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public Builder clearMetricDefinitions() {
-        if (metricDefinitionsBuilder_ == null) {
-          metricDefinitions_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-          onChanged();
-        } else {
-          metricDefinitionsBuilder_.clear();
-        }
-        return this;
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public Builder removeMetricDefinitions(int index) {
-        if (metricDefinitionsBuilder_ == null) {
-          ensureMetricDefinitionsIsMutable();
-          metricDefinitions_.remove(index);
-          onChanged();
-        } else {
-          metricDefinitionsBuilder_.remove(index);
-        }
-        return this;
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder getMetricDefinitionsBuilder(
-          int index) {
-        return getMetricDefinitionsFieldBuilder().getBuilder(index);
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinitionOrBuilder getMetricDefinitionsOrBuilder(
-          int index) {
-        if (metricDefinitionsBuilder_ == null) {
-          return metricDefinitions_.get(index);  } else {
-          return metricDefinitionsBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public java.util.List<? extends flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinitionOrBuilder> 
-           getMetricDefinitionsOrBuilderList() {
-        if (metricDefinitionsBuilder_ != null) {
-          return metricDefinitionsBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(metricDefinitions_);
-        }
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder addMetricDefinitionsBuilder() {
-        return getMetricDefinitionsFieldBuilder().addBuilder(
-            flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.getDefaultInstance());
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder addMetricDefinitionsBuilder(
-          int index) {
-        return getMetricDefinitionsFieldBuilder().addBuilder(
-            index, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.getDefaultInstance());
-      }
-      /**
-       * <pre>
-       * A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-       * See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-       * and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-       * </pre>
-       *
-       * <code>repeated .flyteidl.plugins.sagemaker.MetricDefinition metric_definitions = 4;</code>
-       */
-      public java.util.List<flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder> 
-           getMetricDefinitionsBuilderList() {
-        return getMetricDefinitionsFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinitionOrBuilder> 
-          getMetricDefinitionsFieldBuilder() {
-        if (metricDefinitionsBuilder_ == null) {
-          metricDefinitionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinition.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.MetricDefinitionOrBuilder>(
-                  metricDefinitions_,
-                  ((bitField0_ & 0x00000008) != 0),
-                  getParentForChildren(),
-                  isClean());
-          metricDefinitions_ = null;
-        }
-        return metricDefinitionsBuilder_;
-      }
-
-      private int inputContentType_ = 0;
-      /**
-       * <pre>
-       * The content type of the input
-       * See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-       * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;</code>
-       */
-      public int getInputContentTypeValue() {
-        return inputContentType_;
-      }
-      /**
-       * <pre>
-       * The content type of the input
-       * See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-       * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;</code>
-       */
-      public Builder setInputContentTypeValue(int value) {
-        inputContentType_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The content type of the input
-       * See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-       * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value getInputContentType() {
-        @SuppressWarnings("deprecation")
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value result = flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value.valueOf(inputContentType_);
-        return result == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value.UNRECOGNIZED : result;
-      }
-      /**
-       * <pre>
-       * The content type of the input
-       * See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-       * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;</code>
-       */
-      public Builder setInputContentType(flyteidl.plugins.sagemaker.TrainingJobOuterClass.InputContentType.Value value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        
-        inputContentType_ = value.getNumber();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The content type of the input
-       * See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-       * https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.InputContentType.Value input_content_type = 5;</code>
-       */
-      public Builder clearInputContentType() {
-        
-        inputContentType_ = 0;
-        onChanged();
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.AlgorithmSpecification)
-    private static final flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification();
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<AlgorithmSpecification>
-        PARSER = new com.google.protobuf.AbstractParser<AlgorithmSpecification>() {
-      @java.lang.Override
-      public AlgorithmSpecification parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new AlgorithmSpecification(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<AlgorithmSpecification> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<AlgorithmSpecification> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface DistributedProtocolOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.DistributedProtocol)
-      com.google.protobuf.MessageOrBuilder {
-  }
-  /**
-   * <pre>
-   * When enabling distributed training on a training job, the user should use this message to tell Flyte and SageMaker
-   * what kind of distributed protocol he/she wants to use to distribute the work.
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.DistributedProtocol}
-   */
-  public  static final class DistributedProtocol extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.DistributedProtocol)
-      DistributedProtocolOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use DistributedProtocol.newBuilder() to construct.
-    private DistributedProtocol(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private DistributedProtocol() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private DistributedProtocol(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_DistributedProtocol_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_DistributedProtocol_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Builder.class);
-    }
-
-    /**
-     * Protobuf enum {@code flyteidl.plugins.sagemaker.DistributedProtocol.Value}
-     */
-    public enum Value
-        implements com.google.protobuf.ProtocolMessageEnum {
-      /**
-       * <pre>
-       * Use this value if the user wishes to use framework-native distributed training interfaces.
-       * If this value is used, Flyte won't configure SageMaker to initialize unnecessary components such as
-       * OpenMPI or Parameter Server.
-       * </pre>
-       *
-       * <code>UNSPECIFIED = 0;</code>
-       */
-      UNSPECIFIED(0),
-      /**
-       * <pre>
-       * Use this value if the user wishes to use MPI as the underlying protocol for her distributed training job
-       * MPI is a framework-agnostic distributed protocol. It has multiple implementations. Currently, we have only
-       * tested the OpenMPI implementation, which is the recommended implementation for Horovod.
-       * </pre>
-       *
-       * <code>MPI = 1;</code>
-       */
-      MPI(1),
-      UNRECOGNIZED(-1),
-      ;
-
-      /**
-       * <pre>
-       * Use this value if the user wishes to use framework-native distributed training interfaces.
-       * If this value is used, Flyte won't configure SageMaker to initialize unnecessary components such as
-       * OpenMPI or Parameter Server.
-       * </pre>
-       *
-       * <code>UNSPECIFIED = 0;</code>
-       */
-      public static final int UNSPECIFIED_VALUE = 0;
-      /**
-       * <pre>
-       * Use this value if the user wishes to use MPI as the underlying protocol for her distributed training job
-       * MPI is a framework-agnostic distributed protocol. It has multiple implementations. Currently, we have only
-       * tested the OpenMPI implementation, which is the recommended implementation for Horovod.
-       * </pre>
-       *
-       * <code>MPI = 1;</code>
-       */
-      public static final int MPI_VALUE = 1;
-
-
-      public final int getNumber() {
-        if (this == UNRECOGNIZED) {
-          throw new java.lang.IllegalArgumentException(
-              "Can't get the number of an unknown enum value.");
-        }
-        return value;
-      }
-
-      /**
-       * @deprecated Use {@link #forNumber(int)} instead.
-       */
-      @java.lang.Deprecated
-      public static Value valueOf(int value) {
-        return forNumber(value);
-      }
-
-      public static Value forNumber(int value) {
-        switch (value) {
-          case 0: return UNSPECIFIED;
-          case 1: return MPI;
-          default: return null;
-        }
-      }
-
-      public static com.google.protobuf.Internal.EnumLiteMap<Value>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static final com.google.protobuf.Internal.EnumLiteMap<
-          Value> internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<Value>() {
-              public Value findValueByNumber(int number) {
-                return Value.forNumber(number);
-              }
-            };
-
-      public final com.google.protobuf.Descriptors.EnumValueDescriptor
-          getValueDescriptor() {
-        return getDescriptor().getValues().get(ordinal());
-      }
-      public final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptorForType() {
-        return getDescriptor();
-      }
-      public static final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.getDescriptor().getEnumTypes().get(0);
-      }
-
-      private static final Value[] VALUES = values();
-
-      public static Value valueOf(
-          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
-        if (desc.getType() != getDescriptor()) {
-          throw new java.lang.IllegalArgumentException(
-            "EnumValueDescriptor is not for this type.");
-        }
-        if (desc.getIndex() == -1) {
-          return UNRECOGNIZED;
-        }
-        return VALUES[desc.getIndex()];
-      }
-
-      private final int value;
-
-      private Value(int value) {
-        this.value = value;
-      }
-
-      // @@protoc_insertion_point(enum_scope:flyteidl.plugins.sagemaker.DistributedProtocol.Value)
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol other = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol) obj;
-
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * When enabling distributed training on a training job, the user should use this message to tell Flyte and SageMaker
-     * what kind of distributed protocol he/she wants to use to distribute the work.
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.DistributedProtocol}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.DistributedProtocol)
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocolOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_DistributedProtocol_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_DistributedProtocol_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_DistributedProtocol_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol build() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol buildPartial() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol result = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol(this);
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol) {
-          return mergeFrom((flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol other) {
-        if (other == flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.getDefaultInstance()) return this;
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.DistributedProtocol)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.DistributedProtocol)
-    private static final flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol();
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<DistributedProtocol>
-        PARSER = new com.google.protobuf.AbstractParser<DistributedProtocol>() {
-      @java.lang.Override
-      public DistributedProtocol parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new DistributedProtocol(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<DistributedProtocol> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<DistributedProtocol> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface TrainingJobResourceConfigOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <pre>
-     * The number of ML compute instances to use. For distributed training, provide a value greater than 1.
-     * </pre>
-     *
-     * <code>int64 instance_count = 1;</code>
-     */
-    long getInstanceCount();
-
-    /**
-     * <pre>
-     * The ML compute instance type
-     * </pre>
-     *
-     * <code>string instance_type = 2;</code>
-     */
-    java.lang.String getInstanceType();
-    /**
-     * <pre>
-     * The ML compute instance type
-     * </pre>
-     *
-     * <code>string instance_type = 2;</code>
-     */
-    com.google.protobuf.ByteString
-        getInstanceTypeBytes();
-
-    /**
-     * <pre>
-     * The size of the ML storage volume that you want to provision.
-     * </pre>
-     *
-     * <code>int64 volume_size_in_gb = 3;</code>
-     */
-    long getVolumeSizeInGb();
-
-    /**
-     * <pre>
-     * When users specify an instance_count &gt; 1, Flyte will try to configure SageMaker to enable distributed training.
-     * If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-     * field should be set to the corresponding enum value
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;</code>
-     */
-    int getDistributedProtocolValue();
-    /**
-     * <pre>
-     * When users specify an instance_count &gt; 1, Flyte will try to configure SageMaker to enable distributed training.
-     * If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-     * field should be set to the corresponding enum value
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value getDistributedProtocol();
-  }
-  /**
-   * <pre>
-   * TrainingJobResourceConfig is a pass-through, specifying the instance type to use for the training job, the
-   * number of instances to launch, and the size of the ML storage volume the user wants to provision
-   * Refer to SageMaker official doc for more details: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.TrainingJobResourceConfig}
-   */
-  public  static final class TrainingJobResourceConfig extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-      TrainingJobResourceConfigOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use TrainingJobResourceConfig.newBuilder() to construct.
-    private TrainingJobResourceConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private TrainingJobResourceConfig() {
-      instanceType_ = "";
-      distributedProtocol_ = 0;
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private TrainingJobResourceConfig(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 8: {
-
-              instanceCount_ = input.readInt64();
-              break;
-            }
-            case 18: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              instanceType_ = s;
-              break;
-            }
-            case 24: {
-
-              volumeSizeInGb_ = input.readInt64();
-              break;
-            }
-            case 32: {
-              int rawValue = input.readEnum();
-
-              distributedProtocol_ = rawValue;
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJobResourceConfig_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJobResourceConfig_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.Builder.class);
-    }
-
-    public static final int INSTANCE_COUNT_FIELD_NUMBER = 1;
-    private long instanceCount_;
-    /**
-     * <pre>
-     * The number of ML compute instances to use. For distributed training, provide a value greater than 1.
-     * </pre>
-     *
-     * <code>int64 instance_count = 1;</code>
-     */
-    public long getInstanceCount() {
-      return instanceCount_;
-    }
-
-    public static final int INSTANCE_TYPE_FIELD_NUMBER = 2;
-    private volatile java.lang.Object instanceType_;
-    /**
-     * <pre>
-     * The ML compute instance type
-     * </pre>
-     *
-     * <code>string instance_type = 2;</code>
-     */
-    public java.lang.String getInstanceType() {
-      java.lang.Object ref = instanceType_;
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        instanceType_ = s;
-        return s;
-      }
-    }
-    /**
-     * <pre>
-     * The ML compute instance type
-     * </pre>
-     *
-     * <code>string instance_type = 2;</code>
-     */
-    public com.google.protobuf.ByteString
-        getInstanceTypeBytes() {
-      java.lang.Object ref = instanceType_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8(
-                (java.lang.String) ref);
-        instanceType_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-
-    public static final int VOLUME_SIZE_IN_GB_FIELD_NUMBER = 3;
-    private long volumeSizeInGb_;
-    /**
-     * <pre>
-     * The size of the ML storage volume that you want to provision.
-     * </pre>
-     *
-     * <code>int64 volume_size_in_gb = 3;</code>
-     */
-    public long getVolumeSizeInGb() {
-      return volumeSizeInGb_;
-    }
-
-    public static final int DISTRIBUTED_PROTOCOL_FIELD_NUMBER = 4;
-    private int distributedProtocol_;
-    /**
-     * <pre>
-     * When users specify an instance_count &gt; 1, Flyte will try to configure SageMaker to enable distributed training.
-     * If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-     * field should be set to the corresponding enum value
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;</code>
-     */
-    public int getDistributedProtocolValue() {
-      return distributedProtocol_;
-    }
-    /**
-     * <pre>
-     * When users specify an instance_count &gt; 1, Flyte will try to configure SageMaker to enable distributed training.
-     * If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-     * field should be set to the corresponding enum value
-     * </pre>
-     *
-     * <code>.flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value getDistributedProtocol() {
-      @SuppressWarnings("deprecation")
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value result = flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value.valueOf(distributedProtocol_);
-      return result == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value.UNRECOGNIZED : result;
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (instanceCount_ != 0L) {
-        output.writeInt64(1, instanceCount_);
-      }
-      if (!getInstanceTypeBytes().isEmpty()) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, instanceType_);
-      }
-      if (volumeSizeInGb_ != 0L) {
-        output.writeInt64(3, volumeSizeInGb_);
-      }
-      if (distributedProtocol_ != flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value.UNSPECIFIED.getNumber()) {
-        output.writeEnum(4, distributedProtocol_);
-      }
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      if (instanceCount_ != 0L) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(1, instanceCount_);
-      }
-      if (!getInstanceTypeBytes().isEmpty()) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, instanceType_);
-      }
-      if (volumeSizeInGb_ != 0L) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(3, volumeSizeInGb_);
-      }
-      if (distributedProtocol_ != flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value.UNSPECIFIED.getNumber()) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(4, distributedProtocol_);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig other = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig) obj;
-
-      if (getInstanceCount()
-          != other.getInstanceCount()) return false;
-      if (!getInstanceType()
-          .equals(other.getInstanceType())) return false;
-      if (getVolumeSizeInGb()
-          != other.getVolumeSizeInGb()) return false;
-      if (distributedProtocol_ != other.distributedProtocol_) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + INSTANCE_COUNT_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
-          getInstanceCount());
-      hash = (37 * hash) + INSTANCE_TYPE_FIELD_NUMBER;
-      hash = (53 * hash) + getInstanceType().hashCode();
-      hash = (37 * hash) + VOLUME_SIZE_IN_GB_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
-          getVolumeSizeInGb());
-      hash = (37 * hash) + DISTRIBUTED_PROTOCOL_FIELD_NUMBER;
-      hash = (53 * hash) + distributedProtocol_;
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * TrainingJobResourceConfig is a pass-through, specifying the instance type to use for the training job, the
-     * number of instances to launch, and the size of the ML storage volume the user wants to provision
-     * Refer to SageMaker official doc for more details: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.TrainingJobResourceConfig}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfigOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJobResourceConfig_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJobResourceConfig_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        instanceCount_ = 0L;
-
-        instanceType_ = "";
-
-        volumeSizeInGb_ = 0L;
-
-        distributedProtocol_ = 0;
-
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJobResourceConfig_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig build() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig buildPartial() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig result = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig(this);
-        result.instanceCount_ = instanceCount_;
-        result.instanceType_ = instanceType_;
-        result.volumeSizeInGb_ = volumeSizeInGb_;
-        result.distributedProtocol_ = distributedProtocol_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig) {
-          return mergeFrom((flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig other) {
-        if (other == flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.getDefaultInstance()) return this;
-        if (other.getInstanceCount() != 0L) {
-          setInstanceCount(other.getInstanceCount());
-        }
-        if (!other.getInstanceType().isEmpty()) {
-          instanceType_ = other.instanceType_;
-          onChanged();
-        }
-        if (other.getVolumeSizeInGb() != 0L) {
-          setVolumeSizeInGb(other.getVolumeSizeInGb());
-        }
-        if (other.distributedProtocol_ != 0) {
-          setDistributedProtocolValue(other.getDistributedProtocolValue());
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      private long instanceCount_ ;
-      /**
-       * <pre>
-       * The number of ML compute instances to use. For distributed training, provide a value greater than 1.
-       * </pre>
-       *
-       * <code>int64 instance_count = 1;</code>
-       */
-      public long getInstanceCount() {
-        return instanceCount_;
-      }
-      /**
-       * <pre>
-       * The number of ML compute instances to use. For distributed training, provide a value greater than 1.
-       * </pre>
-       *
-       * <code>int64 instance_count = 1;</code>
-       */
-      public Builder setInstanceCount(long value) {
-        
-        instanceCount_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The number of ML compute instances to use. For distributed training, provide a value greater than 1.
-       * </pre>
-       *
-       * <code>int64 instance_count = 1;</code>
-       */
-      public Builder clearInstanceCount() {
-        
-        instanceCount_ = 0L;
-        onChanged();
-        return this;
-      }
-
-      private java.lang.Object instanceType_ = "";
-      /**
-       * <pre>
-       * The ML compute instance type
-       * </pre>
-       *
-       * <code>string instance_type = 2;</code>
-       */
-      public java.lang.String getInstanceType() {
-        java.lang.Object ref = instanceType_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          instanceType_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       * <pre>
-       * The ML compute instance type
-       * </pre>
-       *
-       * <code>string instance_type = 2;</code>
-       */
-      public com.google.protobuf.ByteString
-          getInstanceTypeBytes() {
-        java.lang.Object ref = instanceType_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          instanceType_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
-      /**
-       * <pre>
-       * The ML compute instance type
-       * </pre>
-       *
-       * <code>string instance_type = 2;</code>
-       */
-      public Builder setInstanceType(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        instanceType_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The ML compute instance type
-       * </pre>
-       *
-       * <code>string instance_type = 2;</code>
-       */
-      public Builder clearInstanceType() {
-        
-        instanceType_ = getDefaultInstance().getInstanceType();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The ML compute instance type
-       * </pre>
-       *
-       * <code>string instance_type = 2;</code>
-       */
-      public Builder setInstanceTypeBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
-        instanceType_ = value;
-        onChanged();
-        return this;
-      }
-
-      private long volumeSizeInGb_ ;
-      /**
-       * <pre>
-       * The size of the ML storage volume that you want to provision.
-       * </pre>
-       *
-       * <code>int64 volume_size_in_gb = 3;</code>
-       */
-      public long getVolumeSizeInGb() {
-        return volumeSizeInGb_;
-      }
-      /**
-       * <pre>
-       * The size of the ML storage volume that you want to provision.
-       * </pre>
-       *
-       * <code>int64 volume_size_in_gb = 3;</code>
-       */
-      public Builder setVolumeSizeInGb(long value) {
-        
-        volumeSizeInGb_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * The size of the ML storage volume that you want to provision.
-       * </pre>
-       *
-       * <code>int64 volume_size_in_gb = 3;</code>
-       */
-      public Builder clearVolumeSizeInGb() {
-        
-        volumeSizeInGb_ = 0L;
-        onChanged();
-        return this;
-      }
-
-      private int distributedProtocol_ = 0;
-      /**
-       * <pre>
-       * When users specify an instance_count &gt; 1, Flyte will try to configure SageMaker to enable distributed training.
-       * If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-       * field should be set to the corresponding enum value
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;</code>
-       */
-      public int getDistributedProtocolValue() {
-        return distributedProtocol_;
-      }
-      /**
-       * <pre>
-       * When users specify an instance_count &gt; 1, Flyte will try to configure SageMaker to enable distributed training.
-       * If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-       * field should be set to the corresponding enum value
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;</code>
-       */
-      public Builder setDistributedProtocolValue(int value) {
-        distributedProtocol_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * When users specify an instance_count &gt; 1, Flyte will try to configure SageMaker to enable distributed training.
-       * If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-       * field should be set to the corresponding enum value
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value getDistributedProtocol() {
-        @SuppressWarnings("deprecation")
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value result = flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value.valueOf(distributedProtocol_);
-        return result == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value.UNRECOGNIZED : result;
-      }
-      /**
-       * <pre>
-       * When users specify an instance_count &gt; 1, Flyte will try to configure SageMaker to enable distributed training.
-       * If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-       * field should be set to the corresponding enum value
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;</code>
-       */
-      public Builder setDistributedProtocol(flyteidl.plugins.sagemaker.TrainingJobOuterClass.DistributedProtocol.Value value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        
-        distributedProtocol_ = value.getNumber();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * When users specify an instance_count &gt; 1, Flyte will try to configure SageMaker to enable distributed training.
-       * If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-       * field should be set to the corresponding enum value
-       * </pre>
-       *
-       * <code>.flyteidl.plugins.sagemaker.DistributedProtocol.Value distributed_protocol = 4;</code>
-       */
-      public Builder clearDistributedProtocol() {
-        
-        distributedProtocol_ = 0;
-        onChanged();
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.TrainingJobResourceConfig)
-    private static final flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig();
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<TrainingJobResourceConfig>
-        PARSER = new com.google.protobuf.AbstractParser<TrainingJobResourceConfig>() {
-      @java.lang.Override
-      public TrainingJobResourceConfig parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new TrainingJobResourceConfig(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<TrainingJobResourceConfig> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<TrainingJobResourceConfig> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  public interface TrainingJobOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.plugins.sagemaker.TrainingJob)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-     */
-    boolean hasAlgorithmSpecification();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification getAlgorithmSpecification();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecificationOrBuilder getAlgorithmSpecificationOrBuilder();
-
-    /**
-     * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-     */
-    boolean hasTrainingJobResourceConfig();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig getTrainingJobResourceConfig();
-    /**
-     * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-     */
-    flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfigOrBuilder getTrainingJobResourceConfigOrBuilder();
-  }
-  /**
-   * <pre>
-   * The spec of a training job. This is mostly a pass-through object
-   * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
-   * </pre>
-   *
-   * Protobuf type {@code flyteidl.plugins.sagemaker.TrainingJob}
-   */
-  public  static final class TrainingJob extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.plugins.sagemaker.TrainingJob)
-      TrainingJobOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use TrainingJob.newBuilder() to construct.
-    private TrainingJob(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-    private TrainingJob() {
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private TrainingJob(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10: {
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.Builder subBuilder = null;
-              if (algorithmSpecification_ != null) {
-                subBuilder = algorithmSpecification_.toBuilder();
-              }
-              algorithmSpecification_ = input.readMessage(flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(algorithmSpecification_);
-                algorithmSpecification_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            case 18: {
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.Builder subBuilder = null;
-              if (trainingJobResourceConfig_ != null) {
-                subBuilder = trainingJobResourceConfig_.toBuilder();
-              }
-              trainingJobResourceConfig_ = input.readMessage(flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(trainingJobResourceConfig_);
-                trainingJobResourceConfig_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJob_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJob_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.Builder.class);
-    }
-
-    public static final int ALGORITHM_SPECIFICATION_FIELD_NUMBER = 1;
-    private flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification algorithmSpecification_;
-    /**
-     * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-     */
-    public boolean hasAlgorithmSpecification() {
-      return algorithmSpecification_ != null;
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification getAlgorithmSpecification() {
-      return algorithmSpecification_ == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.getDefaultInstance() : algorithmSpecification_;
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecificationOrBuilder getAlgorithmSpecificationOrBuilder() {
-      return getAlgorithmSpecification();
-    }
-
-    public static final int TRAINING_JOB_RESOURCE_CONFIG_FIELD_NUMBER = 2;
-    private flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig trainingJobResourceConfig_;
-    /**
-     * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-     */
-    public boolean hasTrainingJobResourceConfig() {
-      return trainingJobResourceConfig_ != null;
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig getTrainingJobResourceConfig() {
-      return trainingJobResourceConfig_ == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.getDefaultInstance() : trainingJobResourceConfig_;
-    }
-    /**
-     * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-     */
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfigOrBuilder getTrainingJobResourceConfigOrBuilder() {
-      return getTrainingJobResourceConfig();
-    }
-
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (algorithmSpecification_ != null) {
-        output.writeMessage(1, getAlgorithmSpecification());
-      }
-      if (trainingJobResourceConfig_ != null) {
-        output.writeMessage(2, getTrainingJobResourceConfig());
-      }
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      if (algorithmSpecification_ != null) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(1, getAlgorithmSpecification());
-      }
-      if (trainingJobResourceConfig_ != null) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(2, getTrainingJobResourceConfig());
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob)) {
-        return super.equals(obj);
-      }
-      flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob other = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob) obj;
-
-      if (hasAlgorithmSpecification() != other.hasAlgorithmSpecification()) return false;
-      if (hasAlgorithmSpecification()) {
-        if (!getAlgorithmSpecification()
-            .equals(other.getAlgorithmSpecification())) return false;
-      }
-      if (hasTrainingJobResourceConfig() != other.hasTrainingJobResourceConfig()) return false;
-      if (hasTrainingJobResourceConfig()) {
-        if (!getTrainingJobResourceConfig()
-            .equals(other.getTrainingJobResourceConfig())) return false;
-      }
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      if (hasAlgorithmSpecification()) {
-        hash = (37 * hash) + ALGORITHM_SPECIFICATION_FIELD_NUMBER;
-        hash = (53 * hash) + getAlgorithmSpecification().hashCode();
-      }
-      if (hasTrainingJobResourceConfig()) {
-        hash = (37 * hash) + TRAINING_JOB_RESOURCE_CONFIG_FIELD_NUMBER;
-        hash = (53 * hash) + getTrainingJobResourceConfig().hashCode();
-      }
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * <pre>
-     * The spec of a training job. This is mostly a pass-through object
-     * https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
-     * </pre>
-     *
-     * Protobuf type {@code flyteidl.plugins.sagemaker.TrainingJob}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.plugins.sagemaker.TrainingJob)
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJob_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJob_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.class, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.Builder.class);
-      }
-
-      // Construct using flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        if (algorithmSpecificationBuilder_ == null) {
-          algorithmSpecification_ = null;
-        } else {
-          algorithmSpecification_ = null;
-          algorithmSpecificationBuilder_ = null;
-        }
-        if (trainingJobResourceConfigBuilder_ == null) {
-          trainingJobResourceConfig_ = null;
-        } else {
-          trainingJobResourceConfig_ = null;
-          trainingJobResourceConfigBuilder_ = null;
-        }
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.internal_static_flyteidl_plugins_sagemaker_TrainingJob_descriptor;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob getDefaultInstanceForType() {
-        return flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob build() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob buildPartial() {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob result = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob(this);
-        if (algorithmSpecificationBuilder_ == null) {
-          result.algorithmSpecification_ = algorithmSpecification_;
-        } else {
-          result.algorithmSpecification_ = algorithmSpecificationBuilder_.build();
-        }
-        if (trainingJobResourceConfigBuilder_ == null) {
-          result.trainingJobResourceConfig_ = trainingJobResourceConfig_;
-        } else {
-          result.trainingJobResourceConfig_ = trainingJobResourceConfigBuilder_.build();
-        }
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob) {
-          return mergeFrom((flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob other) {
-        if (other == flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob.getDefaultInstance()) return this;
-        if (other.hasAlgorithmSpecification()) {
-          mergeAlgorithmSpecification(other.getAlgorithmSpecification());
-        }
-        if (other.hasTrainingJobResourceConfig()) {
-          mergeTrainingJobResourceConfig(other.getTrainingJobResourceConfig());
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      private flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification algorithmSpecification_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification, flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecificationOrBuilder> algorithmSpecificationBuilder_;
-      /**
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-       */
-      public boolean hasAlgorithmSpecification() {
-        return algorithmSpecificationBuilder_ != null || algorithmSpecification_ != null;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification getAlgorithmSpecification() {
-        if (algorithmSpecificationBuilder_ == null) {
-          return algorithmSpecification_ == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.getDefaultInstance() : algorithmSpecification_;
-        } else {
-          return algorithmSpecificationBuilder_.getMessage();
-        }
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-       */
-      public Builder setAlgorithmSpecification(flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification value) {
-        if (algorithmSpecificationBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          algorithmSpecification_ = value;
-          onChanged();
-        } else {
-          algorithmSpecificationBuilder_.setMessage(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-       */
-      public Builder setAlgorithmSpecification(
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.Builder builderForValue) {
-        if (algorithmSpecificationBuilder_ == null) {
-          algorithmSpecification_ = builderForValue.build();
-          onChanged();
-        } else {
-          algorithmSpecificationBuilder_.setMessage(builderForValue.build());
-        }
-
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-       */
-      public Builder mergeAlgorithmSpecification(flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification value) {
-        if (algorithmSpecificationBuilder_ == null) {
-          if (algorithmSpecification_ != null) {
-            algorithmSpecification_ =
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.newBuilder(algorithmSpecification_).mergeFrom(value).buildPartial();
-          } else {
-            algorithmSpecification_ = value;
-          }
-          onChanged();
-        } else {
-          algorithmSpecificationBuilder_.mergeFrom(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-       */
-      public Builder clearAlgorithmSpecification() {
-        if (algorithmSpecificationBuilder_ == null) {
-          algorithmSpecification_ = null;
-          onChanged();
-        } else {
-          algorithmSpecification_ = null;
-          algorithmSpecificationBuilder_ = null;
-        }
-
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.Builder getAlgorithmSpecificationBuilder() {
-        
-        onChanged();
-        return getAlgorithmSpecificationFieldBuilder().getBuilder();
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecificationOrBuilder getAlgorithmSpecificationOrBuilder() {
-        if (algorithmSpecificationBuilder_ != null) {
-          return algorithmSpecificationBuilder_.getMessageOrBuilder();
-        } else {
-          return algorithmSpecification_ == null ?
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.getDefaultInstance() : algorithmSpecification_;
-        }
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.AlgorithmSpecification algorithm_specification = 1;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification, flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecificationOrBuilder> 
-          getAlgorithmSpecificationFieldBuilder() {
-        if (algorithmSpecificationBuilder_ == null) {
-          algorithmSpecificationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification, flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecification.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.AlgorithmSpecificationOrBuilder>(
-                  getAlgorithmSpecification(),
-                  getParentForChildren(),
-                  isClean());
-          algorithmSpecification_ = null;
-        }
-        return algorithmSpecificationBuilder_;
-      }
-
-      private flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig trainingJobResourceConfig_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfigOrBuilder> trainingJobResourceConfigBuilder_;
-      /**
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-       */
-      public boolean hasTrainingJobResourceConfig() {
-        return trainingJobResourceConfigBuilder_ != null || trainingJobResourceConfig_ != null;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig getTrainingJobResourceConfig() {
-        if (trainingJobResourceConfigBuilder_ == null) {
-          return trainingJobResourceConfig_ == null ? flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.getDefaultInstance() : trainingJobResourceConfig_;
-        } else {
-          return trainingJobResourceConfigBuilder_.getMessage();
-        }
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-       */
-      public Builder setTrainingJobResourceConfig(flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig value) {
-        if (trainingJobResourceConfigBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          trainingJobResourceConfig_ = value;
-          onChanged();
-        } else {
-          trainingJobResourceConfigBuilder_.setMessage(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-       */
-      public Builder setTrainingJobResourceConfig(
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.Builder builderForValue) {
-        if (trainingJobResourceConfigBuilder_ == null) {
-          trainingJobResourceConfig_ = builderForValue.build();
-          onChanged();
-        } else {
-          trainingJobResourceConfigBuilder_.setMessage(builderForValue.build());
-        }
-
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-       */
-      public Builder mergeTrainingJobResourceConfig(flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig value) {
-        if (trainingJobResourceConfigBuilder_ == null) {
-          if (trainingJobResourceConfig_ != null) {
-            trainingJobResourceConfig_ =
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.newBuilder(trainingJobResourceConfig_).mergeFrom(value).buildPartial();
-          } else {
-            trainingJobResourceConfig_ = value;
-          }
-          onChanged();
-        } else {
-          trainingJobResourceConfigBuilder_.mergeFrom(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-       */
-      public Builder clearTrainingJobResourceConfig() {
-        if (trainingJobResourceConfigBuilder_ == null) {
-          trainingJobResourceConfig_ = null;
-          onChanged();
-        } else {
-          trainingJobResourceConfig_ = null;
-          trainingJobResourceConfigBuilder_ = null;
-        }
-
-        return this;
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.Builder getTrainingJobResourceConfigBuilder() {
-        
-        onChanged();
-        return getTrainingJobResourceConfigFieldBuilder().getBuilder();
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-       */
-      public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfigOrBuilder getTrainingJobResourceConfigOrBuilder() {
-        if (trainingJobResourceConfigBuilder_ != null) {
-          return trainingJobResourceConfigBuilder_.getMessageOrBuilder();
-        } else {
-          return trainingJobResourceConfig_ == null ?
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.getDefaultInstance() : trainingJobResourceConfig_;
-        }
-      }
-      /**
-       * <code>.flyteidl.plugins.sagemaker.TrainingJobResourceConfig training_job_resource_config = 2;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfigOrBuilder> 
-          getTrainingJobResourceConfigFieldBuilder() {
-        if (trainingJobResourceConfigBuilder_ == null) {
-          trainingJobResourceConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfig.Builder, flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJobResourceConfigOrBuilder>(
-                  getTrainingJobResourceConfig(),
-                  getParentForChildren(),
-                  isClean());
-          trainingJobResourceConfig_ = null;
-        }
-        return trainingJobResourceConfigBuilder_;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.plugins.sagemaker.TrainingJob)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.plugins.sagemaker.TrainingJob)
-    private static final flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob();
-    }
-
-    public static flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<TrainingJob>
-        PARSER = new com.google.protobuf.AbstractParser<TrainingJob>() {
-      @java.lang.Override
-      public TrainingJob parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new TrainingJob(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser<TrainingJob> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<TrainingJob> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.plugins.sagemaker.TrainingJobOuterClass.TrainingJob getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
-  }
-
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_InputMode_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_InputMode_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_AlgorithmName_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_AlgorithmName_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_InputContentType_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_InputContentType_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_MetricDefinition_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_MetricDefinition_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_AlgorithmSpecification_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_AlgorithmSpecification_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_DistributedProtocol_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_DistributedProtocol_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_TrainingJobResourceConfig_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_TrainingJobResourceConfig_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_plugins_sagemaker_TrainingJob_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_plugins_sagemaker_TrainingJob_fieldAccessorTable;
-
-  public static com.google.protobuf.Descriptors.FileDescriptor
-      getDescriptor() {
-    return descriptor;
-  }
-  private static  com.google.protobuf.Descriptors.FileDescriptor
-      descriptor;
-  static {
-    java.lang.String[] descriptorData = {
-      "\n-flyteidl/plugins/sagemaker/training_jo" +
-      "b.proto\022\032flyteidl.plugins.sagemaker\032\036goo" +
-      "gle/protobuf/duration.proto\"(\n\tInputMode" +
-      "\"\033\n\005Value\022\010\n\004FILE\020\000\022\010\n\004PIPE\020\001\"1\n\rAlgorit" +
-      "hmName\" \n\005Value\022\n\n\006CUSTOM\020\000\022\013\n\007XGBOOST\020\001" +
-      "\")\n\020InputContentType\"\025\n\005Value\022\014\n\010TEXT_CS" +
-      "V\020\000\"/\n\020MetricDefinition\022\014\n\004name\030\001 \001(\t\022\r\n" +
-      "\005regex\030\002 \001(\t\"\327\002\n\026AlgorithmSpecification\022" +
-      "?\n\ninput_mode\030\001 \001(\0162+.flyteidl.plugins.s" +
-      "agemaker.InputMode.Value\022G\n\016algorithm_na" +
-      "me\030\002 \001(\0162/.flyteidl.plugins.sagemaker.Al" +
-      "gorithmName.Value\022\031\n\021algorithm_version\030\003" +
-      " \001(\t\022H\n\022metric_definitions\030\004 \003(\0132,.flyte" +
-      "idl.plugins.sagemaker.MetricDefinition\022N" +
-      "\n\022input_content_type\030\005 \001(\01622.flyteidl.pl" +
-      "ugins.sagemaker.InputContentType.Value\"8" +
-      "\n\023DistributedProtocol\"!\n\005Value\022\017\n\013UNSPEC" +
-      "IFIED\020\000\022\007\n\003MPI\020\001\"\272\001\n\031TrainingJobResource" +
-      "Config\022\026\n\016instance_count\030\001 \001(\003\022\025\n\rinstan" +
-      "ce_type\030\002 \001(\t\022\031\n\021volume_size_in_gb\030\003 \001(\003" +
-      "\022S\n\024distributed_protocol\030\004 \001(\01625.flyteid" +
-      "l.plugins.sagemaker.DistributedProtocol." +
-      "Value\"\277\001\n\013TrainingJob\022S\n\027algorithm_speci" +
-      "fication\030\001 \001(\01322.flyteidl.plugins.sagema" +
-      "ker.AlgorithmSpecification\022[\n\034training_j" +
-      "ob_resource_config\030\002 \001(\01325.flyteidl.plug" +
-      "ins.sagemaker.TrainingJobResourceConfigB" +
-      "?Z=github.com/flyteorg/flyte/flyteidl/ge" +
-      "n/pb-go/flyteidl/pluginsb\006proto3"
-    };
-    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
-        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
-          public com.google.protobuf.ExtensionRegistry assignDescriptors(
-              com.google.protobuf.Descriptors.FileDescriptor root) {
-            descriptor = root;
-            return null;
-          }
-        };
-    com.google.protobuf.Descriptors.FileDescriptor
-      .internalBuildGeneratedFileFrom(descriptorData,
-        new com.google.protobuf.Descriptors.FileDescriptor[] {
-          com.google.protobuf.DurationProto.getDescriptor(),
-        }, assigner);
-    internal_static_flyteidl_plugins_sagemaker_InputMode_descriptor =
-      getDescriptor().getMessageTypes().get(0);
-    internal_static_flyteidl_plugins_sagemaker_InputMode_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_InputMode_descriptor,
-        new java.lang.String[] { });
-    internal_static_flyteidl_plugins_sagemaker_AlgorithmName_descriptor =
-      getDescriptor().getMessageTypes().get(1);
-    internal_static_flyteidl_plugins_sagemaker_AlgorithmName_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_AlgorithmName_descriptor,
-        new java.lang.String[] { });
-    internal_static_flyteidl_plugins_sagemaker_InputContentType_descriptor =
-      getDescriptor().getMessageTypes().get(2);
-    internal_static_flyteidl_plugins_sagemaker_InputContentType_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_InputContentType_descriptor,
-        new java.lang.String[] { });
-    internal_static_flyteidl_plugins_sagemaker_MetricDefinition_descriptor =
-      getDescriptor().getMessageTypes().get(3);
-    internal_static_flyteidl_plugins_sagemaker_MetricDefinition_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_MetricDefinition_descriptor,
-        new java.lang.String[] { "Name", "Regex", });
-    internal_static_flyteidl_plugins_sagemaker_AlgorithmSpecification_descriptor =
-      getDescriptor().getMessageTypes().get(4);
-    internal_static_flyteidl_plugins_sagemaker_AlgorithmSpecification_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_AlgorithmSpecification_descriptor,
-        new java.lang.String[] { "InputMode", "AlgorithmName", "AlgorithmVersion", "MetricDefinitions", "InputContentType", });
-    internal_static_flyteidl_plugins_sagemaker_DistributedProtocol_descriptor =
-      getDescriptor().getMessageTypes().get(5);
-    internal_static_flyteidl_plugins_sagemaker_DistributedProtocol_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_DistributedProtocol_descriptor,
-        new java.lang.String[] { });
-    internal_static_flyteidl_plugins_sagemaker_TrainingJobResourceConfig_descriptor =
-      getDescriptor().getMessageTypes().get(6);
-    internal_static_flyteidl_plugins_sagemaker_TrainingJobResourceConfig_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_TrainingJobResourceConfig_descriptor,
-        new java.lang.String[] { "InstanceCount", "InstanceType", "VolumeSizeInGb", "DistributedProtocol", });
-    internal_static_flyteidl_plugins_sagemaker_TrainingJob_descriptor =
-      getDescriptor().getMessageTypes().get(7);
-    internal_static_flyteidl_plugins_sagemaker_TrainingJob_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_plugins_sagemaker_TrainingJob_descriptor,
-        new java.lang.String[] { "AlgorithmSpecification", "TrainingJobResourceConfig", });
-    com.google.protobuf.DurationProto.getDescriptor();
-  }
-
-  // @@protoc_insertion_point(outer_class_scope)
-}
diff --git a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/__init__.py b/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/__init__.py
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.py b/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.py
deleted file mode 100644
index 88639ee5ab..0000000000
--- a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto
-"""Generated protocol buffer code."""
-from google.protobuf.internal import builder as _builder
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-from flyteidl.plugins.sagemaker import parameter_ranges_pb2 as flyteidl_dot_plugins_dot_sagemaker_dot_parameter__ranges__pb2
-from flyteidl.plugins.sagemaker import training_job_pb2 as flyteidl_dot_plugins_dot_sagemaker_dot_training__job__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n:flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto\x12\x1a\x66lyteidl.plugins.sagemaker\x1a\x31\x66lyteidl/plugins/sagemaker/parameter_ranges.proto\x1a-flyteidl/plugins/sagemaker/training_job.proto\"\xe0\x01\n\x17HyperparameterTuningJob\x12J\n\x0ctraining_job\x18\x01 \x01(\x0b\x32\'.flyteidl.plugins.sagemaker.TrainingJobR\x0btrainingJob\x12<\n\x1bmax_number_of_training_jobs\x18\x02 \x01(\x03R\x17maxNumberOfTrainingJobs\x12;\n\x1amax_parallel_training_jobs\x18\x03 \x01(\x03R\x17maxParallelTrainingJobs\"H\n!HyperparameterTuningObjectiveType\"#\n\x05Value\x12\x0c\n\x08MINIMIZE\x10\x00\x12\x0c\n\x08MAXIMIZE\x10\x01\"\xac\x01\n\x1dHyperparameterTuningObjective\x12j\n\x0eobjective_type\x18\x01 \x01(\x0e\x32\x43.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.ValueR\robjectiveType\x12\x1f\n\x0bmetric_name\x18\x02 \x01(\tR\nmetricName\"A\n\x1cHyperparameterTuningStrategy\"!\n\x05Value\x12\x0c\n\x08\x42\x41YESIAN\x10\x00\x12\n\n\x06RANDOM\x10\x01\":\n\x1cTrainingJobEarlyStoppingType\"\x1a\n\x05Value\x12\x07\n\x03OFF\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\"\xd9\x03\n\x1dHyperparameterTuningJobConfig\x12`\n\x15hyperparameter_ranges\x18\x01 \x01(\x0b\x32+.flyteidl.plugins.sagemaker.ParameterRangesR\x14hyperparameterRanges\x12g\n\x0ftuning_strategy\x18\x02 \x01(\x0e\x32>.flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.ValueR\x0etuningStrategy\x12\x64\n\x10tuning_objective\x18\x03 \x01(\x0b\x32\x39.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveR\x0ftuningObjective\x12\x86\x01\n training_job_early_stopping_type\x18\x04 \x01(\x0e\x32>.flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.ValueR\x1ctrainingJobEarlyStoppingTypeB\x87\x02\n\x1e\x63om.flyteidl.plugins.sagemakerB\x1cHyperparameterTuningJobProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PS\xaa\x02\x1a\x46lyteidl.Plugins.Sagemaker\xca\x02\x1a\x46lyteidl\\Plugins\\Sagemaker\xe2\x02&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\xea\x02\x1c\x46lyteidl::Plugins::Sagemakerb\x06proto3')
-
-_globals = globals()
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.sagemaker.hyperparameter_tuning_job_pb2', _globals)
-if _descriptor._USE_C_DESCRIPTORS == False:
-
-  DESCRIPTOR._options = None
-  DESCRIPTOR._serialized_options = b'\n\036com.flyteidl.plugins.sagemakerB\034HyperparameterTuningJobProtoP\001Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPS\252\002\032Flyteidl.Plugins.Sagemaker\312\002\032Flyteidl\\Plugins\\Sagemaker\342\002&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\352\002\034Flyteidl::Plugins::Sagemaker'
-  _globals['_HYPERPARAMETERTUNINGJOB']._serialized_start=189
-  _globals['_HYPERPARAMETERTUNINGJOB']._serialized_end=413
-  _globals['_HYPERPARAMETERTUNINGOBJECTIVETYPE']._serialized_start=415
-  _globals['_HYPERPARAMETERTUNINGOBJECTIVETYPE']._serialized_end=487
-  _globals['_HYPERPARAMETERTUNINGOBJECTIVETYPE_VALUE']._serialized_start=452
-  _globals['_HYPERPARAMETERTUNINGOBJECTIVETYPE_VALUE']._serialized_end=487
-  _globals['_HYPERPARAMETERTUNINGOBJECTIVE']._serialized_start=490
-  _globals['_HYPERPARAMETERTUNINGOBJECTIVE']._serialized_end=662
-  _globals['_HYPERPARAMETERTUNINGSTRATEGY']._serialized_start=664
-  _globals['_HYPERPARAMETERTUNINGSTRATEGY']._serialized_end=729
-  _globals['_HYPERPARAMETERTUNINGSTRATEGY_VALUE']._serialized_start=696
-  _globals['_HYPERPARAMETERTUNINGSTRATEGY_VALUE']._serialized_end=729
-  _globals['_TRAININGJOBEARLYSTOPPINGTYPE']._serialized_start=731
-  _globals['_TRAININGJOBEARLYSTOPPINGTYPE']._serialized_end=789
-  _globals['_TRAININGJOBEARLYSTOPPINGTYPE_VALUE']._serialized_start=763
-  _globals['_TRAININGJOBEARLYSTOPPINGTYPE_VALUE']._serialized_end=789
-  _globals['_HYPERPARAMETERTUNINGJOBCONFIG']._serialized_start=792
-  _globals['_HYPERPARAMETERTUNINGJOBCONFIG']._serialized_end=1265
-# @@protoc_insertion_point(module_scope)
diff --git a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.pyi
deleted file mode 100644
index dd17ea4d9c..0000000000
--- a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.pyi
+++ /dev/null
@@ -1,68 +0,0 @@
-from flyteidl.plugins.sagemaker import parameter_ranges_pb2 as _parameter_ranges_pb2
-from flyteidl.plugins.sagemaker import training_job_pb2 as _training_job_pb2
-from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
-
-DESCRIPTOR: _descriptor.FileDescriptor
-
-class HyperparameterTuningJob(_message.Message):
-    __slots__ = ["training_job", "max_number_of_training_jobs", "max_parallel_training_jobs"]
-    TRAINING_JOB_FIELD_NUMBER: _ClassVar[int]
-    MAX_NUMBER_OF_TRAINING_JOBS_FIELD_NUMBER: _ClassVar[int]
-    MAX_PARALLEL_TRAINING_JOBS_FIELD_NUMBER: _ClassVar[int]
-    training_job: _training_job_pb2.TrainingJob
-    max_number_of_training_jobs: int
-    max_parallel_training_jobs: int
-    def __init__(self, training_job: _Optional[_Union[_training_job_pb2.TrainingJob, _Mapping]] = ..., max_number_of_training_jobs: _Optional[int] = ..., max_parallel_training_jobs: _Optional[int] = ...) -> None: ...
-
-class HyperparameterTuningObjectiveType(_message.Message):
-    __slots__ = []
-    class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
-        __slots__ = []
-        MINIMIZE: _ClassVar[HyperparameterTuningObjectiveType.Value]
-        MAXIMIZE: _ClassVar[HyperparameterTuningObjectiveType.Value]
-    MINIMIZE: HyperparameterTuningObjectiveType.Value
-    MAXIMIZE: HyperparameterTuningObjectiveType.Value
-    def __init__(self) -> None: ...
-
-class HyperparameterTuningObjective(_message.Message):
-    __slots__ = ["objective_type", "metric_name"]
-    OBJECTIVE_TYPE_FIELD_NUMBER: _ClassVar[int]
-    METRIC_NAME_FIELD_NUMBER: _ClassVar[int]
-    objective_type: HyperparameterTuningObjectiveType.Value
-    metric_name: str
-    def __init__(self, objective_type: _Optional[_Union[HyperparameterTuningObjectiveType.Value, str]] = ..., metric_name: _Optional[str] = ...) -> None: ...
-
-class HyperparameterTuningStrategy(_message.Message):
-    __slots__ = []
-    class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
-        __slots__ = []
-        BAYESIAN: _ClassVar[HyperparameterTuningStrategy.Value]
-        RANDOM: _ClassVar[HyperparameterTuningStrategy.Value]
-    BAYESIAN: HyperparameterTuningStrategy.Value
-    RANDOM: HyperparameterTuningStrategy.Value
-    def __init__(self) -> None: ...
-
-class TrainingJobEarlyStoppingType(_message.Message):
-    __slots__ = []
-    class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
-        __slots__ = []
-        OFF: _ClassVar[TrainingJobEarlyStoppingType.Value]
-        AUTO: _ClassVar[TrainingJobEarlyStoppingType.Value]
-    OFF: TrainingJobEarlyStoppingType.Value
-    AUTO: TrainingJobEarlyStoppingType.Value
-    def __init__(self) -> None: ...
-
-class HyperparameterTuningJobConfig(_message.Message):
-    __slots__ = ["hyperparameter_ranges", "tuning_strategy", "tuning_objective", "training_job_early_stopping_type"]
-    HYPERPARAMETER_RANGES_FIELD_NUMBER: _ClassVar[int]
-    TUNING_STRATEGY_FIELD_NUMBER: _ClassVar[int]
-    TUNING_OBJECTIVE_FIELD_NUMBER: _ClassVar[int]
-    TRAINING_JOB_EARLY_STOPPING_TYPE_FIELD_NUMBER: _ClassVar[int]
-    hyperparameter_ranges: _parameter_ranges_pb2.ParameterRanges
-    tuning_strategy: HyperparameterTuningStrategy.Value
-    tuning_objective: HyperparameterTuningObjective
-    training_job_early_stopping_type: TrainingJobEarlyStoppingType.Value
-    def __init__(self, hyperparameter_ranges: _Optional[_Union[_parameter_ranges_pb2.ParameterRanges, _Mapping]] = ..., tuning_strategy: _Optional[_Union[HyperparameterTuningStrategy.Value, str]] = ..., tuning_objective: _Optional[_Union[HyperparameterTuningObjective, _Mapping]] = ..., training_job_early_stopping_type: _Optional[_Union[TrainingJobEarlyStoppingType.Value, str]] = ...) -> None: ...
diff --git a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2_grpc.py b/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2_grpc.py
deleted file mode 100644
index 2daafffebf..0000000000
--- a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2_grpc.py
+++ /dev/null
@@ -1,4 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
diff --git a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/parameter_ranges_pb2.py b/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/parameter_ranges_pb2.py
deleted file mode 100644
index 44e8a00cd0..0000000000
--- a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/parameter_ranges_pb2.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: flyteidl/plugins/sagemaker/parameter_ranges.proto
-"""Generated protocol buffer code."""
-from google.protobuf.internal import builder as _builder
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n1flyteidl/plugins/sagemaker/parameter_ranges.proto\x12\x1a\x66lyteidl.plugins.sagemaker\"c\n\x19HyperparameterScalingType\"F\n\x05Value\x12\x08\n\x04\x41UTO\x10\x00\x12\n\n\x06LINEAR\x10\x01\x12\x0f\n\x0bLOGARITHMIC\x10\x02\x12\x16\n\x12REVERSELOGARITHMIC\x10\x03\"\xb4\x01\n\x18\x43ontinuousParameterRange\x12\x1b\n\tmax_value\x18\x01 \x01(\x01R\x08maxValue\x12\x1b\n\tmin_value\x18\x02 \x01(\x01R\x08minValue\x12^\n\x0cscaling_type\x18\x03 \x01(\x0e\x32;.flyteidl.plugins.sagemaker.HyperparameterScalingType.ValueR\x0bscalingType\"\xb1\x01\n\x15IntegerParameterRange\x12\x1b\n\tmax_value\x18\x01 \x01(\x03R\x08maxValue\x12\x1b\n\tmin_value\x18\x02 \x01(\x03R\x08minValue\x12^\n\x0cscaling_type\x18\x03 \x01(\x0e\x32;.flyteidl.plugins.sagemaker.HyperparameterScalingType.ValueR\x0bscalingType\"3\n\x19\x43\x61tegoricalParameterRange\x12\x16\n\x06values\x18\x01 \x03(\tR\x06values\"\x89\x03\n\x13ParameterRangeOneOf\x12t\n\x1a\x63ontinuous_parameter_range\x18\x01 \x01(\x0b\x32\x34.flyteidl.plugins.sagemaker.ContinuousParameterRangeH\x00R\x18\x63ontinuousParameterRange\x12k\n\x17integer_parameter_range\x18\x02 \x01(\x0b\x32\x31.flyteidl.plugins.sagemaker.IntegerParameterRangeH\x00R\x15integerParameterRange\x12w\n\x1b\x63\x61tegorical_parameter_range\x18\x03 \x01(\x0b\x32\x35.flyteidl.plugins.sagemaker.CategoricalParameterRangeH\x00R\x19\x63\x61tegoricalParameterRangeB\x16\n\x14parameter_range_type\"\xfc\x01\n\x0fParameterRanges\x12r\n\x13parameter_range_map\x18\x01 \x03(\x0b\x32\x42.flyteidl.plugins.sagemaker.ParameterRanges.ParameterRangeMapEntryR\x11parameterRangeMap\x1au\n\x16ParameterRangeMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32/.flyteidl.plugins.sagemaker.ParameterRangeOneOfR\x05value:\x02\x38\x01\x42\xff\x01\n\x1e\x63om.flyteidl.plugins.sagemakerB\x14ParameterRangesProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PS\xaa\x02\x1a\x46lyteidl.Plugins.Sagemaker\xca\x02\x1a\x46lyteidl\\Plugins\\Sagemaker\xe2\x02&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\xea\x02\x1c\x46lyteidl::Plugins::Sagemakerb\x06proto3')
-
-_globals = globals()
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.sagemaker.parameter_ranges_pb2', _globals)
-if _descriptor._USE_C_DESCRIPTORS == False:
-
-  DESCRIPTOR._options = None
-  DESCRIPTOR._serialized_options = b'\n\036com.flyteidl.plugins.sagemakerB\024ParameterRangesProtoP\001Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPS\252\002\032Flyteidl.Plugins.Sagemaker\312\002\032Flyteidl\\Plugins\\Sagemaker\342\002&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\352\002\034Flyteidl::Plugins::Sagemaker'
-  _PARAMETERRANGES_PARAMETERRANGEMAPENTRY._options = None
-  _PARAMETERRANGES_PARAMETERRANGEMAPENTRY._serialized_options = b'8\001'
-  _globals['_HYPERPARAMETERSCALINGTYPE']._serialized_start=81
-  _globals['_HYPERPARAMETERSCALINGTYPE']._serialized_end=180
-  _globals['_HYPERPARAMETERSCALINGTYPE_VALUE']._serialized_start=110
-  _globals['_HYPERPARAMETERSCALINGTYPE_VALUE']._serialized_end=180
-  _globals['_CONTINUOUSPARAMETERRANGE']._serialized_start=183
-  _globals['_CONTINUOUSPARAMETERRANGE']._serialized_end=363
-  _globals['_INTEGERPARAMETERRANGE']._serialized_start=366
-  _globals['_INTEGERPARAMETERRANGE']._serialized_end=543
-  _globals['_CATEGORICALPARAMETERRANGE']._serialized_start=545
-  _globals['_CATEGORICALPARAMETERRANGE']._serialized_end=596
-  _globals['_PARAMETERRANGEONEOF']._serialized_start=599
-  _globals['_PARAMETERRANGEONEOF']._serialized_end=992
-  _globals['_PARAMETERRANGES']._serialized_start=995
-  _globals['_PARAMETERRANGES']._serialized_end=1247
-  _globals['_PARAMETERRANGES_PARAMETERRANGEMAPENTRY']._serialized_start=1130
-  _globals['_PARAMETERRANGES_PARAMETERRANGEMAPENTRY']._serialized_end=1247
-# @@protoc_insertion_point(module_scope)
diff --git a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/parameter_ranges_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/parameter_ranges_pb2.pyi
deleted file mode 100644
index d773c628e6..0000000000
--- a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/parameter_ranges_pb2.pyi
+++ /dev/null
@@ -1,70 +0,0 @@
-from google.protobuf.internal import containers as _containers
-from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
-
-DESCRIPTOR: _descriptor.FileDescriptor
-
-class HyperparameterScalingType(_message.Message):
-    __slots__ = []
-    class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
-        __slots__ = []
-        AUTO: _ClassVar[HyperparameterScalingType.Value]
-        LINEAR: _ClassVar[HyperparameterScalingType.Value]
-        LOGARITHMIC: _ClassVar[HyperparameterScalingType.Value]
-        REVERSELOGARITHMIC: _ClassVar[HyperparameterScalingType.Value]
-    AUTO: HyperparameterScalingType.Value
-    LINEAR: HyperparameterScalingType.Value
-    LOGARITHMIC: HyperparameterScalingType.Value
-    REVERSELOGARITHMIC: HyperparameterScalingType.Value
-    def __init__(self) -> None: ...
-
-class ContinuousParameterRange(_message.Message):
-    __slots__ = ["max_value", "min_value", "scaling_type"]
-    MAX_VALUE_FIELD_NUMBER: _ClassVar[int]
-    MIN_VALUE_FIELD_NUMBER: _ClassVar[int]
-    SCALING_TYPE_FIELD_NUMBER: _ClassVar[int]
-    max_value: float
-    min_value: float
-    scaling_type: HyperparameterScalingType.Value
-    def __init__(self, max_value: _Optional[float] = ..., min_value: _Optional[float] = ..., scaling_type: _Optional[_Union[HyperparameterScalingType.Value, str]] = ...) -> None: ...
-
-class IntegerParameterRange(_message.Message):
-    __slots__ = ["max_value", "min_value", "scaling_type"]
-    MAX_VALUE_FIELD_NUMBER: _ClassVar[int]
-    MIN_VALUE_FIELD_NUMBER: _ClassVar[int]
-    SCALING_TYPE_FIELD_NUMBER: _ClassVar[int]
-    max_value: int
-    min_value: int
-    scaling_type: HyperparameterScalingType.Value
-    def __init__(self, max_value: _Optional[int] = ..., min_value: _Optional[int] = ..., scaling_type: _Optional[_Union[HyperparameterScalingType.Value, str]] = ...) -> None: ...
-
-class CategoricalParameterRange(_message.Message):
-    __slots__ = ["values"]
-    VALUES_FIELD_NUMBER: _ClassVar[int]
-    values: _containers.RepeatedScalarFieldContainer[str]
-    def __init__(self, values: _Optional[_Iterable[str]] = ...) -> None: ...
-
-class ParameterRangeOneOf(_message.Message):
-    __slots__ = ["continuous_parameter_range", "integer_parameter_range", "categorical_parameter_range"]
-    CONTINUOUS_PARAMETER_RANGE_FIELD_NUMBER: _ClassVar[int]
-    INTEGER_PARAMETER_RANGE_FIELD_NUMBER: _ClassVar[int]
-    CATEGORICAL_PARAMETER_RANGE_FIELD_NUMBER: _ClassVar[int]
-    continuous_parameter_range: ContinuousParameterRange
-    integer_parameter_range: IntegerParameterRange
-    categorical_parameter_range: CategoricalParameterRange
-    def __init__(self, continuous_parameter_range: _Optional[_Union[ContinuousParameterRange, _Mapping]] = ..., integer_parameter_range: _Optional[_Union[IntegerParameterRange, _Mapping]] = ..., categorical_parameter_range: _Optional[_Union[CategoricalParameterRange, _Mapping]] = ...) -> None: ...
-
-class ParameterRanges(_message.Message):
-    __slots__ = ["parameter_range_map"]
-    class ParameterRangeMapEntry(_message.Message):
-        __slots__ = ["key", "value"]
-        KEY_FIELD_NUMBER: _ClassVar[int]
-        VALUE_FIELD_NUMBER: _ClassVar[int]
-        key: str
-        value: ParameterRangeOneOf
-        def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[ParameterRangeOneOf, _Mapping]] = ...) -> None: ...
-    PARAMETER_RANGE_MAP_FIELD_NUMBER: _ClassVar[int]
-    parameter_range_map: _containers.MessageMap[str, ParameterRangeOneOf]
-    def __init__(self, parameter_range_map: _Optional[_Mapping[str, ParameterRangeOneOf]] = ...) -> None: ...
diff --git a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/parameter_ranges_pb2_grpc.py b/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/parameter_ranges_pb2_grpc.py
deleted file mode 100644
index 2daafffebf..0000000000
--- a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/parameter_ranges_pb2_grpc.py
+++ /dev/null
@@ -1,4 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
diff --git a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/training_job_pb2.py b/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/training_job_pb2.py
deleted file mode 100644
index 4f19e58a68..0000000000
--- a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/training_job_pb2.py
+++ /dev/null
@@ -1,50 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: flyteidl/plugins/sagemaker/training_job.proto
-"""Generated protocol buffer code."""
-from google.protobuf.internal import builder as _builder
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-flyteidl/plugins/sagemaker/training_job.proto\x12\x1a\x66lyteidl.plugins.sagemaker\x1a\x1egoogle/protobuf/duration.proto\"(\n\tInputMode\"\x1b\n\x05Value\x12\x08\n\x04\x46ILE\x10\x00\x12\x08\n\x04PIPE\x10\x01\"1\n\rAlgorithmName\" \n\x05Value\x12\n\n\x06\x43USTOM\x10\x00\x12\x0b\n\x07XGBOOST\x10\x01\")\n\x10InputContentType\"\x15\n\x05Value\x12\x0c\n\x08TEXT_CSV\x10\x00\"<\n\x10MetricDefinition\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n\x05regex\x18\x02 \x01(\tR\x05regex\"\xa8\x03\n\x16\x41lgorithmSpecification\x12J\n\ninput_mode\x18\x01 \x01(\x0e\x32+.flyteidl.plugins.sagemaker.InputMode.ValueR\tinputMode\x12V\n\x0e\x61lgorithm_name\x18\x02 \x01(\x0e\x32/.flyteidl.plugins.sagemaker.AlgorithmName.ValueR\ralgorithmName\x12+\n\x11\x61lgorithm_version\x18\x03 \x01(\tR\x10\x61lgorithmVersion\x12[\n\x12metric_definitions\x18\x04 \x03(\x0b\x32,.flyteidl.plugins.sagemaker.MetricDefinitionR\x11metricDefinitions\x12`\n\x12input_content_type\x18\x05 \x01(\x0e\x32\x32.flyteidl.plugins.sagemaker.InputContentType.ValueR\x10inputContentType\"8\n\x13\x44istributedProtocol\"!\n\x05Value\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x07\n\x03MPI\x10\x01\"\xfc\x01\n\x19TrainingJobResourceConfig\x12%\n\x0einstance_count\x18\x01 \x01(\x03R\rinstanceCount\x12#\n\rinstance_type\x18\x02 \x01(\tR\x0cinstanceType\x12)\n\x11volume_size_in_gb\x18\x03 \x01(\x03R\x0evolumeSizeInGb\x12h\n\x14\x64istributed_protocol\x18\x04 \x01(\x0e\x32\x35.flyteidl.plugins.sagemaker.DistributedProtocol.ValueR\x13\x64istributedProtocol\"\xf2\x01\n\x0bTrainingJob\x12k\n\x17\x61lgorithm_specification\x18\x01 \x01(\x0b\x32\x32.flyteidl.plugins.sagemaker.AlgorithmSpecificationR\x16\x61lgorithmSpecification\x12v\n\x1ctraining_job_resource_config\x18\x02 \x01(\x0b\x32\x35.flyteidl.plugins.sagemaker.TrainingJobResourceConfigR\x19trainingJobResourceConfigB\xfb\x01\n\x1e\x63om.flyteidl.plugins.sagemakerB\x10TrainingJobProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PS\xaa\x02\x1a\x46lyteidl.Plugins.Sagemaker\xca\x02\x1a\x46lyteidl\\Plugins\\Sagemaker\xe2\x02&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\xea\x02\x1c\x46lyteidl::Plugins::Sagemakerb\x06proto3')
-
-_globals = globals()
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.sagemaker.training_job_pb2', _globals)
-if _descriptor._USE_C_DESCRIPTORS == False:
-
-  DESCRIPTOR._options = None
-  DESCRIPTOR._serialized_options = b'\n\036com.flyteidl.plugins.sagemakerB\020TrainingJobProtoP\001Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPS\252\002\032Flyteidl.Plugins.Sagemaker\312\002\032Flyteidl\\Plugins\\Sagemaker\342\002&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\352\002\034Flyteidl::Plugins::Sagemaker'
-  _globals['_INPUTMODE']._serialized_start=109
-  _globals['_INPUTMODE']._serialized_end=149
-  _globals['_INPUTMODE_VALUE']._serialized_start=122
-  _globals['_INPUTMODE_VALUE']._serialized_end=149
-  _globals['_ALGORITHMNAME']._serialized_start=151
-  _globals['_ALGORITHMNAME']._serialized_end=200
-  _globals['_ALGORITHMNAME_VALUE']._serialized_start=168
-  _globals['_ALGORITHMNAME_VALUE']._serialized_end=200
-  _globals['_INPUTCONTENTTYPE']._serialized_start=202
-  _globals['_INPUTCONTENTTYPE']._serialized_end=243
-  _globals['_INPUTCONTENTTYPE_VALUE']._serialized_start=222
-  _globals['_INPUTCONTENTTYPE_VALUE']._serialized_end=243
-  _globals['_METRICDEFINITION']._serialized_start=245
-  _globals['_METRICDEFINITION']._serialized_end=305
-  _globals['_ALGORITHMSPECIFICATION']._serialized_start=308
-  _globals['_ALGORITHMSPECIFICATION']._serialized_end=732
-  _globals['_DISTRIBUTEDPROTOCOL']._serialized_start=734
-  _globals['_DISTRIBUTEDPROTOCOL']._serialized_end=790
-  _globals['_DISTRIBUTEDPROTOCOL_VALUE']._serialized_start=757
-  _globals['_DISTRIBUTEDPROTOCOL_VALUE']._serialized_end=790
-  _globals['_TRAININGJOBRESOURCECONFIG']._serialized_start=793
-  _globals['_TRAININGJOBRESOURCECONFIG']._serialized_end=1045
-  _globals['_TRAININGJOB']._serialized_start=1048
-  _globals['_TRAININGJOB']._serialized_end=1290
-# @@protoc_insertion_point(module_scope)
diff --git a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/training_job_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/training_job_pb2.pyi
deleted file mode 100644
index 38a4bf3ad5..0000000000
--- a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/training_job_pb2.pyi
+++ /dev/null
@@ -1,88 +0,0 @@
-from google.protobuf import duration_pb2 as _duration_pb2
-from google.protobuf.internal import containers as _containers
-from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
-
-DESCRIPTOR: _descriptor.FileDescriptor
-
-class InputMode(_message.Message):
-    __slots__ = []
-    class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
-        __slots__ = []
-        FILE: _ClassVar[InputMode.Value]
-        PIPE: _ClassVar[InputMode.Value]
-    FILE: InputMode.Value
-    PIPE: InputMode.Value
-    def __init__(self) -> None: ...
-
-class AlgorithmName(_message.Message):
-    __slots__ = []
-    class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
-        __slots__ = []
-        CUSTOM: _ClassVar[AlgorithmName.Value]
-        XGBOOST: _ClassVar[AlgorithmName.Value]
-    CUSTOM: AlgorithmName.Value
-    XGBOOST: AlgorithmName.Value
-    def __init__(self) -> None: ...
-
-class InputContentType(_message.Message):
-    __slots__ = []
-    class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
-        __slots__ = []
-        TEXT_CSV: _ClassVar[InputContentType.Value]
-    TEXT_CSV: InputContentType.Value
-    def __init__(self) -> None: ...
-
-class MetricDefinition(_message.Message):
-    __slots__ = ["name", "regex"]
-    NAME_FIELD_NUMBER: _ClassVar[int]
-    REGEX_FIELD_NUMBER: _ClassVar[int]
-    name: str
-    regex: str
-    def __init__(self, name: _Optional[str] = ..., regex: _Optional[str] = ...) -> None: ...
-
-class AlgorithmSpecification(_message.Message):
-    __slots__ = ["input_mode", "algorithm_name", "algorithm_version", "metric_definitions", "input_content_type"]
-    INPUT_MODE_FIELD_NUMBER: _ClassVar[int]
-    ALGORITHM_NAME_FIELD_NUMBER: _ClassVar[int]
-    ALGORITHM_VERSION_FIELD_NUMBER: _ClassVar[int]
-    METRIC_DEFINITIONS_FIELD_NUMBER: _ClassVar[int]
-    INPUT_CONTENT_TYPE_FIELD_NUMBER: _ClassVar[int]
-    input_mode: InputMode.Value
-    algorithm_name: AlgorithmName.Value
-    algorithm_version: str
-    metric_definitions: _containers.RepeatedCompositeFieldContainer[MetricDefinition]
-    input_content_type: InputContentType.Value
-    def __init__(self, input_mode: _Optional[_Union[InputMode.Value, str]] = ..., algorithm_name: _Optional[_Union[AlgorithmName.Value, str]] = ..., algorithm_version: _Optional[str] = ..., metric_definitions: _Optional[_Iterable[_Union[MetricDefinition, _Mapping]]] = ..., input_content_type: _Optional[_Union[InputContentType.Value, str]] = ...) -> None: ...
-
-class DistributedProtocol(_message.Message):
-    __slots__ = []
-    class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
-        __slots__ = []
-        UNSPECIFIED: _ClassVar[DistributedProtocol.Value]
-        MPI: _ClassVar[DistributedProtocol.Value]
-    UNSPECIFIED: DistributedProtocol.Value
-    MPI: DistributedProtocol.Value
-    def __init__(self) -> None: ...
-
-class TrainingJobResourceConfig(_message.Message):
-    __slots__ = ["instance_count", "instance_type", "volume_size_in_gb", "distributed_protocol"]
-    INSTANCE_COUNT_FIELD_NUMBER: _ClassVar[int]
-    INSTANCE_TYPE_FIELD_NUMBER: _ClassVar[int]
-    VOLUME_SIZE_IN_GB_FIELD_NUMBER: _ClassVar[int]
-    DISTRIBUTED_PROTOCOL_FIELD_NUMBER: _ClassVar[int]
-    instance_count: int
-    instance_type: str
-    volume_size_in_gb: int
-    distributed_protocol: DistributedProtocol.Value
-    def __init__(self, instance_count: _Optional[int] = ..., instance_type: _Optional[str] = ..., volume_size_in_gb: _Optional[int] = ..., distributed_protocol: _Optional[_Union[DistributedProtocol.Value, str]] = ...) -> None: ...
-
-class TrainingJob(_message.Message):
-    __slots__ = ["algorithm_specification", "training_job_resource_config"]
-    ALGORITHM_SPECIFICATION_FIELD_NUMBER: _ClassVar[int]
-    TRAINING_JOB_RESOURCE_CONFIG_FIELD_NUMBER: _ClassVar[int]
-    algorithm_specification: AlgorithmSpecification
-    training_job_resource_config: TrainingJobResourceConfig
-    def __init__(self, algorithm_specification: _Optional[_Union[AlgorithmSpecification, _Mapping]] = ..., training_job_resource_config: _Optional[_Union[TrainingJobResourceConfig, _Mapping]] = ...) -> None: ...
diff --git a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/training_job_pb2_grpc.py b/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/training_job_pb2_grpc.py
deleted file mode 100644
index 2daafffebf..0000000000
--- a/flyteidl/gen/pb_python/flyteidl/plugins/sagemaker/training_job_pb2_grpc.py
+++ /dev/null
@@ -1,4 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
diff --git a/flyteidl/gen/pb_rust/flyteidl.plugins.sagemaker.rs b/flyteidl/gen/pb_rust/flyteidl.plugins.sagemaker.rs
deleted file mode 100644
index 1b89dd28f2..0000000000
--- a/flyteidl/gen/pb_rust/flyteidl.plugins.sagemaker.rs
+++ /dev/null
@@ -1,493 +0,0 @@
-// @generated
-/// HyperparameterScalingType defines the way to increase or decrease the value of the hyperparameter
-/// For details, refer to: <https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html>
-/// See examples of these scaling type, refer to: <https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-automatic-model-tuning-now-supports-random-search-and-hyperparameter-scaling/>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct HyperparameterScalingType {
-}
-/// Nested message and enum types in `HyperparameterScalingType`.
-pub mod hyperparameter_scaling_type {
-    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-    #[repr(i32)]
-    pub enum Value {
-        Auto = 0,
-        Linear = 1,
-        Logarithmic = 2,
-        Reverselogarithmic = 3,
-    }
-    impl Value {
-        /// String value of the enum field names used in the ProtoBuf definition.
-        ///
-        /// The values are not transformed in any way and thus are considered stable
-        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
-        pub fn as_str_name(&self) -> &'static str {
-            match self {
-                Value::Auto => "AUTO",
-                Value::Linear => "LINEAR",
-                Value::Logarithmic => "LOGARITHMIC",
-                Value::Reverselogarithmic => "REVERSELOGARITHMIC",
-            }
-        }
-        /// Creates an enum from field names used in the ProtoBuf definition.
-        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
-            match value {
-                "AUTO" => Some(Self::Auto),
-                "LINEAR" => Some(Self::Linear),
-                "LOGARITHMIC" => Some(Self::Logarithmic),
-                "REVERSELOGARITHMIC" => Some(Self::Reverselogarithmic),
-                _ => None,
-            }
-        }
-    }
-}
-/// ContinuousParameterRange refers to a continuous range of hyperparameter values, allowing
-/// users to specify the search space of a floating-point hyperparameter
-/// <https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct ContinuousParameterRange {
-    #[prost(double, tag="1")]
-    pub max_value: f64,
-    #[prost(double, tag="2")]
-    pub min_value: f64,
-    #[prost(enumeration="hyperparameter_scaling_type::Value", tag="3")]
-    pub scaling_type: i32,
-}
-/// IntegerParameterRange refers to a discrete range of hyperparameter values, allowing
-/// users to specify the search space of an integer hyperparameter
-/// <https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct IntegerParameterRange {
-    #[prost(int64, tag="1")]
-    pub max_value: i64,
-    #[prost(int64, tag="2")]
-    pub min_value: i64,
-    #[prost(enumeration="hyperparameter_scaling_type::Value", tag="3")]
-    pub scaling_type: i32,
-}
-/// ContinuousParameterRange refers to a continuous range of hyperparameter values, allowing
-/// users to specify the search space of a floating-point hyperparameter
-/// <https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct CategoricalParameterRange {
-    #[prost(string, repeated, tag="1")]
-    pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
-}
-/// ParameterRangeOneOf describes a single ParameterRange, which is a one-of structure that can be one of
-/// the three possible types: ContinuousParameterRange, IntegerParameterRange, and CategoricalParameterRange.
-/// This one-of structure in Flyte enables specifying a Parameter in a type-safe manner
-/// See: <https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct ParameterRangeOneOf {
-    #[prost(oneof="parameter_range_one_of::ParameterRangeType", tags="1, 2, 3")]
-    pub parameter_range_type: ::core::option::Option<parameter_range_one_of::ParameterRangeType>,
-}
-/// Nested message and enum types in `ParameterRangeOneOf`.
-pub mod parameter_range_one_of {
-    #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
-    pub enum ParameterRangeType {
-        #[prost(message, tag="1")]
-        ContinuousParameterRange(super::ContinuousParameterRange),
-        #[prost(message, tag="2")]
-        IntegerParameterRange(super::IntegerParameterRange),
-        #[prost(message, tag="3")]
-        CategoricalParameterRange(super::CategoricalParameterRange),
-    }
-}
-/// ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-/// <https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct ParameterRanges {
-    #[prost(map="string, message", tag="1")]
-    pub parameter_range_map: ::std::collections::HashMap<::prost::alloc::string::String, ParameterRangeOneOf>,
-}
-/// The input mode that the algorithm supports. When using the File input mode, SageMaker downloads
-/// the training data from S3 to the provisioned ML storage Volume, and mounts the directory to docker
-/// volume for training container. When using Pipe input mode, Amazon SageMaker streams data directly
-/// from S3 to the container.
-/// See: <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html>
-/// For the input modes that different SageMaker algorithms support, see:
-/// <https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct InputMode {
-}
-/// Nested message and enum types in `InputMode`.
-pub mod input_mode {
-    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-    #[repr(i32)]
-    pub enum Value {
-        File = 0,
-        Pipe = 1,
-    }
-    impl Value {
-        /// String value of the enum field names used in the ProtoBuf definition.
-        ///
-        /// The values are not transformed in any way and thus are considered stable
-        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
-        pub fn as_str_name(&self) -> &'static str {
-            match self {
-                Value::File => "FILE",
-                Value::Pipe => "PIPE",
-            }
-        }
-        /// Creates an enum from field names used in the ProtoBuf definition.
-        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
-            match value {
-                "FILE" => Some(Self::File),
-                "PIPE" => Some(Self::Pipe),
-                _ => None,
-            }
-        }
-    }
-}
-/// The algorithm name is used for deciding which pre-built image to point to.
-/// This is only required for use cases where SageMaker's built-in algorithm mode is used.
-/// While we currently only support a subset of the algorithms, more will be added to the list.
-/// See: <https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct AlgorithmName {
-}
-/// Nested message and enum types in `AlgorithmName`.
-pub mod algorithm_name {
-    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-    #[repr(i32)]
-    pub enum Value {
-        Custom = 0,
-        Xgboost = 1,
-    }
-    impl Value {
-        /// String value of the enum field names used in the ProtoBuf definition.
-        ///
-        /// The values are not transformed in any way and thus are considered stable
-        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
-        pub fn as_str_name(&self) -> &'static str {
-            match self {
-                Value::Custom => "CUSTOM",
-                Value::Xgboost => "XGBOOST",
-            }
-        }
-        /// Creates an enum from field names used in the ProtoBuf definition.
-        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
-            match value {
-                "CUSTOM" => Some(Self::Custom),
-                "XGBOOST" => Some(Self::Xgboost),
-                _ => None,
-            }
-        }
-    }
-}
-/// Specifies the type of file for input data. Different SageMaker built-in algorithms require different file types of input data
-/// See <https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html>
-/// <https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct InputContentType {
-}
-/// Nested message and enum types in `InputContentType`.
-pub mod input_content_type {
-    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-    #[repr(i32)]
-    pub enum Value {
-        TextCsv = 0,
-    }
-    impl Value {
-        /// String value of the enum field names used in the ProtoBuf definition.
-        ///
-        /// The values are not transformed in any way and thus are considered stable
-        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
-        pub fn as_str_name(&self) -> &'static str {
-            match self {
-                Value::TextCsv => "TEXT_CSV",
-            }
-        }
-        /// Creates an enum from field names used in the ProtoBuf definition.
-        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
-            match value {
-                "TEXT_CSV" => Some(Self::TextCsv),
-                _ => None,
-            }
-        }
-    }
-}
-/// Specifies a metric that the training algorithm writes to stderr or stdout.
-/// This object is a pass-through.
-/// See this for details: <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDefinition.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct MetricDefinition {
-    /// User-defined name of the metric
-    #[prost(string, tag="1")]
-    pub name: ::prost::alloc::string::String,
-    /// SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-    #[prost(string, tag="2")]
-    pub regex: ::prost::alloc::string::String,
-}
-/// Specifies the training algorithm to be used in the training job
-/// This object is mostly a pass-through, with a couple of exceptions include: (1) in Flyte, users don't need to specify
-/// TrainingImage; either use the built-in algorithm mode by using Flytekit's Simple Training Job and specifying an algorithm
-/// name and an algorithm version or (2) when users want to supply custom algorithms they should set algorithm_name field to
-/// CUSTOM. In this case, the value of the algorithm_version field has no effect
-/// For pass-through use cases: refer to this AWS official document for more details
-/// <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct AlgorithmSpecification {
-    /// The input mode can be either PIPE or FILE
-    #[prost(enumeration="input_mode::Value", tag="1")]
-    pub input_mode: i32,
-    /// The algorithm name is used for deciding which pre-built image to point to
-    #[prost(enumeration="algorithm_name::Value", tag="2")]
-    pub algorithm_name: i32,
-    /// The algorithm version field is used for deciding which pre-built image to point to
-    /// This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-    #[prost(string, tag="3")]
-    pub algorithm_version: ::prost::alloc::string::String,
-    /// A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-    /// See this: <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html>
-    /// and this: <https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html>
-    #[prost(message, repeated, tag="4")]
-    pub metric_definitions: ::prost::alloc::vec::Vec<MetricDefinition>,
-    /// The content type of the input
-    /// See <https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html>
-    /// <https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html>
-    #[prost(enumeration="input_content_type::Value", tag="5")]
-    pub input_content_type: i32,
-}
-/// When enabling distributed training on a training job, the user should use this message to tell Flyte and SageMaker
-/// what kind of distributed protocol he/she wants to use to distribute the work.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct DistributedProtocol {
-}
-/// Nested message and enum types in `DistributedProtocol`.
-pub mod distributed_protocol {
-    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-    #[repr(i32)]
-    pub enum Value {
-        /// Use this value if the user wishes to use framework-native distributed training interfaces.
-        /// If this value is used, Flyte won't configure SageMaker to initialize unnecessary components such as
-        /// OpenMPI or Parameter Server.
-        Unspecified = 0,
-        /// Use this value if the user wishes to use MPI as the underlying protocol for her distributed training job
-        /// MPI is a framework-agnostic distributed protocol. It has multiple implementations. Currently, we have only
-        /// tested the OpenMPI implementation, which is the recommended implementation for Horovod.
-        Mpi = 1,
-    }
-    impl Value {
-        /// String value of the enum field names used in the ProtoBuf definition.
-        ///
-        /// The values are not transformed in any way and thus are considered stable
-        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
-        pub fn as_str_name(&self) -> &'static str {
-            match self {
-                Value::Unspecified => "UNSPECIFIED",
-                Value::Mpi => "MPI",
-            }
-        }
-        /// Creates an enum from field names used in the ProtoBuf definition.
-        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
-            match value {
-                "UNSPECIFIED" => Some(Self::Unspecified),
-                "MPI" => Some(Self::Mpi),
-                _ => None,
-            }
-        }
-    }
-}
-/// TrainingJobResourceConfig is a pass-through, specifying the instance type to use for the training job, the
-/// number of instances to launch, and the size of the ML storage volume the user wants to provision
-/// Refer to SageMaker official doc for more details: <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct TrainingJobResourceConfig {
-    /// The number of ML compute instances to use. For distributed training, provide a value greater than 1.
-    #[prost(int64, tag="1")]
-    pub instance_count: i64,
-    /// The ML compute instance type
-    #[prost(string, tag="2")]
-    pub instance_type: ::prost::alloc::string::String,
-    /// The size of the ML storage volume that you want to provision.
-    #[prost(int64, tag="3")]
-    pub volume_size_in_gb: i64,
-    /// When users specify an instance_count > 1, Flyte will try to configure SageMaker to enable distributed training.
-    /// If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-    /// field should be set to the corresponding enum value
-    #[prost(enumeration="distributed_protocol::Value", tag="4")]
-    pub distributed_protocol: i32,
-}
-/// The spec of a training job. This is mostly a pass-through object
-/// <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct TrainingJob {
-    #[prost(message, optional, tag="1")]
-    pub algorithm_specification: ::core::option::Option<AlgorithmSpecification>,
-    #[prost(message, optional, tag="2")]
-    pub training_job_resource_config: ::core::option::Option<TrainingJobResourceConfig>,
-}
-/// A pass-through for SageMaker's hyperparameter tuning job
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct HyperparameterTuningJob {
-    /// The underlying training job that the hyperparameter tuning job will launch during the process
-    #[prost(message, optional, tag="1")]
-    pub training_job: ::core::option::Option<TrainingJob>,
-    /// The maximum number of training jobs that an hpo job can launch. For resource limit purpose.
-    /// <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html>
-    #[prost(int64, tag="2")]
-    pub max_number_of_training_jobs: i64,
-    /// The maximum number of concurrent training job that an hpo job can launch
-    /// <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html>
-    #[prost(int64, tag="3")]
-    pub max_parallel_training_jobs: i64,
-}
-/// HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-/// with respect to the specified metric.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct HyperparameterTuningObjectiveType {
-}
-/// Nested message and enum types in `HyperparameterTuningObjectiveType`.
-pub mod hyperparameter_tuning_objective_type {
-    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-    #[repr(i32)]
-    pub enum Value {
-        Minimize = 0,
-        Maximize = 1,
-    }
-    impl Value {
-        /// String value of the enum field names used in the ProtoBuf definition.
-        ///
-        /// The values are not transformed in any way and thus are considered stable
-        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
-        pub fn as_str_name(&self) -> &'static str {
-            match self {
-                Value::Minimize => "MINIMIZE",
-                Value::Maximize => "MAXIMIZE",
-            }
-        }
-        /// Creates an enum from field names used in the ProtoBuf definition.
-        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
-            match value {
-                "MINIMIZE" => Some(Self::Minimize),
-                "MAXIMIZE" => Some(Self::Maximize),
-                _ => None,
-            }
-        }
-    }
-}
-/// The target metric and the objective of the hyperparameter tuning.
-/// <https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct HyperparameterTuningObjective {
-    /// HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-    /// with respect to the specified metric.
-    #[prost(enumeration="hyperparameter_tuning_objective_type::Value", tag="1")]
-    pub objective_type: i32,
-    /// The target metric name, which is the user-defined name of the metric specified in the
-    /// training job's algorithm specification
-    #[prost(string, tag="2")]
-    pub metric_name: ::prost::alloc::string::String,
-}
-/// Setting the strategy used when searching in the hyperparameter space
-/// Refer this doc for more details:
-/// <https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-automatic-model-tuning-now-supports-random-search-and-hyperparameter-scaling/>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct HyperparameterTuningStrategy {
-}
-/// Nested message and enum types in `HyperparameterTuningStrategy`.
-pub mod hyperparameter_tuning_strategy {
-    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-    #[repr(i32)]
-    pub enum Value {
-        Bayesian = 0,
-        Random = 1,
-    }
-    impl Value {
-        /// String value of the enum field names used in the ProtoBuf definition.
-        ///
-        /// The values are not transformed in any way and thus are considered stable
-        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
-        pub fn as_str_name(&self) -> &'static str {
-            match self {
-                Value::Bayesian => "BAYESIAN",
-                Value::Random => "RANDOM",
-            }
-        }
-        /// Creates an enum from field names used in the ProtoBuf definition.
-        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
-            match value {
-                "BAYESIAN" => Some(Self::Bayesian),
-                "RANDOM" => Some(Self::Random),
-                _ => None,
-            }
-        }
-    }
-}
-/// When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-/// a hyperparameter tuning job can be stopping early.
-/// Note that there's only a subset of built-in algorithms that supports early stopping.
-/// see: <https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct TrainingJobEarlyStoppingType {
-}
-/// Nested message and enum types in `TrainingJobEarlyStoppingType`.
-pub mod training_job_early_stopping_type {
-    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-    #[repr(i32)]
-    pub enum Value {
-        Off = 0,
-        Auto = 1,
-    }
-    impl Value {
-        /// String value of the enum field names used in the ProtoBuf definition.
-        ///
-        /// The values are not transformed in any way and thus are considered stable
-        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
-        pub fn as_str_name(&self) -> &'static str {
-            match self {
-                Value::Off => "OFF",
-                Value::Auto => "AUTO",
-            }
-        }
-        /// Creates an enum from field names used in the ProtoBuf definition.
-        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
-            match value {
-                "OFF" => Some(Self::Off),
-                "AUTO" => Some(Self::Auto),
-                _ => None,
-            }
-        }
-    }
-}
-/// The specification of the hyperparameter tuning process
-/// <https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-ex-tuning-job.html#automatic-model-tuning-ex-low-tuning-config>
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct HyperparameterTuningJobConfig {
-    /// ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-    #[prost(message, optional, tag="1")]
-    pub hyperparameter_ranges: ::core::option::Option<ParameterRanges>,
-    /// Setting the strategy used when searching in the hyperparameter space
-    #[prost(enumeration="hyperparameter_tuning_strategy::Value", tag="2")]
-    pub tuning_strategy: i32,
-    /// The target metric and the objective of the hyperparameter tuning.
-    #[prost(message, optional, tag="3")]
-    pub tuning_objective: ::core::option::Option<HyperparameterTuningObjective>,
-    /// When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-    /// a hyperparameter tuning job can be stopping early.
-    #[prost(enumeration="training_job_early_stopping_type::Value", tag="4")]
-    pub training_job_early_stopping_type: i32,
-}
-// @@protoc_insertion_point(module)
diff --git a/flyteidl/protos/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto b/flyteidl/protos/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto
deleted file mode 100644
index 1643b9a2dc..0000000000
--- a/flyteidl/protos/flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto
+++ /dev/null
@@ -1,83 +0,0 @@
-syntax = "proto3";
-
-package flyteidl.plugins.sagemaker;
-
-option go_package = "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins";
-
-import "flyteidl/plugins/sagemaker/parameter_ranges.proto";
-import "flyteidl/plugins/sagemaker/training_job.proto";
-
-// A pass-through for SageMaker's hyperparameter tuning job
-message HyperparameterTuningJob {
-    // The underlying training job that the hyperparameter tuning job will launch during the process
-    TrainingJob training_job = 1;
-
-    // The maximum number of training jobs that an hpo job can launch. For resource limit purpose.
-    // https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-    int64 max_number_of_training_jobs = 2;
-
-    // The maximum number of concurrent training job that an hpo job can launch
-    // https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
-    int64 max_parallel_training_jobs = 3;
-}
-
-// HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-// with respect to the specified metric.
-message HyperparameterTuningObjectiveType {
-    enum Value {
-        MINIMIZE = 0;
-        MAXIMIZE = 1;
-    }
-}
-
-// The target metric and the objective of the hyperparameter tuning.
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-message HyperparameterTuningObjective {
-
-    // HyperparameterTuningObjectiveType determines the direction of the tuning of the Hyperparameter Tuning Job
-    // with respect to the specified metric.
-    HyperparameterTuningObjectiveType.Value objective_type = 1;
-
-    // The target metric name, which is the user-defined name of the metric specified in the
-    // training job's algorithm specification
-    string metric_name = 2;
-}
-
-
-// Setting the strategy used when searching in the hyperparameter space
-// Refer this doc for more details:
-// https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-automatic-model-tuning-now-supports-random-search-and-hyperparameter-scaling/
-message HyperparameterTuningStrategy {
-    enum Value {
-        BAYESIAN = 0;
-        RANDOM = 1;
-    }
-}
-
-// When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-// a hyperparameter tuning job can be stopping early.
-// Note that there's only a subset of built-in algorithms that supports early stopping.
-// see: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html
-message TrainingJobEarlyStoppingType {
-    enum Value {
-        OFF = 0;
-        AUTO = 1;
-    }
-}
-
-// The specification of the hyperparameter tuning process
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-ex-tuning-job.html#automatic-model-tuning-ex-low-tuning-config
-message HyperparameterTuningJobConfig {
-    // ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-    ParameterRanges hyperparameter_ranges = 1;
-
-    // Setting the strategy used when searching in the hyperparameter space
-    HyperparameterTuningStrategy.Value tuning_strategy = 2;
-
-    // The target metric and the objective of the hyperparameter tuning.
-    HyperparameterTuningObjective tuning_objective = 3;
-
-    // When the training jobs launched by the hyperparameter tuning job are not improving significantly,
-    // a hyperparameter tuning job can be stopping early.
-    TrainingJobEarlyStoppingType.Value training_job_early_stopping_type = 4;
-}
diff --git a/flyteidl/protos/flyteidl/plugins/sagemaker/parameter_ranges.proto b/flyteidl/protos/flyteidl/plugins/sagemaker/parameter_ranges.proto
deleted file mode 100644
index b237e6deb8..0000000000
--- a/flyteidl/protos/flyteidl/plugins/sagemaker/parameter_ranges.proto
+++ /dev/null
@@ -1,61 +0,0 @@
-syntax = "proto3";
-
-package flyteidl.plugins.sagemaker;
-
-option go_package = "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins";
-
-// HyperparameterScalingType defines the way to increase or decrease the value of the hyperparameter
-// For details, refer to: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-// See examples of these scaling type, refer to: https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-automatic-model-tuning-now-supports-random-search-and-hyperparameter-scaling/
-message HyperparameterScalingType {
-    enum Value {
-        AUTO = 0;
-        LINEAR = 1;
-        LOGARITHMIC = 2;
-        REVERSELOGARITHMIC = 3;
-    }
-}
-
-// ContinuousParameterRange refers to a continuous range of hyperparameter values, allowing
-// users to specify the search space of a floating-point hyperparameter
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-message ContinuousParameterRange {
-    double max_value = 1;
-    double min_value = 2;
-    HyperparameterScalingType.Value scaling_type = 3;
-}
-
-// IntegerParameterRange refers to a discrete range of hyperparameter values, allowing
-// users to specify the search space of an integer hyperparameter
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-message IntegerParameterRange {
-    int64 max_value = 1;
-    int64 min_value = 2;
-    HyperparameterScalingType.Value scaling_type = 3;
-}
-
-// ContinuousParameterRange refers to a continuous range of hyperparameter values, allowing
-// users to specify the search space of a floating-point hyperparameter
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-message CategoricalParameterRange {
-    repeated string values = 1;
-}
-
-
-// ParameterRangeOneOf describes a single ParameterRange, which is a one-of structure that can be one of
-// the three possible types: ContinuousParameterRange, IntegerParameterRange, and CategoricalParameterRange.
-// This one-of structure in Flyte enables specifying a Parameter in a type-safe manner
-// See: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-message ParameterRangeOneOf {
-    oneof parameter_range_type {
-        ContinuousParameterRange continuous_parameter_range = 1;
-        IntegerParameterRange integer_parameter_range = 2;
-        CategoricalParameterRange categorical_parameter_range = 3;
-    }
-}
-
-// ParameterRanges is a map that maps hyperparameter name to the corresponding hyperparameter range
-// https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html
-message ParameterRanges {
-    map<string, ParameterRangeOneOf> parameter_range_map = 1;
-}
diff --git a/flyteidl/protos/flyteidl/plugins/sagemaker/training_job.proto b/flyteidl/protos/flyteidl/plugins/sagemaker/training_job.proto
deleted file mode 100644
index dedbaf24fb..0000000000
--- a/flyteidl/protos/flyteidl/plugins/sagemaker/training_job.proto
+++ /dev/null
@@ -1,119 +0,0 @@
-syntax = "proto3";
-
-package flyteidl.plugins.sagemaker;
-
-import "google/protobuf/duration.proto";
-
-option go_package = "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins";
-
-// The input mode that the algorithm supports. When using the File input mode, SageMaker downloads
-// the training data from S3 to the provisioned ML storage Volume, and mounts the directory to docker
-// volume for training container. When using Pipe input mode, Amazon SageMaker streams data directly
-// from S3 to the container.
-// See: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-// For the input modes that different SageMaker algorithms support, see:
-// https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-message InputMode {
-    enum Value {
-        FILE = 0;
-        PIPE = 1;
-    }
-}
-
-// The algorithm name is used for deciding which pre-built image to point to.
-// This is only required for use cases where SageMaker's built-in algorithm mode is used.
-// While we currently only support a subset of the algorithms, more will be added to the list.
-// See: https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
-message AlgorithmName {
-    enum Value {
-        CUSTOM = 0;
-        XGBOOST = 1;
-    }
-}
-
-
-// Specifies the type of file for input data. Different SageMaker built-in algorithms require different file types of input data
-// See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-// https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-message InputContentType {
-    enum Value {
-        TEXT_CSV = 0;
-    }
-}
-
-// Specifies a metric that the training algorithm writes to stderr or stdout.
-// This object is a pass-through.
-// See this for details: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDefinition.html
-message MetricDefinition {
-    // User-defined name of the metric
-    string name = 1;
-    // SageMaker hyperparameter tuning parses your algorithm’s stdout and stderr streams to find algorithm metrics
-    string regex = 2;
-}
-
-
-// Specifies the training algorithm to be used in the training job
-// This object is mostly a pass-through, with a couple of exceptions include: (1) in Flyte, users don't need to specify
-// TrainingImage; either use the built-in algorithm mode by using Flytekit's Simple Training Job and specifying an algorithm
-// name and an algorithm version or (2) when users want to supply custom algorithms they should set algorithm_name field to
-// CUSTOM. In this case, the value of the algorithm_version field has no effect
-// For pass-through use cases: refer to this AWS official document for more details
-// https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-message AlgorithmSpecification {
-    // The input mode can be either PIPE or FILE
-    InputMode.Value input_mode = 1;
-
-    // The algorithm name is used for deciding which pre-built image to point to
-    AlgorithmName.Value algorithm_name = 2;
-    // The algorithm version field is used for deciding which pre-built image to point to
-    // This is only needed for use cases where SageMaker's built-in algorithm mode is chosen
-    string algorithm_version = 3;
-
-    // A list of metric definitions for SageMaker to evaluate/track on the progress of the training job
-    // See this: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
-    // and this: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html
-    repeated MetricDefinition metric_definitions = 4;
-
-    // The content type of the input
-    // See https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html
-    // https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-    InputContentType.Value input_content_type = 5;
-}
-
-// When enabling distributed training on a training job, the user should use this message to tell Flyte and SageMaker
-// what kind of distributed protocol he/she wants to use to distribute the work.
-message DistributedProtocol {
-    enum Value {
-        // Use this value if the user wishes to use framework-native distributed training interfaces.
-        // If this value is used, Flyte won't configure SageMaker to initialize unnecessary components such as
-        // OpenMPI or Parameter Server.
-        UNSPECIFIED = 0;
-        // Use this value if the user wishes to use MPI as the underlying protocol for her distributed training job
-        // MPI is a framework-agnostic distributed protocol. It has multiple implementations. Currently, we have only
-        // tested the OpenMPI implementation, which is the recommended implementation for Horovod.
-        MPI = 1;
-    }
-}
-
-// TrainingJobResourceConfig is a pass-through, specifying the instance type to use for the training job, the
-// number of instances to launch, and the size of the ML storage volume the user wants to provision
-// Refer to SageMaker official doc for more details: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
-message TrainingJobResourceConfig {
-    // The number of ML compute instances to use. For distributed training, provide a value greater than 1.
-    int64 instance_count = 1;
-    // The ML compute instance type
-    string instance_type = 2;
-    // The size of the ML storage volume that you want to provision.
-    int64 volume_size_in_gb = 3;
-    // When users specify an instance_count > 1, Flyte will try to configure SageMaker to enable distributed training.
-    // If the users wish to use framework-agnostic distributed protocol such as MPI or Parameter Server, this
-    // field should be set to the corresponding enum value
-    DistributedProtocol.Value distributed_protocol = 4;
-}
-
-// The spec of a training job. This is mostly a pass-through object
-// https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
-message TrainingJob {
-    AlgorithmSpecification algorithm_specification = 1;
-    TrainingJobResourceConfig training_job_resource_config = 2;
-}
diff --git a/flyteplugins/go.mod b/flyteplugins/go.mod
index 72af6857e1..4a660cffbd 100644
--- a/flyteplugins/go.mod
+++ b/flyteplugins/go.mod
@@ -4,8 +4,6 @@ go 1.19
 
 require (
 	github.com/GoogleCloudPlatform/spark-on-k8s-operator v0.0.0-20200723154620-6f35a1152625
-	github.com/Masterminds/semver v1.5.0
-	github.com/aws/amazon-sagemaker-operator-for-k8s v1.0.1-0.20210303003444-0fb33b1fd49d
 	github.com/aws/aws-sdk-go v1.44.2
 	github.com/aws/aws-sdk-go-v2 v1.2.0
 	github.com/aws/aws-sdk-go-v2/config v1.0.0
@@ -23,20 +21,20 @@ require (
 	github.com/magiconair/properties v1.8.6
 	github.com/mitchellh/mapstructure v1.5.0
 	github.com/pkg/errors v0.9.1
-	github.com/prometheus/client_golang v1.12.1
+	github.com/prometheus/client_golang v1.16.0
 	github.com/ray-project/kuberay/ray-operator v0.0.0-20220728052838-eaa75fa6707c
 	github.com/spf13/pflag v1.0.5
 	github.com/stretchr/testify v1.8.4
-	golang.org/x/net v0.9.0
-	golang.org/x/oauth2 v0.7.0
+	golang.org/x/net v0.13.0
+	golang.org/x/oauth2 v0.8.0
 	google.golang.org/api v0.114.0
 	google.golang.org/grpc v1.56.1
 	google.golang.org/protobuf v1.30.0
 	gotest.tools v2.2.0+incompatible
-	k8s.io/api v0.24.1
-	k8s.io/apimachinery v0.24.1
-	k8s.io/client-go v0.24.1
-	k8s.io/utils v0.0.0-20230209194617-a36077c30491
+	k8s.io/api v0.28.2
+	k8s.io/apimachinery v0.28.2
+	k8s.io/client-go v0.28.1
+	k8s.io/utils v0.0.0-20230406110748-d93618cff8a2
 	sigs.k8s.io/controller-runtime v0.12.1
 )
 
@@ -56,7 +54,6 @@ require (
 	github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
 	github.com/Azure/go-autorest/logger v0.2.1 // indirect
 	github.com/Azure/go-autorest/tracing v0.6.0 // indirect
-	github.com/adammck/venv v0.0.0-20200610172036-e77789703e7c // indirect
 	github.com/aws/aws-sdk-go-v2/credentials v1.0.0 // indirect
 	github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.0 // indirect
 	github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.0 // indirect
@@ -68,20 +65,21 @@ require (
 	github.com/cespare/xxhash/v2 v2.2.0 // indirect
 	github.com/davecgh/go-spew v1.1.1 // indirect
 	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
-	github.com/evanphx/json-patch v4.12.0+incompatible // indirect
+	github.com/evanphx/json-patch v5.6.0+incompatible // indirect
+	github.com/evanphx/json-patch/v5 v5.6.0 // indirect
 	github.com/fatih/color v1.13.0 // indirect
 	github.com/flyteorg/stow v0.3.7 // indirect
-	github.com/fsnotify/fsnotify v1.5.1 // indirect
+	github.com/fsnotify/fsnotify v1.6.0 // indirect
 	github.com/ghodss/yaml v1.0.0 // indirect
-	github.com/go-logr/logr v1.2.3 // indirect
+	github.com/go-logr/logr v1.2.4 // indirect
 	github.com/go-openapi/jsonpointer v0.19.6 // indirect
-	github.com/go-openapi/jsonreference v0.20.1 // indirect
+	github.com/go-openapi/jsonreference v0.20.2 // indirect
 	github.com/go-openapi/swag v0.22.3 // indirect
 	github.com/gofrs/uuid v4.2.0+incompatible // indirect
 	github.com/gogo/protobuf v1.3.2 // indirect
 	github.com/golang-jwt/jwt/v4 v4.4.1 // indirect
 	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
-	github.com/google/gnostic v0.5.7-v3refs // indirect
+	github.com/google/gnostic-models v0.6.8 // indirect
 	github.com/google/go-cmp v0.5.9 // indirect
 	github.com/google/gofuzz v1.2.0 // indirect
 	github.com/google/uuid v1.3.0 // indirect
@@ -89,14 +87,14 @@ require (
 	github.com/googleapis/gax-go/v2 v2.7.1 // indirect
 	github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
 	github.com/hashicorp/hcl v1.0.0 // indirect
-	github.com/inconshreveable/mousetrap v1.0.0 // indirect
+	github.com/inconshreveable/mousetrap v1.1.0 // indirect
 	github.com/jmespath/go-jmespath v0.4.0 // indirect
 	github.com/josharian/intern v1.0.0 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
 	github.com/mailru/easyjson v0.7.7 // indirect
 	github.com/mattn/go-colorable v0.1.12 // indirect
 	github.com/mattn/go-isatty v0.0.14 // indirect
-	github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
+	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
 	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
@@ -104,43 +102,53 @@ require (
 	github.com/pelletier/go-toml v1.9.4 // indirect
 	github.com/pelletier/go-toml/v2 v2.0.0-beta.8 // indirect
 	github.com/pmezard/go-difflib v1.0.0 // indirect
-	github.com/prometheus/client_model v0.2.0 // indirect
-	github.com/prometheus/common v0.32.1 // indirect
-	github.com/prometheus/procfs v0.7.3 // indirect
+	github.com/prometheus/client_model v0.4.0 // indirect
+	github.com/prometheus/common v0.44.0 // indirect
+	github.com/prometheus/procfs v0.10.1 // indirect
 	github.com/sirupsen/logrus v1.8.1 // indirect
 	github.com/spf13/afero v1.9.2 // indirect
 	github.com/spf13/cast v1.4.1 // indirect
-	github.com/spf13/cobra v1.4.0 // indirect
+	github.com/spf13/cobra v1.7.0 // indirect
 	github.com/spf13/jwalterweatherman v1.1.0 // indirect
 	github.com/spf13/viper v1.11.0 // indirect
 	github.com/stretchr/objx v0.5.0 // indirect
 	github.com/subosito/gotenv v1.2.0 // indirect
 	go.opencensus.io v0.24.0 // indirect
-	golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e // indirect
-	golang.org/x/sys v0.7.0 // indirect
-	golang.org/x/term v0.7.0 // indirect
-	golang.org/x/text v0.9.0 // indirect
-	golang.org/x/time v0.1.0 // indirect
+	golang.org/x/crypto v0.11.0 // indirect
+	golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
+	golang.org/x/sys v0.11.0 // indirect
+	golang.org/x/term v0.10.0 // indirect
+	golang.org/x/text v0.11.0 // indirect
+	golang.org/x/time v0.3.0 // indirect
 	golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
 	google.golang.org/appengine v1.6.7 // indirect
-	google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
+	google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect
+	google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
 	gopkg.in/ini.v1 v1.66.4 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
-	k8s.io/klog/v2 v2.90.1 // indirect
-	k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
+	k8s.io/klog/v2 v2.100.1 // indirect
+	k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect
 	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
 	sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
 	sigs.k8s.io/yaml v1.3.0 // indirect
 )
 
 replace (
-	github.com/aws/amazon-sagemaker-operator-for-k8s => github.com/aws/amazon-sagemaker-operator-for-k8s v1.0.1-0.20210303003444-0fb33b1fd49d
 	github.com/flyteorg/flyte/datacatalog => ../datacatalog
 	github.com/flyteorg/flyte/flyteadmin => ../flyteadmin
 	github.com/flyteorg/flyte/flyteidl => ../flyteidl
 	github.com/flyteorg/flyte/flyteplugins => ../flyteplugins
 	github.com/flyteorg/flyte/flytepropeller => ../flytepropeller
 	github.com/flyteorg/flyte/flytestdlib => ../flytestdlib
+	github.com/google/gnostic-models => github.com/google/gnostic-models v0.6.8
+	github.com/robfig/cron/v3 => github.com/unionai/cron/v3 v3.0.2-0.20220915080349-5790c370e63a
+	k8s.io/api => k8s.io/api v0.28.2
+	k8s.io/apimachinery => k8s.io/apimachinery v0.28.2
+	k8s.io/client-go => k8s.io/client-go v0.28.2
+	k8s.io/klog/v2 => k8s.io/klog/v2 v2.60.1
+	k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f
+	sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.16.2
 )
diff --git a/flyteplugins/go.sum b/flyteplugins/go.sum
index b47b530091..41639d44a5 100644
--- a/flyteplugins/go.sum
+++ b/flyteplugins/go.sum
@@ -17,9 +17,6 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb
 cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
 cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
 cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
-cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
-cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
-cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
 cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys=
 cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY=
 cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
@@ -59,30 +56,20 @@ github.com/Azure/azure-sdk-for-go/sdk/internal v0.9.2 h1:Px2KVERcYEg2Lv25AqC2hVr
 github.com/Azure/azure-sdk-for-go/sdk/internal v0.9.2/go.mod h1:CdSJQNNzZhCkwDaV27XV1w48ZBPtxe7mlrZAsPNxD5g=
 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0 h1:0nJeKDmB7a1a8RDMjTltahlPsaNlWjq/LpkZleSwINk=
 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0/go.mod h1:mbwxKc/fW+IkF0GG591MuXw0KuEQBDkeRoZ9vmVJPxg=
-github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
 github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
 github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
-github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA=
 github.com/Azure/go-autorest/autorest v0.11.27 h1:F3R3q42aWytozkV8ihzcgMO4OA4cuqr3bNlsEuF6//A=
 github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U=
-github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
-github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M=
 github.com/Azure/go-autorest/autorest/adal v0.9.18 h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ=
 github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ=
-github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
 github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
 github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
-github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
-github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
 github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
 github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw=
 github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU=
 github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
-github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
 github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=
 github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
-github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=
 github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
 github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
 github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 h1:WVsrXCnHlDDX8ls+tootqRE87/hL9S/g4ewig9RsD/c=
@@ -90,35 +77,9 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 github.com/GoogleCloudPlatform/spark-on-k8s-operator v0.0.0-20200723154620-6f35a1152625 h1:cQyO5JQ2iuHnEcF3v24kdDMsgh04RjyFPDtuvD6PCE0=
 github.com/GoogleCloudPlatform/spark-on-k8s-operator v0.0.0-20200723154620-6f35a1152625/go.mod h1:6PnrZv6zUDkrNMw0mIoGRmGBR7i9LulhKPmxFq4rUiM=
-github.com/Jeffail/gabs/v2 v2.5.1/go.mod h1:xCn81vdHKxFUuWWAaD5jCTQDNPBMh5pPs9IJ+NcziBI=
-github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
-github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
-github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
 github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
-github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-github.com/adammck/venv v0.0.0-20160819025605-8a9c907a37d3/go.mod h1:3zXR2a/VSQndtpShh783rUTaEA2mpqN2VqZclBARBc0=
-github.com/adammck/venv v0.0.0-20200610172036-e77789703e7c h1:RoL0r3mR3JSkLur8q8AD59cByJ+kRwJHODNimZBd7GI=
-github.com/adammck/venv v0.0.0-20200610172036-e77789703e7c/go.mod h1:3zXR2a/VSQndtpShh783rUTaEA2mpqN2VqZclBARBc0=
-github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
-github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
 github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
-github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
-github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
-github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
-github.com/aws/amazon-sagemaker-operator-for-k8s v1.0.1-0.20210303003444-0fb33b1fd49d h1:O+ayl/Vp3bDEXReXItmYHzCnsz/LKusXdRNiJKVxjPs=
-github.com/aws/amazon-sagemaker-operator-for-k8s v1.0.1-0.20210303003444-0fb33b1fd49d/go.mod h1:mZUP7GJmjiWtf8v3FD1X/QdK08BqyeH/1Ejt0qhNzCs=
-github.com/aws/aws-sdk-go v1.37.3/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
 github.com/aws/aws-sdk-go v1.44.2 h1:5VBk5r06bgxgRKVaUtm1/4NT/rtrnH2E4cnAYv5zgQc=
 github.com/aws/aws-sdk-go v1.44.2/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
 github.com/aws/aws-sdk-go-v2 v1.0.0/go.mod h1:smfAbmpW+tcRVuNUjo3MOArSZmW72t62rkCzc2i0TWM=
@@ -141,17 +102,11 @@ github.com/aws/smithy-go v1.1.0 h1:D6CSsM3gdxaGaqXnPgOBCeL6Mophqzu7KJOu7zW78sU=
 github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw=
 github.com/benlaurie/objecthash v0.0.0-20180202135721-d1e3d6079fc1 h1:VRtJdDi2lqc3MFwmouppm2jlm6icF+7H3WYKpLENMTo=
 github.com/benlaurie/objecthash v0.0.0-20180202135721-d1e3d6079fc1/go.mod h1:jvdWlw8vowVGnZqSDC7yhPd7AifQeQbRDkZcQXV2nRg=
-github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
-github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
 github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
 github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
-github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
 github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
 github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927 h1:SKI1/fuSdodxmNNyVBR8d7X/HuLnRpvvFO0AgyQk764=
@@ -162,40 +117,17 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
 github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEkaPc=
 github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY=
-github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
-github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
-github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
-github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
-github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
-github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
-github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
-github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
+github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/dask/dask-kubernetes/v2023 v2023.0.0-20230626103304-abd02cd17b26 h1:6RByIva89lKEvwIzNQSUNcu8NG1p1wwwC4mJfVk/kqw=
 github.com/dask/dask-kubernetes/v2023 v2023.0.0-20230626103304-abd02cd17b26/go.mod h1:OqIYr2QnxR3sQK2XahJIyWVcjz38LQ4GNcUzqezFpRg=
 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/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
 github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c=
 github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko=
-github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
-github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
-github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
-github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
-github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
-github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
-github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
 github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -204,108 +136,36 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
 github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc=
-github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
-github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U=
+github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww=
+github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4=
 github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
 github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
 github.com/flyteorg/stow v0.3.7 h1:Cx7j8/Ux6+toD5hp5fy++927V+yAcAttDeQAlUD/864=
 github.com/flyteorg/stow v0.3.7/go.mod h1:5dfBitPM004dwaZdoVylVjxFT4GWAgI0ghAndhNUzCo=
-github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
-github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
-github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
-github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
-github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
-github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=
-github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
+github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
 github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
-github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
-github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
-github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
-github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
-github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
-github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
-github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
-github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
-github.com/go-logr/logr v0.2.1/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
 github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
-github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk=
-github.com/go-logr/zapr v0.2.0/go.mod h1:qhKdvif7YF5GI9NWEpyxTSSBdGmzkNguibrdCNVPunU=
-github.com/go-logr/zapr v1.2.0 h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk=
-github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
-github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
-github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
-github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
-github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
-github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
-github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
-github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
-github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
-github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
-github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
-github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
-github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
+github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
+github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo=
 github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
 github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
-github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
-github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
-github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
-github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
-github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
-github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
-github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=
-github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
-github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
-github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
-github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
-github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
-github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk=
-github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
-github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
-github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
-github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
-github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
-github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
-github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
-github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
-github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
-github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
-github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
-github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
-github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
-github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
-github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
-github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
+github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
+github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
 github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
 github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
-github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
-github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
-github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
-github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
 github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M=
 github.com/go-test/deep v1.0.7/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8=
-github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80=
 github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0=
 github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
-github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
-github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
@@ -314,8 +174,6 @@ github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzw
 github.com/golang-jwt/jwt/v4 v4.4.1 h1:pC5DB52sCeK48Wlb9oPcdhnjkz1TKt1D/P7WKJ0kUcQ=
 github.com/golang-jwt/jwt/v4 v4.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -328,8 +186,6 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
 github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
-github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
-github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -345,15 +201,12 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
 github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
 github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
-github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
-github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
+github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
+github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -368,7 +221,6 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
 github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
 github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
 github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
@@ -386,11 +238,8 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf
 github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
 github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -400,19 +249,7 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
 github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A=
 github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI=
-github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
-github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
-github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=
 github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
-github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
-github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
-github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
-github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
-github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
-github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
-github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
-github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
-github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
@@ -421,49 +258,30 @@ github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+l
 github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
-github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
-github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
 github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg=
-github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
-github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
+github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
 github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
 github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
-github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
 github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
-github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
-github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
 github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
-github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
-github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
-github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
-github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
 github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
-github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
 github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
@@ -472,151 +290,76 @@ github.com/kubeflow/common v0.4.3/go.mod h1:Qb/5aON7/OWVkN8OnjRqqT0i8X/XzMekRIZ8
 github.com/kubeflow/training-operator v1.5.0-rc.0 h1:MaxbG80SYpIbDG63tSiwav4OXczrSFA5AFnaQavzgbw=
 github.com/kubeflow/training-operator v1.5.0-rc.0/go.mod h1:xgcu/ZI/RwKbTvYgzU7ZWFpxbsefSey5We3KmKroALY=
 github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
-github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
 github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
 github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
-github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
-github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
 github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
-github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
 github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
 github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
-github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
 github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
 github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
 github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
-github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
-github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
-github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
-github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
+github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
+github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
 github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
 github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
 github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8=
-github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
 github.com/ncw/swift v1.0.53 h1:luHjjTNtekIEvHg5KdAFIBaH7bWfNkefwFnpDffSIks=
 github.com/ncw/swift v1.0.53/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
-github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
-github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
-github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
-github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
-github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
-github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
 github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
-github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY=
-github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
-github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
-github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
-github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
-github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw=
-github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
-github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
+github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU=
+github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
 github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM=
 github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8 h1:dy81yyLYJDwMTifq24Oi/IslOslRrDSb3jwDggjz3Z0=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
-github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI=
-github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
-github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
-github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk=
-github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
-github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
+github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
-github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
-github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=
-github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
-github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
-github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
+github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
+github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
+github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
+github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
+github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg=
+github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
 github.com/ray-project/kuberay/ray-operator v0.0.0-20220728052838-eaa75fa6707c h1:eEqXhtlsUVt798HNUEbdQsMRZSjHSOF5Ilsywuhlgfc=
 github.com/ray-project/kuberay/ray-operator v0.0.0-20220728052838-eaa75fa6707c/go.mod h1:uLBlYqsCS2nsKiVlxJxI5EVgq8CrqNeHDP5uq3hde+c=
-github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
 github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
-github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
-github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
 github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
 github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
-github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ=
 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
-github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
-github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
 github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=
 github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
-github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
 github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA=
 github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
-github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
-github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
-github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
-github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
-github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
+github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
+github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
 github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
 github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
-github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
 github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
 github.com/spf13/viper v1.11.0 h1:7OX/1FS6n7jHD1zGrZTM7WtY13ZELRyosK4k93oPr44=
 github.com/spf13/viper v1.11.0/go.mod h1:djo0X/bA5+tYVoCn+C7cAYJGcVn/qYLFTG8gdUsX7Zk=
-github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
 github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
 github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
@@ -624,7 +367,6 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
@@ -633,64 +375,31 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU
 github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
 github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
 github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
-github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
-github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
-github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
-github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
-github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
 github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
-go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
-go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
-go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
 go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
 go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
-go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
 go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
 go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
-go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
-go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
-go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
-go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
-go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
-go.uber.org/zap v1.8.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
-go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
-golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
+go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM=
-golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
+golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -701,6 +410,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
 golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
+golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
+golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -724,30 +435,19 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
-golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
-golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -758,7 +458,6 @@ golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/
 golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
@@ -769,15 +468,11 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY
 golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
-golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
-golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
-golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
+golang.org/x/net v0.13.0 h1:Nvo8UFsZ8X3BhAC9699Z1j7XQ3rsZnUUm7jfBEk1ueY=
+golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -787,12 +482,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ
 golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g=
-golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
+golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
+golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -803,37 +494,19 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -846,10 +519,7 @@ golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -857,54 +527,37 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
-golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
+golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ=
-golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
-golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c=
+golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
-golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
+golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA=
-golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
+golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
@@ -913,16 +566,11 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBn
 golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -942,7 +590,6 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjs
 golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
 golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
 golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@@ -958,16 +605,14 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f
 golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
-golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
+golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM=
 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/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
 golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
-gomodules.xyz/jsonpatch/v2 v2.0.1/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU=
-gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY=
+gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
 google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
 google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
@@ -987,8 +632,6 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513
 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
 google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
 google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
-google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
-google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
 google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE=
 google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
@@ -1030,25 +673,22 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D
 google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
-google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
-google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
 google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
 google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
 google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
@@ -1062,8 +702,6 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp
 google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
 google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
 google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
 google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ=
 google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
@@ -1078,42 +716,24 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
 google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
 google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 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/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
-gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
 gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
 gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
 gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4=
 gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
-gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
-gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
-gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
 gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
 gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
-gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
@@ -1126,72 +746,29 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-k8s.io/api v0.18.2/go.mod h1:SJCWI7OLzhZSvbY7U8zwNl9UA4o1fizoug34OV/2r78=
-k8s.io/api v0.18.6/go.mod h1:eeyxr+cwCjMdLAmr2W3RyDI0VvTawSg/3RFFBEnmZGI=
-k8s.io/api v0.18.8/go.mod h1:d/CXqwWv+Z2XEG1LgceeDmHQwpUJhROPx16SlxJgERY=
-k8s.io/api v0.24.1 h1:BjCMRDcyEYz03joa3K1+rbshwh1Ay6oB53+iUx2H8UY=
-k8s.io/api v0.24.1/go.mod h1:JhoOvNiLXKTPQ60zh2g0ewpA+bnEYf5q44Flhquh4vQ=
-k8s.io/apiextensions-apiserver v0.18.2/go.mod h1:q3faSnRGmYimiocj6cHQ1I3WpLqmDgJFlKL37fC4ZvY=
-k8s.io/apiextensions-apiserver v0.18.6/go.mod h1:lv89S7fUysXjLZO7ke783xOwVTm6lKizADfvUM/SS/M=
-k8s.io/apiextensions-apiserver v0.24.1 h1:5yBh9+ueTq/kfnHQZa0MAo6uNcPrtxPMpNQgorBaKS0=
-k8s.io/apimachinery v0.18.2/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA=
-k8s.io/apimachinery v0.18.6/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko=
-k8s.io/apimachinery v0.18.8/go.mod h1:6sQd+iHEqmOtALqOFjSWp2KZ9F0wlU/nWm0ZgsYWMig=
-k8s.io/apimachinery v0.24.1 h1:ShD4aDxTQKN5zNf8K1RQ2u98ELLdIW7jEnlO9uAMX/I=
-k8s.io/apimachinery v0.24.1/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM=
-k8s.io/apiserver v0.18.2/go.mod h1:Xbh066NqrZO8cbsoenCwyDJ1OSi8Ag8I2lezeHxzwzw=
-k8s.io/apiserver v0.18.6/go.mod h1:Zt2XvTHuaZjBz6EFYzpp+X4hTmgWGy8AthNVnTdm3Wg=
-k8s.io/client-go v0.18.2/go.mod h1:Xcm5wVGXX9HAA2JJ2sSBUn3tCJ+4SVlCbl2MNNv+CIU=
-k8s.io/client-go v0.18.6/go.mod h1:/fwtGLjYMS1MaM5oi+eXhKwG+1UHidUEXRh6cNsdO0Q=
-k8s.io/client-go v0.18.8/go.mod h1:HqFqMllQ5NnQJNwjro9k5zMyfhZlOwpuTLVrxjkYSxU=
-k8s.io/client-go v0.24.1 h1:w1hNdI9PFrzu3OlovVeTnf4oHDt+FJLd9Ndluvnb42E=
-k8s.io/client-go v0.24.1/go.mod h1:f1kIDqcEYmwXS/vTbbhopMUbhKp2JhOeVTfxgaCIlF8=
-k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
-k8s.io/code-generator v0.18.6/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c=
+k8s.io/api v0.28.2 h1:9mpl5mOb6vXZvqbQmankOfPIGiudghwCoLl1EYfUZbw=
+k8s.io/api v0.28.2/go.mod h1:RVnJBsjU8tcMq7C3iaRSGMeaKt2TWEUXcpIt/90fjEg=
+k8s.io/apiextensions-apiserver v0.28.0 h1:CszgmBL8CizEnj4sj7/PtLGey6Na3YgWyGCPONv7E9E=
+k8s.io/apimachinery v0.28.2 h1:KCOJLrc6gu+wV1BYgwik4AF4vXOlVJPdiqn0yAWWwXQ=
+k8s.io/apimachinery v0.28.2/go.mod h1:RdzF87y/ngqk9H4z3EL2Rppv5jj95vGS/HaFXrLDApU=
+k8s.io/client-go v0.28.2 h1:DNoYI1vGq0slMBN/SWKMZMw0Rq+0EQW6/AK4v9+3VeY=
+k8s.io/client-go v0.28.2/go.mod h1:sMkApowspLuc7omj1FOSUxSoqjr+d5Q0Yc0LOFnYFJY=
 k8s.io/code-generator v0.24.1 h1:zS+dvmUNaOcvsQ4faV9hXNjsKG9/pQaLnts1Wma4RM8=
-k8s.io/component-base v0.18.2/go.mod h1:kqLlMuhJNHQ9lz8Z7V5bxUUtjFZnrypArGl58gmDfUM=
-k8s.io/component-base v0.18.6/go.mod h1:knSVsibPR5K6EW2XOjEHik6sdU5nCvKMrzMt2D4In14=
-k8s.io/component-base v0.24.1 h1:APv6W/YmfOWZfo+XJ1mZwep/f7g7Tpwvdbo9CQLDuts=
-k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
-k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
-k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
-k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
-k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
-k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
-k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
-k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
+k8s.io/component-base v0.28.1 h1:LA4AujMlK2mr0tZbQDZkjWbdhTV5bRyEyAFe0TJxlWg=
+k8s.io/klog/v2 v2.60.1 h1:VW25q3bZx9uE3vvdL6M8ezOX79vA2Aq1nEWLqNQclHc=
 k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
-k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
-k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
-k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk=
-k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg=
-k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg=
-k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
-k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=
-k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f h1:eeEUOoGYWhOz7EyXqhlR2zHKNw2mNJ9vzJmub6YN6kk=
+k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0=
-sigs.k8s.io/controller-runtime v0.6.2/go.mod h1:vhcq/rlnENJ09SIRp3EveTaZ0yqH526hjf9iJdbUJ/E=
-sigs.k8s.io/controller-runtime v0.12.1 h1:4BJY01xe9zKQti8oRjj/NeHKRXthf1YkYJAgLONFFoI=
-sigs.k8s.io/controller-runtime v0.12.1/go.mod h1:BKhxlA4l7FPK4AQcsuL4X6vZeWnKDXez/vp1Y8dxTU0=
-sigs.k8s.io/controller-tools v0.3.0/go.mod h1:enhtKGfxZD1GFEoMgP8Fdbu+uKQ/cq1/WGJhdVChfvI=
-sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY=
+sigs.k8s.io/controller-runtime v0.16.2 h1:mwXAVuEk3EQf478PQwQ48zGOXvW27UJc8NHktQVuIPU=
+sigs.k8s.io/controller-runtime v0.16.2/go.mod h1:vpMu3LpI5sYWtujJOa2uPK61nB5rbwlN7BAB8aSLvGU=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
-sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
-sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
-sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
 sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
 sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
diff --git a/flyteplugins/go/tasks/config_load_test.go b/flyteplugins/go/tasks/config_load_test.go
index e181c817b4..6e02277742 100644
--- a/flyteplugins/go/tasks/config_load_test.go
+++ b/flyteplugins/go/tasks/config_load_test.go
@@ -10,7 +10,6 @@ import (
 
 	"github.com/flyteorg/flyte/flyteplugins/go/tasks/logs"
 	flyteK8sConfig "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/flytek8s/config"
-	sagemakerConfig "github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/sagemaker/config"
 	"github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/spark"
 	"github.com/flyteorg/flyte/flytestdlib/config"
 	"github.com/flyteorg/flyte/flytestdlib/config/viper"
@@ -119,10 +118,6 @@ func TestLoadConfig(t *testing.T) {
 		assert.Equal(t, 2, len(spark.GetSparkConfig().Features[1].SparkConfig))
 
 	})
-
-	t.Run("sagemaker-config-test", func(t *testing.T) {
-		assert.NotNil(t, sagemakerConfig.GetSagemakerConfig())
-	})
 }
 
 func TestLoadIncorrectConfig(t *testing.T) {
diff --git a/flyteplugins/go/tasks/pluginmachinery/core/mocks/fake_k8s_cache.go b/flyteplugins/go/tasks/pluginmachinery/core/mocks/fake_k8s_cache.go
index 1237220374..09e76b7949 100644
--- a/flyteplugins/go/tasks/pluginmachinery/core/mocks/fake_k8s_cache.go
+++ b/flyteplugins/go/tasks/pluginmachinery/core/mocks/fake_k8s_cache.go
@@ -17,15 +17,20 @@ import (
 )
 
 type FakeKubeCache struct {
+	// Reader acts as a client to objects stored in the cache.
+	client.Reader
+
+	// Informers loads informers and adds field indices.
+	cache.Informers
 	syncObj sync.RWMutex
 	Cache   map[string]runtime.Object
 }
 
-func (m *FakeKubeCache) GetInformer(ctx context.Context, obj client.Object) (cache.Informer, error) {
+func (m *FakeKubeCache) GetInformer(ctx context.Context, obj client.Object, opts ...cache.InformerGetOption) (cache.Informer, error) {
 	panic("implement me")
 }
 
-func (m *FakeKubeCache) GetInformerForKind(ctx context.Context, gvk schema.GroupVersionKind) (cache.Informer, error) {
+func (m *FakeKubeCache) GetInformerForKind(ctx context.Context, gvk schema.GroupVersionKind, opts ...cache.InformerGetOption) (cache.Informer, error) {
 	panic("implement me")
 }
 
@@ -41,7 +46,7 @@ func (m *FakeKubeCache) IndexField(ctx context.Context, obj client.Object, field
 	panic("implement me")
 }
 
-func (m *FakeKubeCache) Get(ctx context.Context, key client.ObjectKey, out client.Object) error {
+func (m *FakeKubeCache) Get(ctx context.Context, key client.ObjectKey, out client.Object, opts ...client.GetOption) error {
 	m.syncObj.RLock()
 	defer m.syncObj.RUnlock()
 
diff --git a/flyteplugins/go/tasks/pluginmachinery/core/mocks/fake_k8s_client.go b/flyteplugins/go/tasks/pluginmachinery/core/mocks/fake_k8s_client.go
index 120b9c6d77..e590ac04ee 100644
--- a/flyteplugins/go/tasks/pluginmachinery/core/mocks/fake_k8s_client.go
+++ b/flyteplugins/go/tasks/pluginmachinery/core/mocks/fake_k8s_client.go
@@ -17,6 +17,10 @@ import (
 )
 
 type FakeKubeClient struct {
+	client.Reader
+	client.Writer
+	client.StatusClient
+	client.SubResourceClientConstructor
 	syncObj sync.RWMutex
 	Cache   map[string]runtime.Object
 }
@@ -26,7 +30,7 @@ func formatKey(name types.NamespacedName, kind schema.GroupVersionKind) string {
 	return key
 }
 
-func (m *FakeKubeClient) Get(ctx context.Context, key client.ObjectKey, out client.Object) error {
+func (m *FakeKubeClient) Get(ctx context.Context, key client.ObjectKey, out client.Object, opts ...client.GetOption) error {
 	m.syncObj.RLock()
 	defer m.syncObj.RUnlock()
 
@@ -57,6 +61,16 @@ func (m *FakeKubeClient) Get(ctx context.Context, key client.ObjectKey, out clie
 	return errors.NewNotFound(schema.GroupResource{}, key.Name)
 }
 
+// GroupVersionKindFor returns the GroupVersionKind for the given object.
+func (m *FakeKubeClient) GroupVersionKindFor(obj runtime.Object) (schema.GroupVersionKind, error) {
+	panic("implement me")
+}
+
+// IsObjectNamespaced returns true if the GroupVersionKind of the object is namespaced.
+func (m *FakeKubeClient) IsObjectNamespaced(obj runtime.Object) (bool, error) {
+	panic("implement me")
+}
+
 func (m *FakeKubeClient) List(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error {
 	m.syncObj.RLock()
 	defer m.syncObj.RUnlock()
diff --git a/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_template_store_test.go b/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_template_store_test.go
index d963c1817a..023b3a8616 100644
--- a/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_template_store_test.go
+++ b/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_template_store_test.go
@@ -40,11 +40,12 @@ func TestPodTemplateStore(t *testing.T) {
 	informerFactory := informers.NewSharedInformerFactoryWithOptions(kubeClient, 30*time.Second)
 
 	updateHandler := GetPodTemplateUpdatesHandler(&store)
-	informerFactory.Core().V1().PodTemplates().Informer().AddEventHandler(updateHandler)
+	_, err := informerFactory.Core().V1().PodTemplates().Informer().AddEventHandler(updateHandler)
+	assert.NoError(t, err)
 	go informerFactory.Start(ctx.Done())
 
 	// create the podTemplate
-	_, err := kubeClient.CoreV1().PodTemplates(podTemplate.Namespace).Create(ctx, podTemplate, metav1.CreateOptions{})
+	_, err = kubeClient.CoreV1().PodTemplates(podTemplate.Namespace).Create(ctx, podTemplate, metav1.CreateOptions{})
 	assert.NoError(t, err)
 
 	time.Sleep(50 * time.Millisecond)
diff --git a/flyteplugins/go/tasks/pluginmachinery/k8s/client.go b/flyteplugins/go/tasks/pluginmachinery/k8s/client.go
index 97abfefd8a..79a81c7e79 100644
--- a/flyteplugins/go/tasks/pluginmachinery/k8s/client.go
+++ b/flyteplugins/go/tasks/pluginmachinery/k8s/client.go
@@ -3,7 +3,7 @@
 package k8s
 
 import (
-	"context"
+	"net/http"
 
 	"k8s.io/apimachinery/pkg/api/meta"
 	"k8s.io/client-go/rest"
@@ -31,72 +31,6 @@ func newKubeClient(c client.Client, cache cache.Cache) core.KubeClient {
 	return &kubeClient{client: c, cache: cache}
 }
 
-type fallbackClientReader struct {
-	orderedClients []client.Reader
-}
-
-func (c fallbackClientReader) Get(ctx context.Context, key client.ObjectKey, out client.Object) (err error) {
-	for _, k8sClient := range c.orderedClients {
-		if err = k8sClient.Get(ctx, key, out); err == nil {
-			return nil
-		}
-	}
-
-	return
-}
-
-func (c fallbackClientReader) List(ctx context.Context, list client.ObjectList, opts ...client.ListOption) (err error) {
-	for _, k8sClient := range c.orderedClients {
-		if err = k8sClient.List(ctx, list, opts...); err == nil {
-			return nil
-		}
-	}
-
-	return
-}
-
-// ClientBuilder builder is the interface for the client builder.
-type ClientBuilder interface {
-	// WithUncached takes a list of runtime objects (plain or lists) that users don't want to cache
-	// for this client. This function can be called multiple times, it should append to an internal slice.
-	WithUncached(objs ...client.Object) ClientBuilder
-
-	// Build returns a new client.
-	Build(cache cache.Cache, config *rest.Config, options client.Options) (client.Client, error)
-}
-
-type fallbackClientBuilder struct {
-	uncached []client.Object
-}
-
-func (f *fallbackClientBuilder) WithUncached(objs ...client.Object) ClientBuilder {
-	f.uncached = append(f.uncached, objs...)
-	return f
-}
-
-func (f fallbackClientBuilder) Build(cache cache.Cache, config *rest.Config, options client.Options) (client.Client, error) {
-	c, err := client.New(config, options)
-	if err != nil {
-		return nil, err
-	}
-
-	return client.NewDelegatingClient(client.NewDelegatingClientInput{
-		Client: c,
-		CacheReader: fallbackClientReader{
-			orderedClients: []client.Reader{cache, c},
-		},
-		UncachedObjects: f.uncached,
-		// TODO figure out if this should be true?
-		// CacheUnstructured: true,
-	})
-}
-
-// Creates a new k8s client that uses the cached client for reads and falls back to making API
-// calls if it failed. Write calls will always go to raw client directly.
-func NewFallbackClientBuilder() ClientBuilder {
-	return &fallbackClientBuilder{}
-}
-
 type Options struct {
 	MapperProvider func(*rest.Config) (meta.RESTMapper, error)
 	CacheOptions   *cache.Options
@@ -108,17 +42,22 @@ type Options struct {
 func NewKubeClient(config *rest.Config, options Options) (core.KubeClient, error) {
 	if options.MapperProvider == nil {
 		options.MapperProvider = func(c *rest.Config) (meta.RESTMapper, error) {
-			return apiutil.NewDynamicRESTMapper(config)
+			return apiutil.NewDynamicRESTMapper(config, http.DefaultClient)
 		}
 	}
+
 	mapper, err := options.MapperProvider(config)
 	if err != nil {
 		return nil, err
 	}
 
 	if options.CacheOptions == nil {
-		options.CacheOptions = &cache.Options{Mapper: mapper}
+		options.CacheOptions = &cache.Options{
+			HTTPClient: http.DefaultClient,
+			Mapper:     mapper,
+		}
 	}
+
 	cache, err := cache.New(config, *options.CacheOptions)
 	if err != nil {
 		return nil, err
@@ -128,12 +67,12 @@ func NewKubeClient(config *rest.Config, options Options) (core.KubeClient, error
 		options.ClientOptions = &client.Options{Mapper: mapper}
 	}
 
-	fallbackClient, err := NewFallbackClientBuilder().Build(cache, config, *options.ClientOptions)
+	client, err := client.New(config, *options.ClientOptions)
 	if err != nil {
 		return nil, err
 	}
 
-	return newKubeClient(fallbackClient, cache), nil
+	return newKubeClient(client, cache), nil
 }
 
 // NewDefaultKubeClient creates a new KubeClient with default options set.
diff --git a/flyteplugins/go/tasks/pluginmachinery/k8s/mocks/client_builder.go b/flyteplugins/go/tasks/pluginmachinery/k8s/mocks/client_builder.go
deleted file mode 100644
index 4312ab348d..0000000000
--- a/flyteplugins/go/tasks/pluginmachinery/k8s/mocks/client_builder.go
+++ /dev/null
@@ -1,100 +0,0 @@
-// Code generated by mockery v1.0.1. DO NOT EDIT.
-
-package mocks
-
-import (
-	cache "sigs.k8s.io/controller-runtime/pkg/cache"
-	client "sigs.k8s.io/controller-runtime/pkg/client"
-
-	k8s "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/k8s"
-
-	mock "github.com/stretchr/testify/mock"
-
-	rest "k8s.io/client-go/rest"
-)
-
-// ClientBuilder is an autogenerated mock type for the ClientBuilder type
-type ClientBuilder struct {
-	mock.Mock
-}
-
-type ClientBuilder_Build struct {
-	*mock.Call
-}
-
-func (_m ClientBuilder_Build) Return(_a0 client.Client, _a1 error) *ClientBuilder_Build {
-	return &ClientBuilder_Build{Call: _m.Call.Return(_a0, _a1)}
-}
-
-func (_m *ClientBuilder) OnBuild(_a0 cache.Cache, config *rest.Config, options client.Options) *ClientBuilder_Build {
-	c_call := _m.On("Build", _a0, config, options)
-	return &ClientBuilder_Build{Call: c_call}
-}
-
-func (_m *ClientBuilder) OnBuildMatch(matchers ...interface{}) *ClientBuilder_Build {
-	c_call := _m.On("Build", matchers...)
-	return &ClientBuilder_Build{Call: c_call}
-}
-
-// Build provides a mock function with given fields: _a0, config, options
-func (_m *ClientBuilder) Build(_a0 cache.Cache, config *rest.Config, options client.Options) (client.Client, error) {
-	ret := _m.Called(_a0, config, options)
-
-	var r0 client.Client
-	if rf, ok := ret.Get(0).(func(cache.Cache, *rest.Config, client.Options) client.Client); ok {
-		r0 = rf(_a0, config, options)
-	} else {
-		if ret.Get(0) != nil {
-			r0 = ret.Get(0).(client.Client)
-		}
-	}
-
-	var r1 error
-	if rf, ok := ret.Get(1).(func(cache.Cache, *rest.Config, client.Options) error); ok {
-		r1 = rf(_a0, config, options)
-	} else {
-		r1 = ret.Error(1)
-	}
-
-	return r0, r1
-}
-
-type ClientBuilder_WithUncached struct {
-	*mock.Call
-}
-
-func (_m ClientBuilder_WithUncached) Return(_a0 k8s.ClientBuilder) *ClientBuilder_WithUncached {
-	return &ClientBuilder_WithUncached{Call: _m.Call.Return(_a0)}
-}
-
-func (_m *ClientBuilder) OnWithUncached(objs ...client.Object) *ClientBuilder_WithUncached {
-	c_call := _m.On("WithUncached", objs)
-	return &ClientBuilder_WithUncached{Call: c_call}
-}
-
-func (_m *ClientBuilder) OnWithUncachedMatch(matchers ...interface{}) *ClientBuilder_WithUncached {
-	c_call := _m.On("WithUncached", matchers...)
-	return &ClientBuilder_WithUncached{Call: c_call}
-}
-
-// WithUncached provides a mock function with given fields: objs
-func (_m *ClientBuilder) WithUncached(objs ...client.Object) k8s.ClientBuilder {
-	_va := make([]interface{}, len(objs))
-	for _i := range objs {
-		_va[_i] = objs[_i]
-	}
-	var _ca []interface{}
-	_ca = append(_ca, _va...)
-	ret := _m.Called(_ca...)
-
-	var r0 k8s.ClientBuilder
-	if rf, ok := ret.Get(0).(func(...client.Object) k8s.ClientBuilder); ok {
-		r0 = rf(objs...)
-	} else {
-		if ret.Get(0) != nil {
-			r0 = ret.Get(0).(k8s.ClientBuilder)
-		}
-	}
-
-	return r0
-}
diff --git a/flyteplugins/go/tasks/plugins/array/awsbatch/launcher_test.go b/flyteplugins/go/tasks/plugins/array/awsbatch/launcher_test.go
index 449280bdcf..a1493f741b 100644
--- a/flyteplugins/go/tasks/plugins/array/awsbatch/launcher_test.go
+++ b/flyteplugins/go/tasks/plugins/array/awsbatch/launcher_test.go
@@ -125,7 +125,7 @@ func TestLaunchSubTasks(t *testing.T) {
 			JobDefinitionArn: "arn",
 		}
 
-		newState, err := LaunchSubTasks(context.TODO(), tCtx, batchClient, &config.Config{MaxArrayJobSize: 10}, currentState, getAwsBatchExecutorMetrics(promutils.NewTestScope()), 0)
+		newState, err := LaunchSubTasks(context.Background(), tCtx, batchClient, &config.Config{MaxArrayJobSize: 10}, currentState, getAwsBatchExecutorMetrics(promutils.NewTestScope()), 0)
 		assert.NoError(t, err)
 		assertEqual(t, expectedState, newState)
 	})
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/builtin_training.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/builtin_training.go
deleted file mode 100644
index 4b6bcc2360..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/builtin_training.go
+++ /dev/null
@@ -1,248 +0,0 @@
-package sagemaker
-
-import (
-	"context"
-	"strings"
-	"time"
-
-	commonv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/common"
-	trainingjobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/trainingjob"
-	"github.com/aws/aws-sdk-go/service/sagemaker"
-	"sigs.k8s.io/controller-runtime/pkg/client"
-
-	flyteIdlCore "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	flyteSageMakerIdl "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker"
-	pluginErrors "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors"
-	taskError "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors"
-	pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/ioutils"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/k8s"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/utils"
-	awsUtils "github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/awsutils"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/sagemaker/config"
-	"github.com/flyteorg/flyte/flytestdlib/logger"
-)
-
-const ReconcilingTrainingJobStatus = "ReconcilingTrainingJob"
-
-func (m awsSagemakerPlugin) buildResourceForTrainingJob(
-	ctx context.Context, taskCtx pluginsCore.TaskExecutionContext) (client.Object, error) {
-
-	logger.Infof(ctx, "Building a training job resource for task [%v]", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName())
-	taskTemplate, err := getTaskTemplate(ctx, taskCtx)
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "Failed to get the task template of the training job task")
-	}
-
-	// Unmarshal the custom field of the task template back into the Hyperparameter Tuning Job struct generated in flyteidl
-	sagemakerTrainingJob := flyteSageMakerIdl.TrainingJob{}
-	err = utils.UnmarshalStruct(taskTemplate.GetCustom(), &sagemakerTrainingJob)
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "invalid TrainingJob task specification: not able to unmarshal the custom field to [%s]", m.TaskType)
-	}
-	if sagemakerTrainingJob.GetTrainingJobResourceConfig() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "Required field [TrainingJobResourceConfig] of the TrainingJob does not exist")
-	}
-	if sagemakerTrainingJob.GetAlgorithmSpecification() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "Required field [AlgorithmSpecification] does not exist")
-	}
-	if sagemakerTrainingJob.GetAlgorithmSpecification().GetAlgorithmName() == flyteSageMakerIdl.AlgorithmName_CUSTOM {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "Custom algorithm is not supported by the built-in training job plugin")
-	}
-
-	taskInput, err := taskCtx.InputReader().Get(ctx)
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "unable to fetch task inputs")
-	}
-
-	// Get inputs from literals
-	inputLiterals := taskInput.GetLiterals()
-	err = checkIfRequiredInputLiteralsExist(inputLiterals,
-		[]string{TrainPredefinedInputVariable, ValidationPredefinedInputVariable, StaticHyperparametersPredefinedInputVariable})
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "Error occurred when checking if all the required inputs exist")
-	}
-
-	trainPathLiteral := inputLiterals[TrainPredefinedInputVariable]
-	validationPathLiteral := inputLiterals[ValidationPredefinedInputVariable]
-	staticHyperparamsLiteral := inputLiterals[StaticHyperparametersPredefinedInputVariable]
-
-	if trainPathLiteral.GetScalar() == nil || trainPathLiteral.GetScalar().GetBlob() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "[train] Input is required and should be of Type [Scalar.Blob]")
-	}
-	if validationPathLiteral.GetScalar() == nil || validationPathLiteral.GetScalar().GetBlob() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "[validation] Input is required and should be of Type [Scalar.Blob]")
-	}
-
-	// Convert the hyperparameters to the spec value
-	staticHyperparams, err := convertStaticHyperparamsLiteralToSpecType(staticHyperparamsLiteral)
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "could not convert static hyperparameters to spec type")
-	}
-
-	outputPath := createOutputPath(taskCtx.OutputWriter().GetRawOutputPrefix().String(), TrainingJobOutputPathSubDir)
-
-	jobName := taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName()
-
-	trainingImageStr, err := getTrainingJobImage(ctx, taskCtx, &sagemakerTrainingJob)
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "failed to find the training image")
-	}
-
-	logger.Infof(ctx, "The Sagemaker TrainingJob Task plugin received static hyperparameters [%v]", staticHyperparams)
-
-	cfg := config.GetSagemakerConfig()
-
-	var metricDefinitions []commonv1.MetricDefinition
-	idlMetricDefinitions := sagemakerTrainingJob.GetAlgorithmSpecification().GetMetricDefinitions()
-	for _, md := range idlMetricDefinitions {
-		metricDefinitions = append(metricDefinitions,
-			commonv1.MetricDefinition{Name: ToStringPtr(md.Name), Regex: ToStringPtr(md.Regex)})
-	}
-
-	apiContentType, err := getAPIContentType(sagemakerTrainingJob.GetAlgorithmSpecification().GetInputContentType())
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "Unsupported input file type [%v]", sagemakerTrainingJob.GetAlgorithmSpecification().GetInputContentType().String())
-	}
-
-	inputModeString := strings.Title(strings.ToLower(sagemakerTrainingJob.GetAlgorithmSpecification().GetInputMode().String()))
-
-	role := awsUtils.GetRoleFromSecurityContext(cfg.RoleAnnotationKey, taskCtx.TaskExecutionMetadata())
-
-	if len(role) == 0 {
-		role = cfg.RoleArn
-	}
-
-	trainingJob := &trainingjobv1.TrainingJob{
-		Spec: trainingjobv1.TrainingJobSpec{
-			AlgorithmSpecification: &commonv1.AlgorithmSpecification{
-				// If the specify a value for this AlgorithmName parameter, the user can't specify a value for TrainingImage.
-				// in this Flyte plugin, we always use the algorithm name and version the user provides via Flytekit to map to an image
-				// so we intentionally leave this field nil
-				AlgorithmName:     nil,
-				TrainingImage:     ToStringPtr(trainingImageStr),
-				TrainingInputMode: commonv1.TrainingInputMode(inputModeString),
-				MetricDefinitions: metricDefinitions,
-			},
-			// The support of spot training will come in a later version
-			EnableManagedSpotTraining: nil,
-			HyperParameters:           staticHyperparams,
-			InputDataConfig: []commonv1.Channel{
-				{
-					ChannelName: ToStringPtr(TrainPredefinedInputVariable),
-					DataSource: &commonv1.DataSource{
-						S3DataSource: &commonv1.S3DataSource{
-							S3DataType: "S3Prefix",
-							S3Uri:      ToStringPtr(trainPathLiteral.GetScalar().GetBlob().GetUri()),
-						},
-					},
-					ContentType: ToStringPtr(apiContentType),
-					InputMode:   inputModeString,
-				},
-				{
-					ChannelName: ToStringPtr(ValidationPredefinedInputVariable),
-					DataSource: &commonv1.DataSource{
-						S3DataSource: &commonv1.S3DataSource{
-							S3DataType: "S3Prefix",
-							S3Uri:      ToStringPtr(validationPathLiteral.GetScalar().GetBlob().GetUri()),
-						},
-					},
-					ContentType: ToStringPtr(apiContentType),
-					InputMode:   inputModeString,
-				},
-			},
-			OutputDataConfig: &commonv1.OutputDataConfig{
-				S3OutputPath: ToStringPtr(outputPath),
-			},
-			CheckpointConfig: nil,
-			ResourceConfig: &commonv1.ResourceConfig{
-				InstanceType:   sagemakerTrainingJob.GetTrainingJobResourceConfig().GetInstanceType(),
-				InstanceCount:  ToInt64Ptr(sagemakerTrainingJob.GetTrainingJobResourceConfig().GetInstanceCount()),
-				VolumeSizeInGB: ToInt64Ptr(sagemakerTrainingJob.GetTrainingJobResourceConfig().GetVolumeSizeInGb()),
-				VolumeKmsKeyId: ToStringPtr(""), // TODO: Not yet supported. Need to add to proto and flytekit in the future
-			},
-			RoleArn: ToStringPtr(role),
-			Region:  ToStringPtr(cfg.Region),
-			StoppingCondition: &commonv1.StoppingCondition{
-				MaxRuntimeInSeconds:  ToInt64Ptr(86400), // TODO: decide how to coordinate this and Flyte's timeout
-				MaxWaitTimeInSeconds: nil,               // TODO: decide how to coordinate this and Flyte's timeout and queueing budget
-			},
-			TensorBoardOutputConfig: nil,
-			Tags:                    nil,
-			TrainingJobName:         &jobName,
-		},
-	}
-	logger.Infof(ctx, "Successfully built a training job resource for task [%v]", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName())
-	return trainingJob, nil
-}
-
-func (m awsSagemakerPlugin) getTaskPhaseForTrainingJob(
-	ctx context.Context, pluginContext k8s.PluginContext, trainingJob *trainingjobv1.TrainingJob) (pluginsCore.PhaseInfo, error) {
-
-	logger.Infof(ctx, "Getting task phase for sagemaker training job [%v]", trainingJob.Status.SageMakerTrainingJobName)
-	info, err := m.getEventInfoForTrainingJob(ctx, trainingJob)
-	if err != nil {
-		return pluginsCore.PhaseInfoUndefined, pluginErrors.Wrapf(pluginErrors.RuntimeFailure, err, "Failed to get event info for the job")
-	}
-
-	occurredAt := time.Now()
-
-	switch trainingJob.Status.TrainingJobStatus {
-	case ReconcilingTrainingJobStatus:
-		logger.Errorf(ctx, "Job stuck in reconciling status, assuming retryable failure [%s]", trainingJob.Status.Additional)
-		// TODO talk to AWS about why there cannot be an explicit condition that signals AWS API call pluginErrors
-		execError := &flyteIdlCore.ExecutionError{
-			Message: trainingJob.Status.Additional,
-			Kind:    flyteIdlCore.ExecutionError_USER,
-			Code:    ReconcilingTrainingJobStatus,
-		}
-		return pluginsCore.PhaseInfoFailed(pluginsCore.PhaseRetryableFailure, execError, info), nil
-	case sagemaker.TrainingJobStatusFailed:
-		execError := &flyteIdlCore.ExecutionError{
-			Message: trainingJob.Status.Additional,
-			Kind:    flyteIdlCore.ExecutionError_USER,
-			Code:    sagemaker.TrainingJobStatusFailed,
-		}
-		return pluginsCore.PhaseInfoFailed(pluginsCore.PhasePermanentFailure, execError, info), nil
-	case sagemaker.TrainingJobStatusStopped:
-		return pluginsCore.PhaseInfoRetryableFailure(taskError.DownstreamSystemError, "Training Job Stopped", info), nil
-	case sagemaker.TrainingJobStatusCompleted:
-		// Now that it is a success we will set the outputs as expected by the task
-
-		// We have specified an output path in the CRD, and we know SageMaker will automatically upload the
-		// model tarball to s3://<specified-output-path>/<training-job-name>/output/model.tar.gz
-
-		// Therefore, here we create a output literal map, where we fill in the above path to the URI field of the
-		// blob output, which will later be written out by the OutputWriter to the outputs.pb remotely on S3
-		outputLiteralMap, err := getOutputLiteralMapFromTaskInterface(ctx, pluginContext.TaskReader(),
-			createModelOutputPath(trainingJob, pluginContext.OutputWriter().GetRawOutputPrefix().String(), trainingJob.Status.SageMakerTrainingJobName))
-		if err != nil {
-			logger.Errorf(ctx, "Failed to create outputs, err: %s", err)
-			return pluginsCore.PhaseInfoUndefined, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "failed to create outputs for the task")
-		}
-		// Instantiate a output reader with the literal map, and write the output to the remote location referred to by the OutputWriter
-		if err := pluginContext.OutputWriter().Put(ctx, ioutils.NewInMemoryOutputReader(outputLiteralMap, nil, nil)); err != nil {
-			return pluginsCore.PhaseInfoUndefined, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "Unable to write output to the remote location")
-		}
-		logger.Debugf(ctx, "Successfully produced and returned outputs")
-		return pluginsCore.PhaseInfoSuccess(info), nil
-	case "":
-		return pluginsCore.PhaseInfoQueued(occurredAt, pluginsCore.DefaultPhaseVersion, "job submitted"), nil
-	}
-
-	return pluginsCore.PhaseInfoRunning(pluginsCore.DefaultPhaseVersion, info), nil
-}
-
-func (m awsSagemakerPlugin) getEventInfoForTrainingJob(ctx context.Context, trainingJob *trainingjobv1.TrainingJob) (*pluginsCore.TaskInfo, error) {
-
-	var jobRegion, jobName, jobTypeInURL, sagemakerLinkName string
-	jobRegion = *trainingJob.Spec.Region
-	jobName = *trainingJob.Spec.TrainingJobName
-	jobTypeInURL = "jobs"
-	sagemakerLinkName = TrainingJobSageMakerLinkName
-
-	logger.Infof(ctx, "Getting event information for SageMaker BuiltinAlgorithmTrainingJob task, job region: [%v], job name: [%v], "+
-		"job type in url: [%v], sagemaker link name: [%v]", jobRegion, jobName, jobTypeInURL, sagemakerLinkName)
-
-	return createTaskInfo(ctx, jobRegion, jobName, jobTypeInURL, sagemakerLinkName)
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/builtin_training_test.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/builtin_training_test.go
deleted file mode 100644
index cf412edd0c..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/builtin_training_test.go
+++ /dev/null
@@ -1,272 +0,0 @@
-package sagemaker
-
-import (
-	"context"
-	"fmt"
-	"testing"
-
-	commonv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/common"
-	trainingjobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/trainingjob"
-	"github.com/aws/aws-sdk-go/service/sagemaker"
-	"github.com/go-test/deep"
-	"github.com/stretchr/testify/assert"
-
-	flyteIdlCore "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	sagemakerIdl "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker"
-	taskError "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors"
-	pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/utils"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/sagemaker/config"
-	stdConfig "github.com/flyteorg/flyte/flytestdlib/config"
-	"github.com/flyteorg/flyte/flytestdlib/config/viper"
-)
-
-func Test_awsSagemakerPlugin_BuildResourceForTrainingJob(t *testing.T) {
-	// Default config does not contain a roleAnnotationKey -> expecting to get the role from default config
-	ctx := context.TODO()
-	defaultCfg := config.GetSagemakerConfig()
-	defer func() {
-		_ = config.SetSagemakerConfig(defaultCfg)
-	}()
-
-	t.Run("If roleAnnotationKey has a match, the role from the metadata should be fetched", func(t *testing.T) {
-		// Injecting a config which contains a matching roleAnnotationKey -> expecting to get the role from metadata
-		configAccessor := viper.NewAccessor(stdConfig.Options{
-			StrictMode:  true,
-			SearchPaths: []string{"testdata/config.yaml"},
-		})
-
-		err := configAccessor.UpdateConfig(context.TODO())
-		assert.NoError(t, err)
-
-		awsSageMakerTrainingJobHandler := awsSagemakerPlugin{TaskType: trainingJobTaskType}
-
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_XGBOOST, "0.90", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job x", tjObj)
-
-		trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, generateMockTrainingJobTaskContext(taskTemplate, false))
-		assert.NoError(t, err)
-		assert.NotNil(t, trainingJobResource)
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-		assert.Equal(t, "metadata_role", *trainingJob.Spec.RoleArn)
-	})
-
-	t.Run("If roleAnnotationKey does not have a match, the role from the config should be fetched", func(t *testing.T) {
-		// Injecting a config which contains a mismatched roleAnnotationKey -> expecting to get the role from the config
-		configAccessor := viper.NewAccessor(stdConfig.Options{
-			StrictMode: true,
-			// Use a different
-			SearchPaths: []string{"testdata/config2.yaml"},
-		})
-
-		err := configAccessor.UpdateConfig(context.TODO())
-		assert.NoError(t, err)
-
-		awsSageMakerTrainingJobHandler := awsSagemakerPlugin{TaskType: trainingJobTaskType}
-
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_XGBOOST, "0.90", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job y", tjObj)
-
-		trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, generateMockTrainingJobTaskContext(taskTemplate, false))
-		assert.NoError(t, err)
-		assert.NotNil(t, trainingJobResource)
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-		assert.Equal(t, "config_role", *trainingJob.Spec.RoleArn)
-	})
-
-	t.Run("In a custom training job we should see the FLYTE_SAGEMAKER_CMD being injected", func(t *testing.T) {
-		// Injecting a config which contains a mismatched roleAnnotationKey -> expecting to get the role from the config
-		configAccessor := viper.NewAccessor(stdConfig.Options{
-			StrictMode: true,
-			// Use a different
-			SearchPaths: []string{"testdata/config2.yaml"},
-		})
-
-		err := configAccessor.UpdateConfig(context.TODO())
-		assert.NoError(t, err)
-
-		awsSageMakerTrainingJobHandler := awsSagemakerPlugin{TaskType: trainingJobTaskType}
-
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_XGBOOST, "0.90", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job", tjObj)
-
-		trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, generateMockTrainingJobTaskContext(taskTemplate, false))
-		assert.NoError(t, err)
-		assert.NotNil(t, trainingJobResource)
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-		assert.Equal(t, "config_role", *trainingJob.Spec.RoleArn)
-
-		expectedHPs := []*commonv1.KeyValuePair{
-			{Name: "a", Value: "1"},
-			{Name: "b", Value: "2"},
-		}
-
-		assert.ElementsMatch(t,
-			func(kvs []*commonv1.KeyValuePair) []commonv1.KeyValuePair {
-				ret := make([]commonv1.KeyValuePair, 0, len(kvs))
-				for _, kv := range kvs {
-					ret = append(ret, *kv)
-				}
-				return ret
-			}(expectedHPs),
-			func(kvs []*commonv1.KeyValuePair) []commonv1.KeyValuePair {
-				ret := make([]commonv1.KeyValuePair, 0, len(kvs))
-				for _, kv := range kvs {
-					ret = append(ret, *kv)
-				}
-				return ret
-			}(trainingJob.Spec.HyperParameters))
-	})
-}
-
-func Test_awsSagemakerPlugin_GetTaskPhaseForTrainingJob(t *testing.T) {
-	ctx := context.TODO()
-	// Injecting a config which contains a mismatched roleAnnotationKey -> expecting to get the role from the config
-	configAccessor := viper.NewAccessor(stdConfig.Options{
-		StrictMode: true,
-		// Use a different
-		SearchPaths: []string{"testdata/config2.yaml"},
-	})
-
-	err := configAccessor.UpdateConfig(context.TODO())
-	assert.NoError(t, err)
-
-	awsSageMakerTrainingJobHandler := awsSagemakerPlugin{TaskType: trainingJobTaskType}
-
-	tjObj := generateMockTrainingJobCustomObj(
-		sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_XGBOOST, "0.90", []*sagemakerIdl.MetricDefinition{},
-		sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-	taskTemplate := generateMockTrainingJobTaskTemplate("the job", tjObj)
-	taskCtx := generateMockTrainingJobTaskContext(taskTemplate, false)
-	trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, taskCtx)
-	assert.NoError(t, err)
-	assert.NotNil(t, trainingJobResource)
-
-	t.Run("ReconcilingTrainingJobStatus should lead to a retryable failure", func(t *testing.T) {
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-		trainingJob.Status.TrainingJobStatus = ReconcilingTrainingJobStatus
-		phaseInfo, err := awsSageMakerTrainingJobHandler.getTaskPhaseForTrainingJob(ctx, taskCtx, trainingJob)
-		assert.Nil(t, err)
-		assert.Equal(t, phaseInfo.Phase(), pluginsCore.PhaseRetryableFailure)
-		assert.Equal(t, phaseInfo.Err().GetKind(), flyteIdlCore.ExecutionError_USER)
-		assert.Equal(t, phaseInfo.Err().GetCode(), ReconcilingTrainingJobStatus)
-		assert.Equal(t, phaseInfo.Err().GetMessage(), "")
-	})
-	t.Run("TrainingJobStatusFailed should be a permanent failure", func(t *testing.T) {
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-		trainingJob.Status.TrainingJobStatus = sagemaker.TrainingJobStatusFailed
-
-		phaseInfo, err := awsSageMakerTrainingJobHandler.getTaskPhaseForTrainingJob(ctx, taskCtx, trainingJob)
-		assert.Nil(t, err)
-		assert.Equal(t, phaseInfo.Phase(), pluginsCore.PhasePermanentFailure)
-		assert.Equal(t, phaseInfo.Err().GetKind(), flyteIdlCore.ExecutionError_USER)
-		assert.Equal(t, phaseInfo.Err().GetCode(), sagemaker.TrainingJobStatusFailed)
-		assert.Equal(t, phaseInfo.Err().GetMessage(), "")
-	})
-	t.Run("TrainingJobStatusFailed should be a permanent failure", func(t *testing.T) {
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-		trainingJob.Status.TrainingJobStatus = sagemaker.TrainingJobStatusStopped
-
-		phaseInfo, err := awsSageMakerTrainingJobHandler.getTaskPhaseForTrainingJob(ctx, taskCtx, trainingJob)
-		assert.Nil(t, err)
-		assert.Equal(t, phaseInfo.Phase(), pluginsCore.PhaseRetryableFailure)
-		assert.Equal(t, phaseInfo.Err().GetKind(), flyteIdlCore.ExecutionError_USER)
-		assert.Equal(t, phaseInfo.Err().GetCode(), taskError.DownstreamSystemError)
-		// We have a default message for TrainingJobStatusStopped
-		assert.Equal(t, phaseInfo.Err().GetMessage(), "Training Job Stopped")
-	})
-}
-
-func Test_awsSagemakerPlugin_getEventInfoForTrainingJob(t *testing.T) {
-	// Default config does not contain a roleAnnotationKey -> expecting to get the role from default config
-	ctx := context.TODO()
-	defaultCfg := config.GetSagemakerConfig()
-	defer func() {
-		_ = config.SetSagemakerConfig(defaultCfg)
-	}()
-
-	t.Run("get event info should return correctly formatted log links for training job", func(t *testing.T) {
-		// Injecting a config which contains a mismatched roleAnnotationKey -> expecting to get the role from the config
-		configAccessor := viper.NewAccessor(stdConfig.Options{
-			StrictMode: true,
-			// Use a different
-			SearchPaths: []string{"testdata/config2.yaml"},
-		})
-
-		err := configAccessor.UpdateConfig(context.TODO())
-		assert.NoError(t, err)
-
-		awsSageMakerTrainingJobHandler := awsSagemakerPlugin{TaskType: trainingJobTaskType}
-
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_XGBOOST, "0.90", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job", tjObj)
-		taskCtx := generateMockTrainingJobTaskContext(taskTemplate, false)
-		trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, taskCtx)
-		assert.NoError(t, err)
-		assert.NotNil(t, trainingJobResource)
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-
-		taskInfo, err := awsSageMakerTrainingJobHandler.getEventInfoForTrainingJob(ctx, trainingJob)
-		if err != nil {
-			panic(err)
-		}
-
-		expectedTaskLogs := []*flyteIdlCore.TaskLog{
-			{
-				Uri: fmt.Sprintf("https://%s.console.aws.amazon.com/cloudwatch/home?region=%s#logStream:group=/aws/sagemaker/TrainingJobs;prefix=%s;streamFilter=typeLogStreamPrefix",
-					"us-west-2", "us-west-2", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName()),
-				Name:          CloudWatchLogLinkName,
-				MessageFormat: flyteIdlCore.TaskLog_JSON,
-			},
-			{
-				Uri: fmt.Sprintf("https://%s.console.aws.amazon.com/sagemaker/home?region=%s#/%s/%s",
-					"us-west-2", "us-west-2", "jobs", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName()),
-				Name:          TrainingJobSageMakerLinkName,
-				MessageFormat: flyteIdlCore.TaskLog_UNKNOWN,
-			},
-		}
-
-		expectedCustomInfo, _ := utils.MarshalObjToStruct(map[string]string{})
-		assert.Equal(t,
-			func(tis []*flyteIdlCore.TaskLog) []flyteIdlCore.TaskLog {
-				ret := make([]flyteIdlCore.TaskLog, 0, len(tis))
-				for _, ti := range tis {
-					ret = append(ret, *ti)
-				}
-				return ret
-			}(expectedTaskLogs),
-			func(tis []*flyteIdlCore.TaskLog) []flyteIdlCore.TaskLog {
-				ret := make([]flyteIdlCore.TaskLog, 0, len(tis))
-				for _, ti := range tis {
-					ret = append(ret, *ti)
-				}
-				return ret
-			}(taskInfo.Logs))
-		if diff := deep.Equal(expectedCustomInfo, taskInfo.CustomInfo); diff != nil {
-			assert.FailNow(t, "Should be equal.", "Diff: %v", diff)
-		}
-		assert.Len(t, taskInfo.ExternalResources, 1)
-		assert.Equal(t, taskInfo.ExternalResources[0].ExternalID, "some-acceptable-name")
-	})
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/config/config.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/config/config.go
deleted file mode 100644
index 48c4d1ca61..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/config/config.go
+++ /dev/null
@@ -1,66 +0,0 @@
-package config
-
-import pluginsConfig "github.com/flyteorg/flyte/flyteplugins/go/tasks/config"
-
-//go:generate pflags Config --default-var=defaultConfig
-
-const sagemakerConfigSectionKey = "sagemaker"
-
-var (
-	defaultConfig = Config{
-		RoleArn: "default_role",
-		Region:  "us-east-1",
-		// https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-		PrebuiltAlgorithms: []PrebuiltAlgorithmConfig{
-			{
-				Name: "xgboost",
-				RegionalConfig: []RegionalConfig{
-					{
-						Region: "us-east-1",
-						VersionConfigs: []VersionConfig{
-							{
-								Version: "0.90",
-								Image:   "683313688378.dkr.ecr.us-east-1.amazonaws.com/sagemaker-xgboost:0.90-2-cpu-py3",
-							},
-						},
-					},
-				},
-			},
-		},
-	}
-
-	sagemakerConfigSection = pluginsConfig.MustRegisterSubSection(sagemakerConfigSectionKey, &defaultConfig)
-)
-
-// Sagemaker plugin configs
-type Config struct {
-	RoleArn            string                    `json:"roleArn" pflag:",The role the SageMaker plugin uses to communicate with the SageMaker service"`
-	Region             string                    `json:"region" pflag:",The AWS region the SageMaker plugin communicates to"`
-	RoleAnnotationKey  string                    `json:"roleAnnotationKey" pflag:",Map key to use to lookup role from task annotations."`
-	PrebuiltAlgorithms []PrebuiltAlgorithmConfig `json:"prebuiltAlgorithms" pflag:"-,A List of PrebuiltAlgorithm configs"`
-}
-type PrebuiltAlgorithmConfig struct {
-	Name           string           `json:"name" pflag:",The name of the ML algorithm. Should match Sagemaker"`
-	RegionalConfig []RegionalConfig `json:"regionalConfigs" pflag:"-,Per region specific configuration for this algorithm"`
-}
-type RegionalConfig struct {
-	Region         string          `json:"region" pflag:",Region for which this config is applicable"`
-	VersionConfigs []VersionConfig `json:"versionConfigs" pflag:",Configuration for various versions of the algorithms'"`
-}
-type VersionConfig struct {
-	Version string `json:"version" pflag:",version of the algorithm"`
-	Image   string `json:"image" pflag:",Image URI of the algorithm"`
-}
-
-// Retrieves the current config value or default.
-func GetSagemakerConfig() *Config {
-	return sagemakerConfigSection.GetConfig().(*Config)
-}
-
-func SetSagemakerConfig(cfg *Config) error {
-	return sagemakerConfigSection.SetConfig(cfg)
-}
-
-func ResetSagemakerConfig() error {
-	return sagemakerConfigSection.SetConfig(&defaultConfig)
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/config/config_flags.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/config/config_flags.go
deleted file mode 100755
index 8978fa6f44..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/config/config_flags.go
+++ /dev/null
@@ -1,57 +0,0 @@
-// Code generated by go generate; DO NOT EDIT.
-// This file was generated by robots.
-
-package config
-
-import (
-	"encoding/json"
-	"reflect"
-
-	"fmt"
-
-	"github.com/spf13/pflag"
-)
-
-// If v is a pointer, it will get its element value or the zero value of the element type.
-// If v is not a pointer, it will return it as is.
-func (Config) elemValueOrNil(v interface{}) interface{} {
-	if t := reflect.TypeOf(v); t.Kind() == reflect.Ptr {
-		if reflect.ValueOf(v).IsNil() {
-			return reflect.Zero(t.Elem()).Interface()
-		} else {
-			return reflect.ValueOf(v).Interface()
-		}
-	} else if v == nil {
-		return reflect.Zero(t).Interface()
-	}
-
-	return v
-}
-
-func (Config) mustJsonMarshal(v interface{}) string {
-	raw, err := json.Marshal(v)
-	if err != nil {
-		panic(err)
-	}
-
-	return string(raw)
-}
-
-func (Config) mustMarshalJSON(v json.Marshaler) string {
-	raw, err := v.MarshalJSON()
-	if err != nil {
-		panic(err)
-	}
-
-	return string(raw)
-}
-
-// GetPFlagSet will return strongly types pflags for all fields in Config and its nested types. The format of the
-// flags is json-name.json-sub-name... etc.
-func (cfg Config) GetPFlagSet(prefix string) *pflag.FlagSet {
-	cmdFlags := pflag.NewFlagSet("Config", pflag.ExitOnError)
-	cmdFlags.String(fmt.Sprintf("%v%v", prefix, "roleArn"), defaultConfig.RoleArn, "The role the SageMaker plugin uses to communicate with the SageMaker service")
-	cmdFlags.String(fmt.Sprintf("%v%v", prefix, "region"), defaultConfig.Region, "The AWS region the SageMaker plugin communicates to")
-	cmdFlags.String(fmt.Sprintf("%v%v", prefix, "roleAnnotationKey"), defaultConfig.RoleAnnotationKey, "Map key to use to lookup role from task annotations.")
-	return cmdFlags
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/config/config_flags_test.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/config/config_flags_test.go
deleted file mode 100755
index ac9db85468..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/config/config_flags_test.go
+++ /dev/null
@@ -1,144 +0,0 @@
-// Code generated by go generate; DO NOT EDIT.
-// This file was generated by robots.
-
-package config
-
-import (
-	"encoding/json"
-	"fmt"
-	"reflect"
-	"strings"
-	"testing"
-
-	"github.com/mitchellh/mapstructure"
-	"github.com/stretchr/testify/assert"
-)
-
-var dereferencableKindsConfig = map[reflect.Kind]struct{}{
-	reflect.Array: {}, reflect.Chan: {}, reflect.Map: {}, reflect.Ptr: {}, reflect.Slice: {},
-}
-
-// Checks if t is a kind that can be dereferenced to get its underlying type.
-func canGetElementConfig(t reflect.Kind) bool {
-	_, exists := dereferencableKindsConfig[t]
-	return exists
-}
-
-// This decoder hook tests types for json unmarshaling capability. If implemented, it uses json unmarshal to build the
-// object. Otherwise, it'll just pass on the original data.
-func jsonUnmarshalerHookConfig(_, to reflect.Type, data interface{}) (interface{}, error) {
-	unmarshalerType := reflect.TypeOf((*json.Unmarshaler)(nil)).Elem()
-	if to.Implements(unmarshalerType) || reflect.PtrTo(to).Implements(unmarshalerType) ||
-		(canGetElementConfig(to.Kind()) && to.Elem().Implements(unmarshalerType)) {
-
-		raw, err := json.Marshal(data)
-		if err != nil {
-			fmt.Printf("Failed to marshal Data: %v. Error: %v. Skipping jsonUnmarshalHook", data, err)
-			return data, nil
-		}
-
-		res := reflect.New(to).Interface()
-		err = json.Unmarshal(raw, &res)
-		if err != nil {
-			fmt.Printf("Failed to umarshal Data: %v. Error: %v. Skipping jsonUnmarshalHook", data, err)
-			return data, nil
-		}
-
-		return res, nil
-	}
-
-	return data, nil
-}
-
-func decode_Config(input, result interface{}) error {
-	config := &mapstructure.DecoderConfig{
-		TagName:          "json",
-		WeaklyTypedInput: true,
-		Result:           result,
-		DecodeHook: mapstructure.ComposeDecodeHookFunc(
-			mapstructure.StringToTimeDurationHookFunc(),
-			mapstructure.StringToSliceHookFunc(","),
-			jsonUnmarshalerHookConfig,
-		),
-	}
-
-	decoder, err := mapstructure.NewDecoder(config)
-	if err != nil {
-		return err
-	}
-
-	return decoder.Decode(input)
-}
-
-func join_Config(arr interface{}, sep string) string {
-	listValue := reflect.ValueOf(arr)
-	strs := make([]string, 0, listValue.Len())
-	for i := 0; i < listValue.Len(); i++ {
-		strs = append(strs, fmt.Sprintf("%v", listValue.Index(i)))
-	}
-
-	return strings.Join(strs, sep)
-}
-
-func testDecodeJson_Config(t *testing.T, val, result interface{}) {
-	assert.NoError(t, decode_Config(val, result))
-}
-
-func testDecodeRaw_Config(t *testing.T, vStringSlice, result interface{}) {
-	assert.NoError(t, decode_Config(vStringSlice, result))
-}
-
-func TestConfig_GetPFlagSet(t *testing.T) {
-	val := Config{}
-	cmdFlags := val.GetPFlagSet("")
-	assert.True(t, cmdFlags.HasFlags())
-}
-
-func TestConfig_SetFlags(t *testing.T) {
-	actual := Config{}
-	cmdFlags := actual.GetPFlagSet("")
-	assert.True(t, cmdFlags.HasFlags())
-
-	t.Run("Test_roleArn", func(t *testing.T) {
-
-		t.Run("Override", func(t *testing.T) {
-			testValue := "1"
-
-			cmdFlags.Set("roleArn", testValue)
-			if vString, err := cmdFlags.GetString("roleArn"); err == nil {
-				testDecodeJson_Config(t, fmt.Sprintf("%v", vString), &actual.RoleArn)
-
-			} else {
-				assert.FailNow(t, err.Error())
-			}
-		})
-	})
-	t.Run("Test_region", func(t *testing.T) {
-
-		t.Run("Override", func(t *testing.T) {
-			testValue := "1"
-
-			cmdFlags.Set("region", testValue)
-			if vString, err := cmdFlags.GetString("region"); err == nil {
-				testDecodeJson_Config(t, fmt.Sprintf("%v", vString), &actual.Region)
-
-			} else {
-				assert.FailNow(t, err.Error())
-			}
-		})
-	})
-	t.Run("Test_roleAnnotationKey", func(t *testing.T) {
-
-		t.Run("Override", func(t *testing.T) {
-			testValue := "1"
-
-			cmdFlags.Set("roleAnnotationKey", testValue)
-			if vString, err := cmdFlags.GetString("roleAnnotationKey"); err == nil {
-				testDecodeJson_Config(t, fmt.Sprintf("%v", vString), &actual.RoleAnnotationKey)
-
-			} else {
-				assert.FailNow(t, err.Error())
-			}
-		})
-	})
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/constants.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/constants.go
deleted file mode 100644
index a0f3704fd2..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/constants.go
+++ /dev/null
@@ -1,51 +0,0 @@
-package sagemaker
-
-const (
-	trainingJobTaskPluginID = "sagemaker_training"
-	trainingJobTaskType     = "sagemaker_training_job_task"
-)
-
-const (
-	customTrainingJobTaskPluginID = "sagemaker_custom_training"
-	customTrainingJobTaskType     = "sagemaker_custom_training_job_task"
-)
-
-const (
-	hyperparameterTuningJobTaskPluginID = "sagemaker_hyperparameter_tuning"
-	hyperparameterTuningJobTaskType     = "sagemaker_hyperparameter_tuning_job_task"
-)
-
-const (
-	TEXTCSVInputContentType string = "text/csv"
-)
-
-const (
-	FlyteSageMakerEnvVarKeyPrefix         string = "__FLYTE_ENV_VAR_"
-	FlyteSageMakerKeySuffix               string = "__"
-	FlyteSageMakerCmdKeyPrefix            string = "__FLYTE_CMD_"
-	FlyteSageMakerCmdDummyValue           string = "__FLYTE_CMD_DUMMY_VALUE__"
-	FlyteSageMakerEnvVarKeyStatsdDisabled string = "FLYTE_STATSD_DISABLED"
-	SageMakerMpiEnableEnvVarName          string = "sagemaker_mpi_enabled"
-)
-
-const (
-	TrainingJobOutputPathSubDir    = "training_outputs"
-	HyperparameterOutputPathSubDir = "hyperparameter_tuning_outputs"
-)
-
-const (
-	// These constants are the default input channel names for built-in algorithms
-	// When dealing with built-in algorithm training tasks, the plugin would assume these inputs exist and
-	// access these keys in the input literal map
-	// The same keys (except for the static hyperparameter key) would also be used when filling out the inputDataConfig fields of the CRD
-	TrainPredefinedInputVariable                 = "train"
-	ValidationPredefinedInputVariable            = "validation"
-	StaticHyperparametersPredefinedInputVariable = "static_hyperparameters"
-)
-
-const (
-	CloudWatchLogLinkName                    = "CloudWatch Logs"
-	TrainingJobSageMakerLinkName             = "SageMaker Built-in Algorithm Training Job"
-	CustomTrainingJobSageMakerLinkName       = "SageMaker Custom Training Job"
-	HyperparameterTuningJobSageMakerLinkName = "SageMaker Hyperparameter Tuning Job"
-)
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/custom_training.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/custom_training.go
deleted file mode 100644
index fa80bbadf5..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/custom_training.go
+++ /dev/null
@@ -1,217 +0,0 @@
-package sagemaker
-
-import (
-	"context"
-	"fmt"
-	"strconv"
-	"strings"
-	"time"
-
-	commonv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/common"
-	trainingjobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/trainingjob"
-	"github.com/aws/aws-sdk-go/service/sagemaker"
-	"sigs.k8s.io/controller-runtime/pkg/client"
-
-	flyteIdlCore "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	flyteSageMakerIdl "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker"
-	pluginErrors "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors"
-	taskError "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors"
-	pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/ioutils"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/k8s"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/utils"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/sagemaker/config"
-	"github.com/flyteorg/flyte/flytestdlib/logger"
-)
-
-func (m awsSagemakerPlugin) buildResourceForCustomTrainingJob(
-	ctx context.Context, taskCtx pluginsCore.TaskExecutionContext) (client.Object, error) {
-
-	logger.Infof(ctx, "Building a training job resource for task [%v]", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName())
-	taskTemplate, err := getTaskTemplate(ctx, taskCtx)
-	if err != nil {
-		return nil, err
-	}
-
-	// Unmarshal the custom field of the task template back into the Hyperparameter Tuning Job struct generated in flyteidl
-	sagemakerTrainingJob := flyteSageMakerIdl.TrainingJob{}
-	err = utils.UnmarshalStruct(taskTemplate.GetCustom(), &sagemakerTrainingJob)
-	if err != nil {
-
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "invalid TrainingJob task specification: not able to unmarshal the custom field to [%s]", m.TaskType)
-	}
-
-	if sagemakerTrainingJob.GetAlgorithmSpecification() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "The unmarshaled training job does not have a AlgorithmSpecification field")
-	}
-	if sagemakerTrainingJob.GetAlgorithmSpecification().GetAlgorithmName() != flyteSageMakerIdl.AlgorithmName_CUSTOM {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "The algorithm name [%v] is not supported by the custom training job plugin",
-			sagemakerTrainingJob.GetAlgorithmSpecification().GetAlgorithmName().String())
-	}
-
-	inputChannels := make([]commonv1.Channel, 0)
-	inputModeString := strings.Title(strings.ToLower(sagemakerTrainingJob.GetAlgorithmSpecification().GetInputMode().String()))
-
-	jobName := taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName()
-	outputPath := taskCtx.OutputWriter().GetOutputPrefixPath().String()
-
-	if taskTemplate.GetContainer() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "The task template points to a nil container")
-	}
-
-	if taskTemplate.GetContainer().GetImage() == "" {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "Invalid image of the container")
-	}
-
-	trainingImageStr := taskTemplate.GetContainer().GetImage()
-
-	cfg := config.GetSagemakerConfig()
-
-	var metricDefinitions []commonv1.MetricDefinition
-	idlMetricDefinitions := sagemakerTrainingJob.GetAlgorithmSpecification().GetMetricDefinitions()
-	for _, md := range idlMetricDefinitions {
-		metricDefinitions = append(metricDefinitions,
-			commonv1.MetricDefinition{Name: ToStringPtr(md.Name), Regex: ToStringPtr(md.Regex)})
-	}
-
-	// TODO: When dealing with HPO job, we will need to deal with the following
-	// jobOutputPath := NewJobOutputPaths(ctx, taskCtx.DataStore(), taskCtx.OutputWriter().GetOutputPrefixPath(), jobName)
-
-	hyperParameters, err := injectArgsAndEnvVars(ctx, taskCtx, taskTemplate)
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "Failed to inject the task template's container env vars to the hyperparameter list")
-	}
-
-	// Statsd is not available in SM because we are not allowed kick off a side car container nor are we allowed to customize our own AMI in an SM environment
-	// Therefore we need to inject a env var to disable statsd for sagemaker tasks
-	statsdDisableEnvVarName := fmt.Sprintf("%s%s%s", FlyteSageMakerEnvVarKeyPrefix, FlyteSageMakerEnvVarKeyStatsdDisabled, FlyteSageMakerKeySuffix)
-	logger.Infof(ctx, "Injecting %v=%v to force disable statsd for SageMaker tasks only", statsdDisableEnvVarName, strconv.FormatBool(true))
-	hyperParameters = append(hyperParameters, &commonv1.KeyValuePair{
-		Name:  statsdDisableEnvVarName,
-		Value: strconv.FormatBool(true),
-	})
-
-	if sagemakerTrainingJob.GetTrainingJobResourceConfig() == nil {
-		logger.Errorf(ctx, "TrainingJobResourceConfig is nil")
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "TrainingJobResourceConfig is nil")
-	}
-
-	if sagemakerTrainingJob.GetTrainingJobResourceConfig().GetDistributedProtocol() == flyteSageMakerIdl.DistributedProtocol_MPI {
-		// inject sagemaker_mpi_enabled=true into hyperparameters if the user code designates MPI as its distributed training framework
-		logger.Infof(ctx, "MPI is enabled by the user. TrainingJob.TrainingJobResourceConfig.DistributedProtocol=[%v]", sagemakerTrainingJob.GetTrainingJobResourceConfig().GetDistributedProtocol().String())
-		hyperParameters = append(hyperParameters, &commonv1.KeyValuePair{
-			Name:  SageMakerMpiEnableEnvVarName,
-			Value: strconv.FormatBool(true),
-		})
-	} else {
-		// default value: injecting sagemaker_mpi_enabled=false
-		logger.Infof(ctx, "Distributed protocol is unspecified or a non-MPI value [%v] in the training job", sagemakerTrainingJob.GetTrainingJobResourceConfig().GetDistributedProtocol())
-		hyperParameters = append(hyperParameters, &commonv1.KeyValuePair{
-			Name:  SageMakerMpiEnableEnvVarName,
-			Value: strconv.FormatBool(false),
-		})
-	}
-	logger.Infof(ctx, "The Sagemaker TrainingJob Task plugin received static hyperparameters [%v]", hyperParameters)
-
-	trainingJob := &trainingjobv1.TrainingJob{
-		Spec: trainingjobv1.TrainingJobSpec{
-			AlgorithmSpecification: &commonv1.AlgorithmSpecification{
-				// If the specify a value for this AlgorithmName parameter, the user can't specify a value for TrainingImage.
-				// in this Flyte plugin, we always use the algorithm name and version the user provides via Flytekit to map to an image
-				// so we intentionally leave this field nil
-				AlgorithmName:     nil,
-				TrainingImage:     ToStringPtr(trainingImageStr),
-				TrainingInputMode: commonv1.TrainingInputMode(inputModeString),
-				MetricDefinitions: metricDefinitions,
-			},
-			// The support of spot training will come in a later version
-			EnableManagedSpotTraining: nil,
-			HyperParameters:           hyperParameters,
-			InputDataConfig:           inputChannels,
-			OutputDataConfig: &commonv1.OutputDataConfig{
-				S3OutputPath: ToStringPtr(outputPath),
-			},
-			CheckpointConfig: nil,
-			ResourceConfig: &commonv1.ResourceConfig{
-				InstanceType:   sagemakerTrainingJob.GetTrainingJobResourceConfig().GetInstanceType(),
-				InstanceCount:  ToInt64Ptr(sagemakerTrainingJob.GetTrainingJobResourceConfig().GetInstanceCount()),
-				VolumeSizeInGB: ToInt64Ptr(sagemakerTrainingJob.GetTrainingJobResourceConfig().GetVolumeSizeInGb()),
-				VolumeKmsKeyId: ToStringPtr(""), // TODO: Not yet supported. Need to add to proto and flytekit in the future
-			},
-			RoleArn: ToStringPtr(cfg.RoleArn),
-			Region:  ToStringPtr(cfg.Region),
-			StoppingCondition: &commonv1.StoppingCondition{
-				MaxRuntimeInSeconds:  ToInt64Ptr(86400), // TODO: decide how to coordinate this and Flyte's timeout
-				MaxWaitTimeInSeconds: nil,               // TODO: decide how to coordinate this and Flyte's timeout and queueing budget
-			},
-			TensorBoardOutputConfig: nil,
-			Tags:                    nil,
-			TrainingJobName:         &jobName,
-		},
-	}
-	logger.Infof(ctx, "Successfully built a custom training job resource for task [%v]", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName())
-	return trainingJob, nil
-}
-
-func (m awsSagemakerPlugin) getTaskPhaseForCustomTrainingJob(
-	ctx context.Context, pluginContext k8s.PluginContext, trainingJob *trainingjobv1.TrainingJob) (pluginsCore.PhaseInfo, error) {
-
-	logger.Infof(ctx, "Getting task phase for sagemaker training job [%v]", trainingJob.Status.SageMakerTrainingJobName)
-	info, err := m.getEventInfoForCustomTrainingJob(ctx, trainingJob)
-	if err != nil {
-		return pluginsCore.PhaseInfoUndefined, pluginErrors.Wrapf(pluginErrors.RuntimeFailure, err, "Failed to get event info for the job")
-	}
-
-	occurredAt := time.Now()
-
-	switch trainingJob.Status.TrainingJobStatus {
-	case ReconcilingTrainingJobStatus:
-		logger.Errorf(ctx, "Job stuck in reconciling status, assuming retryable failure [%s]", trainingJob.Status.Additional)
-		// TODO talk to AWS about why there cannot be an explicit condition that signals AWS API call pluginErrors
-		execError := &flyteIdlCore.ExecutionError{
-			Message: trainingJob.Status.Additional,
-			Kind:    flyteIdlCore.ExecutionError_USER,
-			Code:    ReconcilingTrainingJobStatus,
-		}
-		return pluginsCore.PhaseInfoFailed(pluginsCore.PhaseRetryableFailure, execError, info), nil
-	case sagemaker.TrainingJobStatusFailed:
-		execError := &flyteIdlCore.ExecutionError{
-			Message: trainingJob.Status.Additional,
-			Kind:    flyteIdlCore.ExecutionError_USER,
-			Code:    sagemaker.TrainingJobStatusFailed,
-		}
-		return pluginsCore.PhaseInfoFailed(pluginsCore.PhasePermanentFailure, execError, info), nil
-	case sagemaker.TrainingJobStatusStopped:
-		return pluginsCore.PhaseInfoRetryableFailure(taskError.DownstreamSystemError, "Training Job Stopped", info), nil
-	case sagemaker.TrainingJobStatusCompleted:
-		// Now that it is a success we will set the outputs as expected by the task
-
-		logger.Infof(ctx, "Looking for the output.pb under %s", pluginContext.OutputWriter().GetOutputPrefixPath())
-		outputReader := ioutils.NewRemoteFileOutputReader(ctx, pluginContext.DataStore(), pluginContext.OutputWriter(), pluginContext.MaxDatasetSizeBytes())
-
-		// Instantiate a output reader with the literal map, and write the output to the remote location referred to by the OutputWriter
-		if err := pluginContext.OutputWriter().Put(ctx, outputReader); err != nil {
-			return pluginsCore.PhaseInfoUndefined, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "Failed to write output to the remote location")
-		}
-		logger.Debugf(ctx, "Successfully produced and returned outputs")
-		return pluginsCore.PhaseInfoSuccess(info), nil
-	case "":
-		return pluginsCore.PhaseInfoQueued(occurredAt, pluginsCore.DefaultPhaseVersion, "job submitted"), nil
-	}
-
-	return pluginsCore.PhaseInfoRunning(pluginsCore.DefaultPhaseVersion, info), nil
-}
-
-func (m awsSagemakerPlugin) getEventInfoForCustomTrainingJob(ctx context.Context, trainingJob *trainingjobv1.TrainingJob) (*pluginsCore.TaskInfo, error) {
-
-	var jobRegion, jobName, jobTypeInURL, sagemakerLinkName string
-	jobRegion = *trainingJob.Spec.Region
-	jobName = *trainingJob.Spec.TrainingJobName
-	jobTypeInURL = "jobs"
-	sagemakerLinkName = CustomTrainingJobSageMakerLinkName
-
-	logger.Infof(ctx, "Getting event information for SageMaker CustomTrainingJob task, job region: [%v], job name: [%v], "+
-		"job type in url: [%v], sagemaker link name: [%v]", jobRegion, jobName, jobTypeInURL, sagemakerLinkName)
-
-	return createTaskInfo(ctx, jobRegion, jobName, jobTypeInURL, sagemakerLinkName)
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/custom_training_test.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/custom_training_test.go
deleted file mode 100644
index 094a9e5b01..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/custom_training_test.go
+++ /dev/null
@@ -1,297 +0,0 @@
-package sagemaker
-
-import (
-	"context"
-	"fmt"
-	"strconv"
-	"testing"
-
-	commonv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/common"
-	trainingjobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/trainingjob"
-	"github.com/aws/aws-sdk-go/service/sagemaker"
-	"github.com/go-test/deep"
-	"github.com/stretchr/testify/assert"
-
-	flyteIdlCore "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	sagemakerIdl "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker"
-	pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/utils"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/sagemaker/config"
-	stdConfig "github.com/flyteorg/flyte/flytestdlib/config"
-	"github.com/flyteorg/flyte/flytestdlib/config/viper"
-)
-
-func Test_awsSagemakerPlugin_BuildResourceForCustomTrainingJob(t *testing.T) {
-	// Default config does not contain a roleAnnotationKey -> expecting to get the role from default config
-	ctx := context.TODO()
-	defaultCfg := config.GetSagemakerConfig()
-	defer func() {
-		_ = config.SetSagemakerConfig(defaultCfg)
-	}()
-	t.Run("In a custom training job we should see the FLYTE_SAGEMAKER_CMD being injected", func(t *testing.T) {
-		// Injecting a config which contains a mismatched roleAnnotationKey -> expecting to get the role from the config
-		configAccessor := viper.NewAccessor(stdConfig.Options{
-			StrictMode: true,
-			// Use a different
-			SearchPaths: []string{"testdata/config2.yaml"},
-		})
-
-		err := configAccessor.UpdateConfig(context.TODO())
-		assert.NoError(t, err)
-
-		awsSageMakerTrainingJobHandler := awsSagemakerPlugin{TaskType: customTrainingJobTaskType}
-
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_CUSTOM, "0.90", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job", tjObj)
-
-		trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, generateMockCustomTrainingJobTaskContext(taskTemplate, false))
-		assert.NoError(t, err)
-		assert.NotNil(t, trainingJobResource)
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-		assert.Equal(t, "config_role", *trainingJob.Spec.RoleArn)
-		//assert.Equal(t, 1, len(trainingJob.Spec.HyperParameters))
-		fmt.Printf("%v", trainingJob.Spec.HyperParameters)
-		expectedHPs := []*commonv1.KeyValuePair{
-			{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 0, "service_venv", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-			{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 1, "pyflyte-execute", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-			{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 2, "--test-opt1", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-			{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 3, "value1", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-			{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 4, "--test-opt2", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-			{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 5, "value2", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-			{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 6, "--test-flag", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-			{Name: fmt.Sprintf("%s%s%s", FlyteSageMakerEnvVarKeyPrefix, "Env_Var", FlyteSageMakerKeySuffix), Value: "Env_Val"},
-			{Name: fmt.Sprintf("%s%s%s", FlyteSageMakerEnvVarKeyPrefix, FlyteSageMakerEnvVarKeyStatsdDisabled, FlyteSageMakerKeySuffix), Value: strconv.FormatBool(true)},
-			{Name: SageMakerMpiEnableEnvVarName, Value: strconv.FormatBool(false)},
-		}
-		assert.Equal(t, len(expectedHPs), len(trainingJob.Spec.HyperParameters))
-		for i := range expectedHPs {
-			assert.Equal(t, expectedHPs[i].Name, trainingJob.Spec.HyperParameters[i].Name)
-			assert.Equal(t, expectedHPs[i].Value, trainingJob.Spec.HyperParameters[i].Value)
-		}
-
-		assert.Equal(t, testImage, *trainingJob.Spec.AlgorithmSpecification.TrainingImage)
-
-		// Since the distributed protocol is UNSPECIFIED, we should find sagemaker_mpi_enabled=false in the hyperparameters
-		count := 0
-		for i := range trainingJob.Spec.HyperParameters {
-			if trainingJob.Spec.HyperParameters[i].Name == SageMakerMpiEnableEnvVarName && trainingJob.Spec.HyperParameters[i].Value == strconv.FormatBool(false) {
-				count++
-			}
-		}
-		assert.Equal(t, 1, count)
-	})
-
-	t.Run("In a custom training job when users specify the MPI distributed protocol, even when the instance count is 1, we should find sagemaker_mpi_enabled=true in the hyperparameters", func(t *testing.T) {
-		// Injecting a config which contains a mismatched roleAnnotationKey -> expecting to get the role from the config
-		configAccessor := viper.NewAccessor(stdConfig.Options{
-			StrictMode: true,
-			// Use a different
-			SearchPaths: []string{"testdata/config2.yaml"},
-		})
-
-		err := configAccessor.UpdateConfig(context.TODO())
-		assert.NoError(t, err)
-
-		awsSageMakerTrainingJobHandler := awsSagemakerPlugin{TaskType: customTrainingJobTaskType}
-
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_CUSTOM, "0.90", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_MPI)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job", tjObj)
-
-		trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, generateMockCustomTrainingJobTaskContext(taskTemplate, false))
-		assert.NoError(t, err)
-		assert.NotNil(t, trainingJobResource)
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-
-		count := 0
-		for i := range trainingJob.Spec.HyperParameters {
-			if trainingJob.Spec.HyperParameters[i].Name == SageMakerMpiEnableEnvVarName {
-				count++
-				assert.Equal(t, trainingJob.Spec.HyperParameters[i].Value, strconv.FormatBool(true))
-			}
-		}
-		assert.Equal(t, 1, count)
-	})
-
-	t.Run("When users specify the MPI distributed protocol, we should find sagemaker_mpi_enabled=true in the hyperparameters", func(t *testing.T) {
-		// Injecting a config which contains a mismatched roleAnnotationKey -> expecting to get the role from the config
-		configAccessor := viper.NewAccessor(stdConfig.Options{
-			StrictMode: true,
-			// Use a different
-			SearchPaths: []string{"testdata/config2.yaml"},
-		})
-
-		err := configAccessor.UpdateConfig(context.TODO())
-		assert.NoError(t, err)
-
-		awsSageMakerTrainingJobHandler := awsSagemakerPlugin{TaskType: customTrainingJobTaskType}
-
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_CUSTOM, "0.90", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 2, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_MPI)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job", tjObj)
-
-		trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, generateMockCustomTrainingJobTaskContext(taskTemplate, false))
-		assert.NoError(t, err)
-		assert.NotNil(t, trainingJobResource)
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-
-		count := 0
-		for i := range trainingJob.Spec.HyperParameters {
-			if trainingJob.Spec.HyperParameters[i].Name == SageMakerMpiEnableEnvVarName {
-				count++
-				assert.Equal(t, trainingJob.Spec.HyperParameters[i].Value, strconv.FormatBool(true))
-			}
-		}
-		assert.Equal(t, 1, count)
-	})
-}
-
-func Test_awsSagemakerPlugin_GetTaskPhaseForCustomTrainingJob(t *testing.T) {
-	ctx := context.TODO()
-	// Injecting a config which contains a mismatched roleAnnotationKey -> expecting to get the role from the config
-	configAccessor := viper.NewAccessor(stdConfig.Options{
-		StrictMode: true,
-		// Use a different
-		SearchPaths: []string{"testdata/config2.yaml"},
-	})
-
-	err := configAccessor.UpdateConfig(context.TODO())
-	assert.NoError(t, err)
-
-	awsSageMakerTrainingJobHandler := awsSagemakerPlugin{TaskType: customTrainingJobTaskType}
-
-	t.Run("TrainingJobStatusCompleted", func(t *testing.T) {
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_XGBOOST, "0.90", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job", tjObj)
-		taskCtx := generateMockCustomTrainingJobTaskContext(taskTemplate, false)
-		trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, taskCtx)
-		assert.Error(t, err)
-		assert.Nil(t, trainingJobResource)
-	})
-
-	t.Run("TrainingJobStatusCompleted", func(t *testing.T) {
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_CUSTOM, "", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job", tjObj)
-		taskCtx := generateMockCustomTrainingJobTaskContext(taskTemplate, false)
-		trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, taskCtx)
-		assert.NoError(t, err)
-		assert.NotNil(t, trainingJobResource)
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-
-		trainingJob.Status.TrainingJobStatus = sagemaker.TrainingJobStatusCompleted
-		phaseInfo, err := awsSageMakerTrainingJobHandler.getTaskPhaseForCustomTrainingJob(ctx, taskCtx, trainingJob)
-		assert.Nil(t, err)
-		assert.Equal(t, phaseInfo.Phase(), pluginsCore.PhaseSuccess)
-	})
-	t.Run("OutputWriter.Put returns an error", func(t *testing.T) {
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_CUSTOM, "", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job", tjObj)
-		taskCtx := generateMockCustomTrainingJobTaskContext(taskTemplate, true)
-		trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, taskCtx)
-		assert.NoError(t, err)
-		assert.NotNil(t, trainingJobResource)
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-
-		trainingJob.Status.TrainingJobStatus = sagemaker.TrainingJobStatusCompleted
-		phaseInfo, err := awsSageMakerTrainingJobHandler.getTaskPhaseForCustomTrainingJob(ctx, taskCtx, trainingJob)
-		assert.NotNil(t, err)
-		assert.Equal(t, phaseInfo.Phase(), pluginsCore.PhaseUndefined)
-	})
-}
-
-func Test_awsSagemakerPlugin_getEventInfoForCustomTrainingJob(t *testing.T) {
-	// Default config does not contain a roleAnnotationKey -> expecting to get the role from default config
-	ctx := context.TODO()
-	defaultCfg := config.GetSagemakerConfig()
-	defer func() {
-		_ = config.SetSagemakerConfig(defaultCfg)
-	}()
-
-	t.Run("get event info should return correctly formatted log links for custom training job", func(t *testing.T) {
-		// Injecting a config which contains a mismatched roleAnnotationKey -> expecting to get the role from the config
-		configAccessor := viper.NewAccessor(stdConfig.Options{
-			StrictMode: true,
-			// Use a different
-			SearchPaths: []string{"testdata/config2.yaml"},
-		})
-
-		err := configAccessor.UpdateConfig(context.TODO())
-		assert.NoError(t, err)
-
-		awsSageMakerTrainingJobHandler := awsSagemakerPlugin{TaskType: customTrainingJobTaskType}
-
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_CUSTOM, "", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job", tjObj)
-		taskCtx := generateMockCustomTrainingJobTaskContext(taskTemplate, false)
-		trainingJobResource, err := awsSageMakerTrainingJobHandler.BuildResource(ctx, taskCtx)
-		assert.NoError(t, err)
-		assert.NotNil(t, trainingJobResource)
-
-		trainingJob, ok := trainingJobResource.(*trainingjobv1.TrainingJob)
-		assert.True(t, ok)
-
-		taskInfo, err := awsSageMakerTrainingJobHandler.getEventInfoForCustomTrainingJob(ctx, trainingJob)
-		if err != nil {
-			panic(err)
-		}
-
-		expectedTaskLogs := []*flyteIdlCore.TaskLog{
-			{
-				Uri: fmt.Sprintf("https://%s.console.aws.amazon.com/cloudwatch/home?region=%s#logStream:group=/aws/sagemaker/TrainingJobs;prefix=%s;streamFilter=typeLogStreamPrefix",
-					"us-west-2", "us-west-2", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName()),
-				Name:          CloudWatchLogLinkName,
-				MessageFormat: flyteIdlCore.TaskLog_JSON,
-			},
-			{
-				Uri: fmt.Sprintf("https://%s.console.aws.amazon.com/sagemaker/home?region=%s#/%s/%s",
-					"us-west-2", "us-west-2", "jobs", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName()),
-				Name:          CustomTrainingJobSageMakerLinkName,
-				MessageFormat: flyteIdlCore.TaskLog_UNKNOWN,
-			},
-		}
-
-		expectedCustomInfo, _ := utils.MarshalObjToStruct(map[string]string{})
-		assert.Equal(t,
-			func(tis []*flyteIdlCore.TaskLog) []flyteIdlCore.TaskLog {
-				ret := make([]flyteIdlCore.TaskLog, 0, len(tis))
-				for _, ti := range tis {
-					ret = append(ret, *ti)
-				}
-				return ret
-			}(expectedTaskLogs),
-			func(tis []*flyteIdlCore.TaskLog) []flyteIdlCore.TaskLog {
-				ret := make([]flyteIdlCore.TaskLog, 0, len(tis))
-				for _, ti := range tis {
-					ret = append(ret, *ti)
-				}
-				return ret
-			}(taskInfo.Logs))
-		if diff := deep.Equal(expectedCustomInfo, taskInfo.CustomInfo); diff != nil {
-			assert.FailNow(t, "Should be equal.", "Diff: %v", diff)
-		}
-		assert.Len(t, taskInfo.ExternalResources, 1)
-		assert.Equal(t, taskInfo.ExternalResources[0].ExternalID, "some-acceptable-name")
-	})
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/hyperparameter_tuning.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/hyperparameter_tuning.go
deleted file mode 100644
index b233af182c..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/hyperparameter_tuning.go
+++ /dev/null
@@ -1,276 +0,0 @@
-package sagemaker
-
-import (
-	"context"
-	"strings"
-	"time"
-
-	commonv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/common"
-	hpojobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/hyperparametertuningjob"
-	"github.com/aws/aws-sdk-go/service/sagemaker"
-	"sigs.k8s.io/controller-runtime/pkg/client"
-
-	flyteIdlCore "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	flyteSageMakerIdl "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker"
-	pluginErrors "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors"
-	taskError "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors"
-	pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/ioutils"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/k8s"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/utils"
-	awsUtils "github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/awsutils"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/sagemaker/config"
-	"github.com/flyteorg/flyte/flytestdlib/logger"
-)
-
-const ReconcilingTuningJobStatus = "ReconcilingTuningJob"
-
-func (m awsSagemakerPlugin) buildResourceForHyperparameterTuningJob(
-	ctx context.Context, taskCtx pluginsCore.TaskExecutionContext) (client.Object, error) {
-
-	logger.Infof(ctx, "Building a hyperparameter tuning job resource for task [%v]", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName())
-
-	taskTemplate, err := getTaskTemplate(ctx, taskCtx)
-	if err != nil {
-		return nil, err
-	}
-
-	// Unmarshal the custom field of the task template back into the HyperparameterTuningJob struct generated in flyteidl
-	sagemakerHPOJob := flyteSageMakerIdl.HyperparameterTuningJob{}
-	err = utils.UnmarshalStruct(taskTemplate.GetCustom(), &sagemakerHPOJob)
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "invalid HyperparameterTuningJob task specification: not able to unmarshal the custom field to [%s]", hyperparameterTuningJobTaskType)
-	}
-	if sagemakerHPOJob.GetTrainingJob() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "Required field [TrainingJob] of the HyperparameterTuningJob does not exist")
-	}
-	if sagemakerHPOJob.GetTrainingJob().GetAlgorithmSpecification() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "Required field [AlgorithmSpecification] of the HyperparameterTuningJob's underlying TrainingJob does not exist")
-	}
-	if sagemakerHPOJob.GetTrainingJob().GetTrainingJobResourceConfig() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "Required field [TrainingJobResourceConfig] of the HyperparameterTuningJob's underlying TrainingJob does not exist")
-	}
-
-	taskInput, err := taskCtx.InputReader().Get(ctx)
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "unable to fetch task inputs")
-	}
-
-	// Get inputs from literals
-	inputLiterals := taskInput.GetLiterals()
-	err = checkIfRequiredInputLiteralsExist(inputLiterals,
-		[]string{TrainPredefinedInputVariable, ValidationPredefinedInputVariable, StaticHyperparametersPredefinedInputVariable})
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "Error occurred when checking if all the required inputs exist")
-	}
-
-	trainPathLiteral := inputLiterals[TrainPredefinedInputVariable]
-	validatePathLiteral := inputLiterals[ValidationPredefinedInputVariable]
-	staticHyperparamsLiteral := inputLiterals[StaticHyperparametersPredefinedInputVariable]
-	hpoJobConfigLiteral := inputLiterals["hyperparameter_tuning_job_config"]
-	if trainPathLiteral.GetScalar() == nil || trainPathLiteral.GetScalar().GetBlob() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "[%v] Input is required and should be of Type [Scalar.Blob]", TrainPredefinedInputVariable)
-	}
-	if validatePathLiteral.GetScalar() == nil || validatePathLiteral.GetScalar().GetBlob() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "[%v] Input is required and should be of Type [Scalar.Blob]", ValidationPredefinedInputVariable)
-	}
-	// Convert the hyperparameters to the spec value
-	staticHyperparams, err := convertStaticHyperparamsLiteralToSpecType(staticHyperparamsLiteral)
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "could not convert static hyperparameters to spec type")
-	}
-
-	// hyperparameter_tuning_job_config is marshaled into a struct in flytekit, so will have to unmarshal it back
-	hpoJobConfig, err := convertHyperparameterTuningJobConfigToSpecType(hpoJobConfigLiteral)
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "failed to convert hyperparameter tuning job config literal to spec type")
-	}
-
-	outputPath := createOutputPath(taskCtx.OutputWriter().GetRawOutputPrefix().String(), HyperparameterOutputPathSubDir)
-	if hpoJobConfig.GetTuningObjective() == nil {
-		return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "Required field [TuningObjective] does not exist")
-	}
-
-	// Deleting the conflicting static hyperparameters: if a hyperparameter exist in both the map of static hyperparameter
-	// and the map of the tunable hyperparameter inside the Hyperparameter Tuning Job Config, we delete the entry
-	// in the static map and let the one in the map of the tunable hyperparameters take precedence
-	staticHyperparams = deleteConflictingStaticHyperparameters(ctx, staticHyperparams, hpoJobConfig.GetHyperparameterRanges().GetParameterRangeMap())
-
-	jobName := taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName()
-
-	trainingImageStr, err := getTrainingJobImage(ctx, taskCtx, sagemakerHPOJob.GetTrainingJob())
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "failed to find the training image")
-	}
-
-	hpoJobParameterRanges := buildParameterRanges(ctx, inputLiterals)
-	logger.Infof(ctx, "The Sagemaker HyperparameterTuningJob Task plugin received the following inputs: \n"+
-		"static hyperparameters: [%v]\n"+
-		"hyperparameter tuning job config: [%v]\n"+
-		"parameter ranges: [%v]", staticHyperparams, hpoJobConfig, hpoJobParameterRanges)
-
-	cfg := config.GetSagemakerConfig()
-
-	var metricDefinitions []commonv1.MetricDefinition
-	idlMetricDefinitions := sagemakerHPOJob.GetTrainingJob().GetAlgorithmSpecification().GetMetricDefinitions()
-	for _, md := range idlMetricDefinitions {
-		metricDefinitions = append(metricDefinitions,
-			commonv1.MetricDefinition{Name: ToStringPtr(md.Name), Regex: ToStringPtr(md.Regex)})
-	}
-
-	apiContentType, err := getAPIContentType(sagemakerHPOJob.GetTrainingJob().GetAlgorithmSpecification().GetInputContentType())
-	if err != nil {
-		return nil, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "Unsupported input file type [%v]",
-			sagemakerHPOJob.GetTrainingJob().GetAlgorithmSpecification().GetInputContentType().String())
-	}
-
-	inputModeString := strings.Title(strings.ToLower(sagemakerHPOJob.GetTrainingJob().GetAlgorithmSpecification().GetInputMode().String()))
-	tuningStrategyString := strings.Title(strings.ToLower(hpoJobConfig.GetTuningStrategy().String()))
-	tuningObjectiveTypeString := strings.Title(strings.ToLower(hpoJobConfig.GetTuningObjective().GetObjectiveType().String()))
-	trainingJobEarlyStoppingTypeString := strings.Title(strings.ToLower(hpoJobConfig.TrainingJobEarlyStoppingType.String()))
-
-	role := awsUtils.GetRoleFromSecurityContext(cfg.RoleAnnotationKey, taskCtx.TaskExecutionMetadata())
-
-	if len(role) == 0 {
-		role = cfg.RoleArn
-	}
-
-	hpoJob := &hpojobv1.HyperparameterTuningJob{
-		Spec: hpojobv1.HyperparameterTuningJobSpec{
-			HyperParameterTuningJobName: &jobName,
-			HyperParameterTuningJobConfig: &commonv1.HyperParameterTuningJobConfig{
-				ResourceLimits: &commonv1.ResourceLimits{
-					MaxNumberOfTrainingJobs: ToInt64Ptr(sagemakerHPOJob.GetMaxNumberOfTrainingJobs()),
-					MaxParallelTrainingJobs: ToInt64Ptr(sagemakerHPOJob.GetMaxParallelTrainingJobs()),
-				},
-				Strategy: commonv1.HyperParameterTuningJobStrategyType(tuningStrategyString),
-				HyperParameterTuningJobObjective: &commonv1.HyperParameterTuningJobObjective{
-					Type:       commonv1.HyperParameterTuningJobObjectiveType(tuningObjectiveTypeString),
-					MetricName: ToStringPtr(hpoJobConfig.GetTuningObjective().GetMetricName()),
-				},
-				ParameterRanges:              hpoJobParameterRanges,
-				TrainingJobEarlyStoppingType: commonv1.TrainingJobEarlyStoppingType(trainingJobEarlyStoppingTypeString),
-			},
-			TrainingJobDefinition: &commonv1.HyperParameterTrainingJobDefinition{
-				StaticHyperParameters: staticHyperparams,
-				AlgorithmSpecification: &commonv1.HyperParameterAlgorithmSpecification{
-					TrainingImage:     ToStringPtr(trainingImageStr),
-					TrainingInputMode: commonv1.TrainingInputMode(inputModeString),
-					MetricDefinitions: metricDefinitions,
-					AlgorithmName:     nil,
-				},
-				InputDataConfig: []commonv1.Channel{
-					{
-						ChannelName: ToStringPtr(TrainPredefinedInputVariable),
-						DataSource: &commonv1.DataSource{
-							S3DataSource: &commonv1.S3DataSource{
-								S3DataType: "S3Prefix",
-								S3Uri:      ToStringPtr(trainPathLiteral.GetScalar().GetBlob().GetUri()),
-							},
-						},
-						ContentType: ToStringPtr(apiContentType), // TODO: can this be derived from the BlobMetadata
-						InputMode:   inputModeString,
-					},
-					{
-						ChannelName: ToStringPtr(ValidationPredefinedInputVariable),
-						DataSource: &commonv1.DataSource{
-							S3DataSource: &commonv1.S3DataSource{
-								S3DataType: "S3Prefix",
-								S3Uri:      ToStringPtr(validatePathLiteral.GetScalar().GetBlob().GetUri()),
-							},
-						},
-						ContentType: ToStringPtr(apiContentType), // TODO: can this be derived from the BlobMetadata
-						InputMode:   inputModeString,
-					},
-				},
-				OutputDataConfig: &commonv1.OutputDataConfig{
-					S3OutputPath: ToStringPtr(outputPath),
-				},
-				ResourceConfig: &commonv1.ResourceConfig{
-					InstanceType:   sagemakerHPOJob.GetTrainingJob().GetTrainingJobResourceConfig().GetInstanceType(),
-					InstanceCount:  ToInt64Ptr(sagemakerHPOJob.GetTrainingJob().GetTrainingJobResourceConfig().GetInstanceCount()),
-					VolumeSizeInGB: ToInt64Ptr(sagemakerHPOJob.GetTrainingJob().GetTrainingJobResourceConfig().GetVolumeSizeInGb()),
-					VolumeKmsKeyId: ToStringPtr(""), // TODO: Not yet supported. Need to add to proto and flytekit in the future
-				},
-				RoleArn: ToStringPtr(role),
-				StoppingCondition: &commonv1.StoppingCondition{
-					MaxRuntimeInSeconds:  ToInt64Ptr(86400),
-					MaxWaitTimeInSeconds: nil,
-				},
-			},
-			Region: ToStringPtr(cfg.Region),
-		},
-	}
-
-	logger.Infof(ctx, "Successfully built a hyperparameter tuning job resource for task [%v]", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName())
-	return hpoJob, nil
-}
-
-func (m awsSagemakerPlugin) getTaskPhaseForHyperparameterTuningJob(
-	ctx context.Context, pluginContext k8s.PluginContext, hpoJob *hpojobv1.HyperparameterTuningJob) (pluginsCore.PhaseInfo, error) {
-
-	logger.Infof(ctx, "Getting task phase for hyperparameter tuning job [%v]", hpoJob.Status.SageMakerHyperParameterTuningJobName)
-	info, err := m.getEventInfoForHyperparameterTuningJob(ctx, hpoJob)
-	if err != nil {
-		return pluginsCore.PhaseInfoUndefined, pluginErrors.Wrapf(pluginErrors.RuntimeFailure, err, "Failed to get event info for the job")
-	}
-
-	occurredAt := time.Now()
-
-	switch hpoJob.Status.HyperParameterTuningJobStatus {
-	case ReconcilingTuningJobStatus:
-		logger.Errorf(ctx, "Job stuck in reconciling status, assuming retryable failure [%s]", hpoJob.Status.Additional)
-		// TODO talk to AWS about why there cannot be an explicit condition that signals AWS API call pluginErrors
-		execError := &flyteIdlCore.ExecutionError{
-			Message: hpoJob.Status.Additional,
-			Kind:    flyteIdlCore.ExecutionError_USER,
-			Code:    ReconcilingTuningJobStatus,
-		}
-		return pluginsCore.PhaseInfoFailed(pluginsCore.PhaseRetryableFailure, execError, info), nil
-	case sagemaker.HyperParameterTuningJobStatusFailed:
-		execError := &flyteIdlCore.ExecutionError{
-			Message: hpoJob.Status.Additional,
-			Kind:    flyteIdlCore.ExecutionError_USER,
-			Code:    sagemaker.HyperParameterTuningJobStatusFailed,
-		}
-		return pluginsCore.PhaseInfoFailed(pluginsCore.PhasePermanentFailure, execError, info), nil
-	case sagemaker.HyperParameterTuningJobStatusStopped:
-		return pluginsCore.PhaseInfoRetryableFailure(taskError.DownstreamSystemError, "Hyperparameter tuning job stopped", info), nil
-	case sagemaker.HyperParameterTuningJobStatusCompleted:
-		// Now that it is a success we will set the outputs as expected by the task
-
-		// TODO:
-		// Check task template -> custom training job -> if custom: assume output.pb exist, and fail if it doesn't. If it exists, then
-		//						 				      -> if not custom: check model.tar.gz
-		out, err := getOutputLiteralMapFromTaskInterface(ctx, pluginContext.TaskReader(),
-			createModelOutputPath(hpoJob, pluginContext.OutputWriter().GetRawOutputPrefix().String(),
-				*hpoJob.Status.BestTrainingJob.TrainingJobName))
-		if err != nil {
-			logger.Errorf(ctx, "Failed to create outputs, err: %s", err)
-			return pluginsCore.PhaseInfoUndefined, pluginErrors.Wrapf(pluginErrors.BadTaskSpecification, err, "failed to create outputs for the task")
-		}
-		if err := pluginContext.OutputWriter().Put(ctx, ioutils.NewInMemoryOutputReader(out, nil, nil)); err != nil {
-			return pluginsCore.PhaseInfoUndefined, err
-		}
-		logger.Debugf(ctx, "Successfully produced and returned outputs")
-		return pluginsCore.PhaseInfoSuccess(info), nil
-	case "":
-		return pluginsCore.PhaseInfoQueued(occurredAt, pluginsCore.DefaultPhaseVersion, "job submitted"), nil
-	}
-
-	return pluginsCore.PhaseInfoRunning(pluginsCore.DefaultPhaseVersion, info), nil
-}
-
-func (m awsSagemakerPlugin) getEventInfoForHyperparameterTuningJob(ctx context.Context, hpoJob *hpojobv1.HyperparameterTuningJob) (*pluginsCore.TaskInfo, error) {
-
-	var jobRegion, jobName, jobTypeInURL, sagemakerLinkName string
-	jobRegion = *hpoJob.Spec.Region
-	jobName = *hpoJob.Spec.HyperParameterTuningJobName
-	jobTypeInURL = "hyper-tuning-jobs"
-	sagemakerLinkName = HyperparameterTuningJobSageMakerLinkName
-
-	logger.Infof(ctx, "Getting event information for SageMaker HyperparameterTuningJob task, job region: [%v], job name: [%v], "+
-		"job type in url: [%v], sagemaker link name: [%v]", jobRegion, jobName, jobTypeInURL, sagemakerLinkName)
-
-	return createTaskInfo(ctx, jobRegion, jobName, jobTypeInURL, sagemakerLinkName)
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/hyperparameter_tuning_test.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/hyperparameter_tuning_test.go
deleted file mode 100644
index ee3452f6b6..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/hyperparameter_tuning_test.go
+++ /dev/null
@@ -1,130 +0,0 @@
-package sagemaker
-
-import (
-	"context"
-	"fmt"
-	"testing"
-
-	hpojobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/hyperparametertuningjob"
-	"github.com/go-test/deep"
-	"github.com/stretchr/testify/assert"
-
-	flyteIdlCore "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	sagemakerIdl "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/utils"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/sagemaker/config"
-	stdConfig "github.com/flyteorg/flyte/flytestdlib/config"
-	"github.com/flyteorg/flyte/flytestdlib/config/viper"
-)
-
-func Test_awsSagemakerPlugin_BuildResourceForHyperparameterTuningJob(t *testing.T) {
-	// Default config does not contain a roleAnnotationKey -> expecting to get the role from default config
-	ctx := context.TODO()
-	err := config.ResetSagemakerConfig()
-	if err != nil {
-		panic(err)
-	}
-	defaultCfg := config.GetSagemakerConfig()
-	awsSageMakerHPOJobHandler := awsSagemakerPlugin{TaskType: hyperparameterTuningJobTaskType}
-
-	tjObj := generateMockTrainingJobCustomObj(
-		sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_XGBOOST, "0.90", []*sagemakerIdl.MetricDefinition{},
-		sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-	htObj := generateMockHyperparameterTuningJobCustomObj(tjObj, 10, 5)
-	taskTemplate := generateMockHyperparameterTuningJobTaskTemplate("the job", htObj)
-	hpoJobResource, err := awsSageMakerHPOJobHandler.BuildResource(ctx, generateMockHyperparameterTuningJobTaskContext(taskTemplate))
-	assert.NoError(t, err)
-	assert.NotNil(t, hpoJobResource)
-
-	hpoJob, ok := hpoJobResource.(*hpojobv1.HyperparameterTuningJob)
-	assert.True(t, ok)
-	assert.NotNil(t, hpoJob.Spec.TrainingJobDefinition)
-	assert.Equal(t, 1, len(hpoJob.Spec.HyperParameterTuningJobConfig.ParameterRanges.IntegerParameterRanges))
-	assert.Equal(t, 0, len(hpoJob.Spec.HyperParameterTuningJobConfig.ParameterRanges.ContinuousParameterRanges))
-	assert.Equal(t, 0, len(hpoJob.Spec.HyperParameterTuningJobConfig.ParameterRanges.CategoricalParameterRanges))
-	assert.Equal(t, "us-east-1", *hpoJob.Spec.Region)
-	assert.Equal(t, "default_role", *hpoJob.Spec.TrainingJobDefinition.RoleArn)
-
-	err = config.SetSagemakerConfig(defaultCfg)
-	if err != nil {
-		panic(err)
-	}
-}
-
-func Test_awsSagemakerPlugin_getEventInfoForHyperparameterTuningJob(t *testing.T) {
-	// Default config does not contain a roleAnnotationKey -> expecting to get the role from default config
-	ctx := context.TODO()
-	defaultCfg := config.GetSagemakerConfig()
-	defer func() {
-		_ = config.SetSagemakerConfig(defaultCfg)
-	}()
-
-	t.Run("get event info should return correctly formatted log links for custom training job", func(t *testing.T) {
-		// Injecting a config which contains a mismatched roleAnnotationKey -> expecting to get the role from the config
-		configAccessor := viper.NewAccessor(stdConfig.Options{
-			StrictMode: true,
-			// Use a different
-			SearchPaths: []string{"testdata/config2.yaml"},
-		})
-
-		err := configAccessor.UpdateConfig(context.TODO())
-		assert.NoError(t, err)
-
-		awsSageMakerHPOJobHandler := awsSagemakerPlugin{TaskType: hyperparameterTuningJobTaskType}
-
-		tjObj := generateMockTrainingJobCustomObj(
-			sagemakerIdl.InputMode_FILE, sagemakerIdl.AlgorithmName_XGBOOST, "0.90", []*sagemakerIdl.MetricDefinition{},
-			sagemakerIdl.InputContentType_TEXT_CSV, 1, "ml.m4.xlarge", 25, sagemakerIdl.DistributedProtocol_UNSPECIFIED)
-		htObj := generateMockHyperparameterTuningJobCustomObj(tjObj, 10, 5)
-		taskTemplate := generateMockHyperparameterTuningJobTaskTemplate("the job", htObj)
-		taskCtx := generateMockHyperparameterTuningJobTaskContext(taskTemplate)
-		hpoJobResource, err := awsSageMakerHPOJobHandler.BuildResource(ctx, taskCtx)
-		assert.NoError(t, err)
-		assert.NotNil(t, hpoJobResource)
-
-		hpoJob, ok := hpoJobResource.(*hpojobv1.HyperparameterTuningJob)
-		assert.True(t, ok)
-
-		taskInfo, err := awsSageMakerHPOJobHandler.getEventInfoForHyperparameterTuningJob(ctx, hpoJob)
-		if err != nil {
-			panic(err)
-		}
-
-		expectedTaskLogs := []*flyteIdlCore.TaskLog{
-			{
-				Uri: fmt.Sprintf("https://%s.console.aws.amazon.com/cloudwatch/home?region=%s#logStream:group=/aws/sagemaker/TrainingJobs;prefix=%s;streamFilter=typeLogStreamPrefix",
-					"us-west-2", "us-west-2", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName()),
-				Name:          CloudWatchLogLinkName,
-				MessageFormat: flyteIdlCore.TaskLog_JSON,
-			},
-			{
-				Uri: fmt.Sprintf("https://%s.console.aws.amazon.com/sagemaker/home?region=%s#/%s/%s",
-					"us-west-2", "us-west-2", "hyper-tuning-jobs", taskCtx.TaskExecutionMetadata().GetTaskExecutionID().GetGeneratedName()),
-				Name:          HyperparameterTuningJobSageMakerLinkName,
-				MessageFormat: flyteIdlCore.TaskLog_UNKNOWN,
-			},
-		}
-
-		expectedCustomInfo, _ := utils.MarshalObjToStruct(map[string]string{})
-		assert.Equal(t,
-			func(tis []*flyteIdlCore.TaskLog) []flyteIdlCore.TaskLog {
-				ret := make([]flyteIdlCore.TaskLog, 0, len(tis))
-				for _, ti := range tis {
-					ret = append(ret, *ti)
-				}
-				return ret
-			}(expectedTaskLogs),
-			func(tis []*flyteIdlCore.TaskLog) []flyteIdlCore.TaskLog {
-				ret := make([]flyteIdlCore.TaskLog, 0, len(tis))
-				for _, ti := range tis {
-					ret = append(ret, *ti)
-				}
-				return ret
-			}(taskInfo.Logs))
-		if diff := deep.Equal(expectedCustomInfo, taskInfo.CustomInfo); diff != nil {
-			assert.FailNow(t, "Should be equal.", "Diff: %v", diff)
-		}
-		assert.Len(t, taskInfo.ExternalResources, 1)
-		assert.Equal(t, taskInfo.ExternalResources[0].ExternalID, "some-acceptable-name")
-	})
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/outputs.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/outputs.go
deleted file mode 100644
index b26255d78d..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/outputs.go
+++ /dev/null
@@ -1,71 +0,0 @@
-package sagemaker
-
-import (
-	"context"
-	"fmt"
-
-	hpojobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/hyperparametertuningjob"
-	trainingjobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/trainingjob"
-	"sigs.k8s.io/controller-runtime/pkg/client"
-
-	"github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	flyteIdlCore "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core"
-	"github.com/flyteorg/flyte/flytestdlib/logger"
-)
-
-func createOutputLiteralMap(tk *core.TaskTemplate, outputPath string) *core.LiteralMap {
-	op := &core.LiteralMap{}
-	for k := range tk.Interface.Outputs.Variables {
-		// if v != core.LiteralType_Blob{}
-		op.Literals = make(map[string]*core.Literal)
-		op.Literals[k] = &core.Literal{
-			Value: &core.Literal_Scalar{
-				Scalar: &core.Scalar{
-					Value: &core.Scalar_Blob{
-						Blob: &core.Blob{
-							Metadata: &core.BlobMetadata{
-								Type: &core.BlobType{Dimensionality: core.BlobType_SINGLE},
-							},
-							Uri: outputPath,
-						},
-					},
-				},
-			},
-		}
-	}
-	return op
-}
-
-func getOutputLiteralMapFromTaskInterface(ctx context.Context, tr pluginsCore.TaskReader, outputPath string) (*flyteIdlCore.LiteralMap, error) {
-	tk, err := tr.Read(ctx)
-	if err != nil {
-		return nil, err
-	}
-	if tk.Interface.Outputs != nil && tk.Interface.Outputs.Variables == nil {
-		logger.Warnf(ctx, "No outputs declared in the output interface. Ignoring the generated outputs.")
-		return nil, nil
-	}
-
-	// We know that for XGBoost task there is only one output to be generated
-	if len(tk.Interface.Outputs.Variables) > 1 {
-		return nil, fmt.Errorf("expected to generate more than one outputs of type [%v]", tk.Interface.Outputs.Variables)
-	}
-	op := createOutputLiteralMap(tk, outputPath)
-	return op, nil
-}
-
-func createOutputPath(prefix string, subdir string) string {
-	return fmt.Sprintf("%s/%s", prefix, subdir)
-}
-
-func createModelOutputPath(job client.Object, prefix, jobName string) string {
-	switch job.(type) {
-	case *trainingjobv1.TrainingJob:
-		return fmt.Sprintf("%s/%s/output/model.tar.gz", createOutputPath(prefix, TrainingJobOutputPathSubDir), jobName)
-	case *hpojobv1.HyperparameterTuningJob:
-		return fmt.Sprintf("%s/%s/output/model.tar.gz", createOutputPath(prefix, HyperparameterOutputPathSubDir), jobName)
-	default:
-		return ""
-	}
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/outputs_test.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/outputs_test.go
deleted file mode 100644
index 665a31caac..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/outputs_test.go
+++ /dev/null
@@ -1,34 +0,0 @@
-package sagemaker
-
-import (
-	"testing"
-
-	hpojobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/hyperparametertuningjob"
-	trainingjobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/trainingjob"
-	"sigs.k8s.io/controller-runtime/pkg/client"
-)
-
-func Test_createModelOutputPath(t *testing.T) {
-	type args struct {
-		job            client.Object
-		prefix         string
-		bestExperiment string
-	}
-	tests := []struct {
-		name string
-		args args
-		want string
-	}{
-		{name: "training job: simple output path", args: args{job: &trainingjobv1.TrainingJob{}, prefix: "s3://my-bucket", bestExperiment: "job-ABC"},
-			want: "s3://my-bucket/training_outputs/job-ABC/output/model.tar.gz"},
-		{name: "hpo job: simple output path", args: args{job: &hpojobv1.HyperparameterTuningJob{}, prefix: "s3://my-bucket", bestExperiment: "job-ABC"},
-			want: "s3://my-bucket/hyperparameter_tuning_outputs/job-ABC/output/model.tar.gz"},
-	}
-	for _, tt := range tests {
-		t.Run(tt.name, func(t *testing.T) {
-			if got := createModelOutputPath(tt.args.job, tt.args.prefix, tt.args.bestExperiment); got != tt.want {
-				t.Errorf("createModelOutputPath() = %v, want %v", got, tt.want)
-			}
-		})
-	}
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/plugin.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/plugin.go
deleted file mode 100644
index 328efc2e5c..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/plugin.go
+++ /dev/null
@@ -1,102 +0,0 @@
-package sagemaker
-
-import (
-	"context"
-
-	commonv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/common"
-	hpojobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/hyperparametertuningjob"
-	trainingjobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/trainingjob"
-	"k8s.io/client-go/kubernetes/scheme"
-	"sigs.k8s.io/controller-runtime/pkg/client"
-
-	pluginErrors "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery"
-	pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/k8s"
-)
-
-// Sanity test that the plugin implements method of k8s.Plugin
-var _ k8s.Plugin = awsSagemakerPlugin{}
-
-type awsSagemakerPlugin struct {
-	TaskType pluginsCore.TaskType
-}
-
-func (awsSagemakerPlugin) GetProperties() k8s.PluginProperties {
-	return k8s.PluginProperties{}
-}
-
-func (m awsSagemakerPlugin) BuildIdentityResource(_ context.Context, _ pluginsCore.TaskExecutionMetadata) (client.Object, error) {
-	if m.TaskType == trainingJobTaskType || m.TaskType == customTrainingJobTaskType {
-		return &trainingjobv1.TrainingJob{}, nil
-	}
-	if m.TaskType == hyperparameterTuningJobTaskType {
-		return &hpojobv1.HyperparameterTuningJob{}, nil
-	}
-	return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "The sagemaker plugin is unable to build identity resource for an unknown task type [%v]", m.TaskType)
-}
-
-func (m awsSagemakerPlugin) BuildResource(ctx context.Context, taskCtx pluginsCore.TaskExecutionContext) (client.Object, error) {
-
-	// Unmarshal the custom field of the task template back into the HyperparameterTuningJob struct generated in flyteidl
-	if m.TaskType == trainingJobTaskType {
-		return m.buildResourceForTrainingJob(ctx, taskCtx)
-	}
-	if m.TaskType == customTrainingJobTaskType {
-		return m.buildResourceForCustomTrainingJob(ctx, taskCtx)
-	}
-	if m.TaskType == hyperparameterTuningJobTaskType {
-		return m.buildResourceForHyperparameterTuningJob(ctx, taskCtx)
-	}
-	return nil, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "The SageMaker plugin is unable to build resource for unknown task type [%s]", m.TaskType)
-}
-
-func (m awsSagemakerPlugin) GetTaskPhase(ctx context.Context, pluginContext k8s.PluginContext, resource client.Object) (pluginsCore.PhaseInfo, error) {
-	if m.TaskType == trainingJobTaskType {
-		job := resource.(*trainingjobv1.TrainingJob)
-		return m.getTaskPhaseForTrainingJob(ctx, pluginContext, job)
-	} else if m.TaskType == customTrainingJobTaskType {
-		job := resource.(*trainingjobv1.TrainingJob)
-		return m.getTaskPhaseForCustomTrainingJob(ctx, pluginContext, job)
-	} else if m.TaskType == hyperparameterTuningJobTaskType {
-		job := resource.(*hpojobv1.HyperparameterTuningJob)
-		return m.getTaskPhaseForHyperparameterTuningJob(ctx, pluginContext, job)
-	}
-	return pluginsCore.PhaseInfoUndefined, pluginErrors.Errorf(pluginErrors.BadTaskSpecification, "cannot get task phase for unknown task type [%s]", m.TaskType)
-}
-
-func init() {
-	if err := commonv1.AddToScheme(scheme.Scheme); err != nil {
-		panic(err)
-	}
-
-	// Registering the plugin for HyperparameterTuningJob
-	pluginmachinery.PluginRegistry().RegisterK8sPlugin(
-		k8s.PluginEntry{
-			ID:                  hyperparameterTuningJobTaskPluginID,
-			RegisteredTaskTypes: []pluginsCore.TaskType{hyperparameterTuningJobTaskType},
-			ResourceToWatch:     &hpojobv1.HyperparameterTuningJob{},
-			Plugin:              awsSagemakerPlugin{TaskType: hyperparameterTuningJobTaskType},
-			IsDefault:           false,
-		})
-
-	// Registering the plugin for standalone TrainingJob
-	pluginmachinery.PluginRegistry().RegisterK8sPlugin(
-		k8s.PluginEntry{
-			ID:                  trainingJobTaskPluginID,
-			RegisteredTaskTypes: []pluginsCore.TaskType{trainingJobTaskType},
-			ResourceToWatch:     &trainingjobv1.TrainingJob{},
-			Plugin:              awsSagemakerPlugin{TaskType: trainingJobTaskType},
-			IsDefault:           false,
-		})
-
-	// Registering the plugin for custom TrainingJob
-	pluginmachinery.PluginRegistry().RegisterK8sPlugin(
-		k8s.PluginEntry{
-			ID:                  customTrainingJobTaskPluginID,
-			RegisteredTaskTypes: []pluginsCore.TaskType{customTrainingJobTaskType},
-			ResourceToWatch:     &trainingjobv1.TrainingJob{},
-			Plugin:              awsSagemakerPlugin{TaskType: customTrainingJobTaskType},
-			IsDefault:           false,
-		})
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/plugin_test.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/plugin_test.go
deleted file mode 100644
index 38cc76bbab..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/plugin_test.go
+++ /dev/null
@@ -1,67 +0,0 @@
-package sagemaker
-
-import (
-	"context"
-	"reflect"
-	"testing"
-
-	hpojobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/hyperparametertuningjob"
-	trainingjobv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/trainingjob"
-	"github.com/stretchr/testify/assert"
-	"sigs.k8s.io/controller-runtime/pkg/client"
-
-	pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/k8s"
-	"github.com/flyteorg/flyte/flytestdlib/contextutils"
-	"github.com/flyteorg/flyte/flytestdlib/promutils/labeled"
-)
-
-func Test_awsSagemakerPlugin_BuildIdentityResource(t *testing.T) {
-	ctx := context.TODO()
-	type fields struct {
-		TaskType pluginsCore.TaskType
-	}
-	type args struct {
-		in0 context.Context
-		in1 pluginsCore.TaskExecutionMetadata
-	}
-	tests := []struct {
-		name    string
-		fields  fields
-		args    args
-		want    client.Object
-		wantErr bool
-	}{
-		{name: "Training Job Identity Resource", fields: fields{TaskType: trainingJobTaskType},
-			args: args{in0: ctx, in1: genMockTaskExecutionMetadata()}, want: &trainingjobv1.TrainingJob{}, wantErr: false},
-		{name: "HPO Job Identity Resource", fields: fields{TaskType: hyperparameterTuningJobTaskType},
-			args: args{in0: ctx, in1: genMockTaskExecutionMetadata()}, want: &hpojobv1.HyperparameterTuningJob{}, wantErr: false},
-		{name: "Unsupported Job Identity Resource", fields: fields{TaskType: "bad type"},
-			args: args{in0: ctx, in1: genMockTaskExecutionMetadata()}, want: nil, wantErr: true},
-	}
-	for _, tt := range tests {
-		t.Run(tt.name, func(t *testing.T) {
-			m := awsSagemakerPlugin{
-				TaskType: tt.fields.TaskType,
-			}
-			got, err := m.BuildIdentityResource(tt.args.in0, tt.args.in1)
-			if (err != nil) != tt.wantErr {
-				t.Errorf("BuildIdentityResource() error = %v, wantErr %v", err, tt.wantErr)
-				return
-			}
-			if !reflect.DeepEqual(got, tt.want) {
-				t.Errorf("BuildIdentityResource() got = %v, want %v", got, tt.want)
-			}
-		})
-	}
-}
-
-func TestGetProperties(t *testing.T) {
-	plugin := awsSagemakerPlugin{}
-	expected := k8s.PluginProperties{}
-	assert.Equal(t, expected, plugin.GetProperties())
-}
-
-func init() {
-	labeled.SetMetricKeys(contextutils.NamespaceKey)
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/plugin_test_utils.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/plugin_test_utils.go
deleted file mode 100644
index 3733f74725..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/plugin_test_utils.go
+++ /dev/null
@@ -1,442 +0,0 @@
-package sagemaker
-
-import (
-	"github.com/golang/protobuf/jsonpb"
-	"github.com/golang/protobuf/proto"
-	structpb "github.com/golang/protobuf/ptypes/struct"
-	"github.com/pkg/errors"
-	"github.com/stretchr/testify/mock"
-	corev1 "k8s.io/api/core/v1"
-	"k8s.io/apimachinery/pkg/api/resource"
-	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
-	"github.com/flyteorg/flyte/flyteidl/clients/go/coreutils"
-	flyteIdlCore "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	sagemakerIdl "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker"
-	pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core/mocks"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/flytek8s"
-	pluginIOMocks "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/io/mocks"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/utils"
-	"github.com/flyteorg/flyte/flytestdlib/promutils"
-	"github.com/flyteorg/flyte/flytestdlib/storage"
-)
-
-const testImage = "image://"
-const serviceAccount = "sagemaker_sa"
-
-var (
-	dummyEnvVars = []*flyteIdlCore.KeyValuePair{
-		{Key: "Env_Var", Value: "Env_Val"},
-	}
-
-	testArgs = []string{
-		"service_venv",
-		"pyflyte-execute",
-		"--test-opt1",
-		"value1",
-		"--test-opt2",
-		"value2",
-		"--test-flag",
-	}
-
-	testCmds = []string{
-		"test-cmds1",
-		"test-cmds2",
-	}
-
-	resourceRequirements = &corev1.ResourceRequirements{
-		Limits: corev1.ResourceList{
-			corev1.ResourceCPU:         resource.MustParse("1000m"),
-			corev1.ResourceMemory:      resource.MustParse("1Gi"),
-			flytek8s.ResourceNvidiaGPU: resource.MustParse("1"),
-		},
-		Requests: corev1.ResourceList{
-			corev1.ResourceCPU:         resource.MustParse("100m"),
-			corev1.ResourceMemory:      resource.MustParse("512Mi"),
-			flytek8s.ResourceNvidiaGPU: resource.MustParse("1"),
-		},
-	}
-)
-
-func generateMockTrainingJobTaskTemplate(id string, trainingJobCustomObj *sagemakerIdl.TrainingJob) *flyteIdlCore.TaskTemplate {
-
-	tjObjJSON, err := utils.MarshalToString(trainingJobCustomObj)
-	if err != nil {
-		panic(err)
-	}
-	structObj := structpb.Struct{}
-
-	err = jsonpb.UnmarshalString(tjObjJSON, &structObj)
-	if err != nil {
-		panic(err)
-	}
-
-	return &flyteIdlCore.TaskTemplate{
-		Id:   &flyteIdlCore.Identifier{Name: id},
-		Type: "container",
-		Target: &flyteIdlCore.TaskTemplate_Container{
-			Container: &flyteIdlCore.Container{
-				Command: testCmds,
-				Image:   testImage,
-				Args:    testArgs,
-				Env:     dummyEnvVars,
-			},
-		},
-		Custom: &structObj,
-	}
-}
-
-func generateMockHyperparameterTuningJobTaskTemplate(id string, hpoJobCustomObj *sagemakerIdl.HyperparameterTuningJob) *flyteIdlCore.TaskTemplate {
-
-	htObjJSON, err := utils.MarshalToString(hpoJobCustomObj)
-	if err != nil {
-		panic(err)
-	}
-	structObj := structpb.Struct{}
-
-	err = jsonpb.UnmarshalString(htObjJSON, &structObj)
-	if err != nil {
-		panic(err)
-	}
-
-	return &flyteIdlCore.TaskTemplate{
-		Id:   &flyteIdlCore.Identifier{Name: id},
-		Type: "container",
-		Target: &flyteIdlCore.TaskTemplate_Container{
-			Container: &flyteIdlCore.Container{
-				Image: testImage,
-				Args:  testArgs,
-				Env:   dummyEnvVars,
-			},
-		},
-		Custom: &structObj,
-		Interface: &flyteIdlCore.TypedInterface{
-			Inputs: &flyteIdlCore.VariableMap{
-				Variables: map[string]*flyteIdlCore.Variable{
-					"input": {
-						Type: &flyteIdlCore.LiteralType{
-							Type: &flyteIdlCore.LiteralType_CollectionType{
-								CollectionType: &flyteIdlCore.LiteralType{Type: &flyteIdlCore.LiteralType_Simple{Simple: flyteIdlCore.SimpleType_INTEGER}},
-							},
-						},
-					},
-				},
-			},
-			Outputs: &flyteIdlCore.VariableMap{
-				Variables: map[string]*flyteIdlCore.Variable{
-					"output": {
-						Type: &flyteIdlCore.LiteralType{
-							Type: &flyteIdlCore.LiteralType_CollectionType{
-								CollectionType: &flyteIdlCore.LiteralType{Type: &flyteIdlCore.LiteralType_Simple{Simple: flyteIdlCore.SimpleType_INTEGER}},
-							},
-						},
-					},
-				},
-			},
-		},
-	}
-}
-
-// nolint
-func generateMockCustomTrainingJobTaskContext(taskTemplate *flyteIdlCore.TaskTemplate, outputReaderPutError bool) pluginsCore.TaskExecutionContext {
-	taskCtx := &mocks.TaskExecutionContext{}
-	inputReader := &pluginIOMocks.InputReader{}
-	inputReader.OnGetInputPrefixPath().Return("/input/prefix")
-	inputReader.OnGetInputPath().Return("/input")
-
-	trainBlobLoc := storage.DataReference("train-blob-loc")
-	validationBlobLoc := storage.DataReference("validation-blob-loc")
-
-	inputReader.OnGetMatch(mock.Anything).Return(
-		&flyteIdlCore.LiteralMap{
-			Literals: map[string]*flyteIdlCore.Literal{
-				"train":      generateMockBlobLiteral(trainBlobLoc),
-				"validation": generateMockBlobLiteral(validationBlobLoc),
-				"hp_int":     coreutils.MustMakeLiteral(1),
-				"hp_float":   coreutils.MustMakeLiteral(1.5),
-				"hp_bool":    coreutils.MustMakeLiteral(false),
-				"hp_string":  coreutils.MustMakeLiteral("a"),
-			},
-		}, nil)
-	taskCtx.OnInputReader().Return(inputReader)
-
-	outputReader := &pluginIOMocks.OutputWriter{}
-	outputReader.OnGetOutputPath().Return("/data/outputs.pb")
-	outputReader.OnGetOutputPrefixPath().Return("/data/")
-	outputReader.OnGetRawOutputPrefix().Return("/raw/")
-	outputReader.OnGetCheckpointPrefix().Return("/checkpoint")
-	outputReader.OnGetPreviousCheckpointsPrefix().Return("/prev")
-
-	if outputReaderPutError {
-		outputReader.OnPutMatch(mock.Anything, mock.Anything).Return(errors.Errorf("err"))
-	} else {
-		outputReader.OnPutMatch(mock.Anything, mock.Anything).Return(nil)
-	}
-	taskCtx.OnOutputWriter().Return(outputReader)
-
-	taskReader := &mocks.TaskReader{}
-	taskReader.OnReadMatch(mock.Anything).Return(taskTemplate, nil)
-	taskCtx.OnTaskReader().Return(taskReader)
-
-	tID := &mocks.TaskExecutionID{}
-	tID.OnGetID().Return(flyteIdlCore.TaskExecutionIdentifier{
-		NodeExecutionId: &flyteIdlCore.NodeExecutionIdentifier{
-			ExecutionId: &flyteIdlCore.WorkflowExecutionIdentifier{
-				Name:    "my_name",
-				Project: "my_project",
-				Domain:  "my_domain",
-			},
-		},
-	})
-	tID.OnGetGeneratedName().Return("some-acceptable-name")
-
-	resources := &mocks.TaskOverrides{}
-	resources.OnGetResources().Return(resourceRequirements)
-
-	taskExecutionMetadata := &mocks.TaskExecutionMetadata{}
-	taskExecutionMetadata.OnGetTaskExecutionID().Return(tID)
-	taskExecutionMetadata.OnGetNamespace().Return("test-namespace")
-	taskExecutionMetadata.OnGetAnnotations().Return(map[string]string{"iam.amazonaws.com/role": "metadata_role"})
-	taskExecutionMetadata.OnGetSecurityContext().Return(flyteIdlCore.SecurityContext{
-		RunAs: &flyteIdlCore.Identity{IamRole: "new-role"},
-	})
-
-	taskExecutionMetadata.OnGetLabels().Return(map[string]string{"label-1": "val1"})
-	taskExecutionMetadata.OnGetOwnerReference().Return(v1.OwnerReference{
-		Kind: "node",
-		Name: "blah",
-	})
-	taskExecutionMetadata.OnIsInterruptible().Return(true)
-	taskExecutionMetadata.OnGetOverrides().Return(resources)
-	taskExecutionMetadata.OnGetK8sServiceAccount().Return(serviceAccount)
-	taskCtx.OnTaskExecutionMetadata().Return(taskExecutionMetadata)
-
-	dataStore, err := storage.NewDataStore(&storage.Config{Type: storage.TypeMemory}, promutils.NewTestScope())
-	if err != nil {
-		panic(err)
-	}
-	taskCtx.OnDataStore().Return(dataStore)
-
-	taskCtx.OnMaxDatasetSizeBytes().Return(10000)
-
-	return taskCtx
-}
-
-// nolint
-func generateMockTrainingJobTaskContext(taskTemplate *flyteIdlCore.TaskTemplate, outputReaderPutError bool) pluginsCore.TaskExecutionContext {
-	taskCtx := &mocks.TaskExecutionContext{}
-	inputReader := &pluginIOMocks.InputReader{}
-	inputReader.OnGetInputPrefixPath().Return("/input/prefix")
-	inputReader.OnGetInputPath().Return("/input")
-
-	trainBlobLoc := storage.DataReference("train-blob-loc")
-	validationBlobLoc := storage.DataReference("validation-blob-loc")
-	shp := map[string]string{"a": "1", "b": "2"}
-	shpStructObj, _ := utils.MarshalObjToStruct(shp)
-
-	inputReader.OnGetMatch(mock.Anything).Return(
-		&flyteIdlCore.LiteralMap{
-			Literals: map[string]*flyteIdlCore.Literal{
-				"train":                  generateMockBlobLiteral(trainBlobLoc),
-				"validation":             generateMockBlobLiteral(validationBlobLoc),
-				"static_hyperparameters": coreutils.MakeGenericLiteral(shpStructObj),
-			},
-		}, nil)
-	taskCtx.OnInputReader().Return(inputReader)
-
-	outputReader := &pluginIOMocks.OutputWriter{}
-	outputReader.OnGetOutputPath().Return("/data/outputs.pb")
-	outputReader.OnGetOutputPrefixPath().Return("/data/")
-	outputReader.OnGetRawOutputPrefix().Return("/raw/")
-	outputReader.OnGetCheckpointPrefix().Return("/checkpoint")
-	outputReader.OnGetPreviousCheckpointsPrefix().Return("/prev")
-
-	if outputReaderPutError {
-		outputReader.OnPutMatch(mock.Anything).Return(errors.Errorf("err"))
-	}
-	taskCtx.OnOutputWriter().Return(outputReader)
-
-	taskReader := &mocks.TaskReader{}
-	taskReader.OnReadMatch(mock.Anything).Return(taskTemplate, nil)
-	taskCtx.OnTaskReader().Return(taskReader)
-
-	tID := &mocks.TaskExecutionID{}
-	tID.OnGetID().Return(flyteIdlCore.TaskExecutionIdentifier{
-		NodeExecutionId: &flyteIdlCore.NodeExecutionIdentifier{
-			ExecutionId: &flyteIdlCore.WorkflowExecutionIdentifier{
-				Name:    "my_name",
-				Project: "my_project",
-				Domain:  "my_domain",
-			},
-		},
-	})
-	tID.OnGetGeneratedName().Return("some-acceptable-name")
-
-	resources := &mocks.TaskOverrides{}
-	resources.OnGetResources().Return(resourceRequirements)
-
-	taskExecutionMetadata := &mocks.TaskExecutionMetadata{}
-	taskExecutionMetadata.OnGetTaskExecutionID().Return(tID)
-	taskExecutionMetadata.OnGetNamespace().Return("test-namespace")
-	taskExecutionMetadata.OnGetAnnotations().Return(map[string]string{"iam.amazonaws.com/role": "metadata_role"})
-	taskExecutionMetadata.OnGetSecurityContext().Return(flyteIdlCore.SecurityContext{})
-	taskExecutionMetadata.OnGetLabels().Return(map[string]string{"label-1": "val1"})
-	taskExecutionMetadata.OnGetOwnerReference().Return(v1.OwnerReference{
-		Kind: "node",
-		Name: "blah",
-	})
-	taskExecutionMetadata.OnIsInterruptible().Return(true)
-	taskExecutionMetadata.OnGetOverrides().Return(resources)
-	taskExecutionMetadata.OnGetK8sServiceAccount().Return(serviceAccount)
-	taskCtx.OnTaskExecutionMetadata().Return(taskExecutionMetadata)
-	return taskCtx
-}
-
-func generateMockBlobLiteral(loc storage.DataReference) *flyteIdlCore.Literal {
-	return &flyteIdlCore.Literal{
-		Value: &flyteIdlCore.Literal_Scalar{
-			Scalar: &flyteIdlCore.Scalar{
-				Value: &flyteIdlCore.Scalar_Blob{
-					Blob: &flyteIdlCore.Blob{
-						Uri: loc.String(),
-						Metadata: &flyteIdlCore.BlobMetadata{
-							Type: &flyteIdlCore.BlobType{
-								Dimensionality: flyteIdlCore.BlobType_SINGLE,
-								Format:         "csv",
-							},
-						},
-					},
-				},
-			},
-		},
-	}
-}
-
-func generateMockHyperparameterTuningJobTaskContext(taskTemplate *flyteIdlCore.TaskTemplate) pluginsCore.TaskExecutionContext {
-	taskCtx := &mocks.TaskExecutionContext{}
-	inputReader := &pluginIOMocks.InputReader{}
-	inputReader.OnGetInputPrefixPath().Return("/input/prefix")
-	inputReader.OnGetInputPath().Return("/input")
-
-	trainBlobLoc := storage.DataReference("train-blob-loc")
-	validationBlobLoc := storage.DataReference("validation-blob-loc")
-	shp := map[string]string{"a": "1", "b": "2"}
-	shpStructObj, _ := utils.MarshalObjToStruct(shp)
-	hpoJobConfig := sagemakerIdl.HyperparameterTuningJobConfig{
-		TuningStrategy: sagemakerIdl.HyperparameterTuningStrategy_BAYESIAN,
-		TuningObjective: &sagemakerIdl.HyperparameterTuningObjective{
-			ObjectiveType: sagemakerIdl.HyperparameterTuningObjectiveType_MINIMIZE,
-			MetricName:    "test:metric",
-		},
-		TrainingJobEarlyStoppingType: sagemakerIdl.TrainingJobEarlyStoppingType_AUTO,
-	}
-	hpoJobConfigByteArray, _ := proto.Marshal(&hpoJobConfig)
-
-	intParamRange := &structpb.Struct{}
-	err := utils.MarshalStruct(&sagemakerIdl.ParameterRangeOneOf{
-		ParameterRangeType: &sagemakerIdl.ParameterRangeOneOf_IntegerParameterRange{
-			IntegerParameterRange: &sagemakerIdl.IntegerParameterRange{
-				MaxValue:    2,
-				MinValue:    1,
-				ScalingType: sagemakerIdl.HyperparameterScalingType_LINEAR,
-			},
-		},
-	}, intParamRange)
-
-	if err != nil {
-		panic(err)
-	}
-
-	inputReader.OnGetMatch(mock.Anything).Return(
-		&flyteIdlCore.LiteralMap{
-			Literals: map[string]*flyteIdlCore.Literal{
-				"train":                            generateMockBlobLiteral(trainBlobLoc),
-				"validation":                       generateMockBlobLiteral(validationBlobLoc),
-				"static_hyperparameters":           coreutils.MakeGenericLiteral(shpStructObj),
-				"hyperparameter_tuning_job_config": coreutils.MakeBinaryLiteral(hpoJobConfigByteArray),
-				"a":                                coreutils.MakeGenericLiteral(intParamRange),
-			},
-		}, nil)
-	taskCtx.OnInputReader().Return(inputReader)
-
-	outputReader := &pluginIOMocks.OutputWriter{}
-	outputReader.OnGetOutputPath().Return("/data/outputs.pb")
-	outputReader.OnGetOutputPrefixPath().Return("/data/")
-	outputReader.OnGetRawOutputPrefix().Return("/raw/")
-
-	taskCtx.OnOutputWriter().Return(outputReader)
-
-	taskReader := &mocks.TaskReader{}
-	taskReader.OnReadMatch(mock.Anything).Return(taskTemplate, nil)
-	taskCtx.OnTaskReader().Return(taskReader)
-	taskExecutionMetadata := genMockTaskExecutionMetadata()
-	taskCtx.OnTaskExecutionMetadata().Return(taskExecutionMetadata)
-	return taskCtx
-}
-
-func genMockTaskExecutionMetadata() *mocks.TaskExecutionMetadata {
-	tID := &mocks.TaskExecutionID{}
-	tID.OnGetID().Return(flyteIdlCore.TaskExecutionIdentifier{
-		NodeExecutionId: &flyteIdlCore.NodeExecutionIdentifier{
-			ExecutionId: &flyteIdlCore.WorkflowExecutionIdentifier{
-				Name:    "my_name",
-				Project: "my_project",
-				Domain:  "my_domain",
-			},
-		},
-	})
-
-	tID.OnGetGeneratedName().Return("some-acceptable-name")
-
-	resources := &mocks.TaskOverrides{}
-	resources.OnGetResources().Return(resourceRequirements)
-
-	taskExecutionMetadata := &mocks.TaskExecutionMetadata{}
-	taskExecutionMetadata.OnGetTaskExecutionID().Return(tID)
-	taskExecutionMetadata.OnGetNamespace().Return("test-namespace")
-	taskExecutionMetadata.OnGetAnnotations().Return(map[string]string{"iam.amazonaws.com/role": "metadata_role"})
-	taskExecutionMetadata.OnGetSecurityContext().Return(flyteIdlCore.SecurityContext{
-		RunAs: &flyteIdlCore.Identity{IamRole: "default_role"},
-	})
-	taskExecutionMetadata.OnGetLabels().Return(map[string]string{"label-1": "val1"})
-	taskExecutionMetadata.OnGetOwnerReference().Return(v1.OwnerReference{
-		Kind: "node",
-		Name: "blah",
-	})
-	taskExecutionMetadata.OnIsInterruptible().Return(true)
-	taskExecutionMetadata.OnGetOverrides().Return(resources)
-	taskExecutionMetadata.OnGetK8sServiceAccount().Return(serviceAccount)
-	return taskExecutionMetadata
-}
-
-// nolint
-func generateMockTrainingJobCustomObj(
-	inputMode sagemakerIdl.InputMode_Value, algName sagemakerIdl.AlgorithmName_Value, algVersion string,
-	metricDefinitions []*sagemakerIdl.MetricDefinition, contentType sagemakerIdl.InputContentType_Value,
-	instanceCount int64, instanceType string, volumeSizeInGB int64, protocol sagemakerIdl.DistributedProtocol_Value) *sagemakerIdl.TrainingJob {
-	return &sagemakerIdl.TrainingJob{
-		AlgorithmSpecification: &sagemakerIdl.AlgorithmSpecification{
-			InputMode:         inputMode,
-			AlgorithmName:     algName,
-			AlgorithmVersion:  algVersion,
-			MetricDefinitions: metricDefinitions,
-			InputContentType:  contentType,
-		},
-		TrainingJobResourceConfig: &sagemakerIdl.TrainingJobResourceConfig{
-			InstanceCount:       instanceCount,
-			InstanceType:        instanceType,
-			VolumeSizeInGb:      volumeSizeInGB,
-			DistributedProtocol: protocol,
-		},
-	}
-}
-
-func generateMockHyperparameterTuningJobCustomObj(
-	trainingJob *sagemakerIdl.TrainingJob, maxNumberOfTrainingJobs int64, maxParallelTrainingJobs int64) *sagemakerIdl.HyperparameterTuningJob {
-	return &sagemakerIdl.HyperparameterTuningJob{
-		TrainingJob:             trainingJob,
-		MaxNumberOfTrainingJobs: maxNumberOfTrainingJobs,
-		MaxParallelTrainingJobs: maxParallelTrainingJobs,
-	}
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/testdata/config.yaml b/flyteplugins/go/tasks/plugins/k8s/sagemaker/testdata/config.yaml
deleted file mode 100644
index f30a7978c2..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/testdata/config.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-plugins:
-  sagemaker:
-    roleArn: "config_role"
-    region: "us-west-2"
-    roleAnnotationKey: "iam.amazonaws.com/role"
-    prebuiltAlgorithms:
-      - name: "XGBOOST"
-        regionalConfigs:
-          - region: "us-west-2"
-            versionConfigs:
-              - version: "0.90"
-                image: "XGBOOST_us-west-2_image-0.90"
-              - version: "1.0"
-                image: "XGBOOST_us-west-2_image-1.0"
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/testdata/config2.yaml b/flyteplugins/go/tasks/plugins/k8s/sagemaker/testdata/config2.yaml
deleted file mode 100644
index 8ad02000a3..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/testdata/config2.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-plugins:
-  sagemaker:
-    roleArn: "config_role"
-    region: "us-west-2"
-    roleAnnotationKey: "blah"
-    prebuiltAlgorithms:
-      - name: "XGBOOST"
-        regionalConfigs:
-          - region: "us-west-2"
-            versionConfigs:
-              - version: "0.90"
-                image: "image-0.90"
-              - version: "1.0"
-                image: "image-1.0"
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/utils.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/utils.go
deleted file mode 100644
index 047d2ae23c..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/utils.go
+++ /dev/null
@@ -1,405 +0,0 @@
-package sagemaker
-
-import (
-	"context"
-	"fmt"
-	"sort"
-	"strings"
-
-	"github.com/Masterminds/semver"
-	commonv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/common"
-	awsSdk "github.com/aws/aws-sdk-go-v2/aws"
-	"github.com/golang/protobuf/proto"
-
-	"github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	flyteIdlCore "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	flyteSagemakerIdl "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker"
-	pluginErrors "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors"
-	pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core/template"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/utils"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/sagemaker/config"
-	"github.com/flyteorg/flyte/flytestdlib/errors"
-	"github.com/flyteorg/flyte/flytestdlib/logger"
-)
-
-const (
-	ErrSagemaker = "SAGEMAKER_ERROR"
-)
-
-func getAPIContentType(fileType flyteSagemakerIdl.InputContentType_Value) (string, error) {
-	if fileType == flyteSagemakerIdl.InputContentType_TEXT_CSV {
-		return TEXTCSVInputContentType, nil
-	}
-	return "", errors.Errorf(ErrSagemaker, "Unsupported input file type [%v]", fileType.String())
-}
-
-func getLatestTrainingImage(versionConfigs []config.VersionConfig) (string, error) {
-	latestSemVer, _ := semver.NewVersion("0.0.0")
-	latestImg := ""
-	for _, verCfg := range versionConfigs {
-		semVer, err := semver.NewVersion(verCfg.Version)
-		if err != nil {
-			return "", errors.Wrapf(ErrSagemaker, err, "Failed to cast version [%v] to a semver", verCfg.Version)
-		}
-		if semVer.GreaterThan(latestSemVer) {
-			latestSemVer = semVer
-			latestImg = verCfg.Image
-		}
-	}
-	if latestImg == "" {
-		return "", errors.Errorf(ErrSagemaker, "Failed to find the latest image")
-	}
-	return latestImg, nil
-}
-
-func getTrainingJobImage(ctx context.Context, _ pluginsCore.TaskExecutionContext, job *flyteSagemakerIdl.TrainingJob) (string, error) {
-	image, err := getPrebuiltTrainingImage(ctx, job)
-	if err != nil {
-		return "", errors.Wrapf(ErrSagemaker, err, "Failed to get prebuilt image for job [%v]", *job)
-	}
-	return image, nil
-}
-
-// Finds the algorithm configuration for the given name
-func findAlgorithmConfig(cfg *config.Config, name string) (config.PrebuiltAlgorithmConfig, error) {
-	for _, algorithmCfg := range cfg.PrebuiltAlgorithms {
-		if strings.EqualFold(name, algorithmCfg.Name) {
-			return algorithmCfg, nil
-		}
-	}
-	return config.PrebuiltAlgorithmConfig{}, errors.Errorf(ErrSagemaker, "Failed to find an image for algorithm [%v]", name)
-}
-
-// Find RegionConfig for the algorithm name and region
-func findRegionConfig(algoConfig config.PrebuiltAlgorithmConfig, name string) (config.RegionalConfig, error) {
-	for _, regionalCfg := range algoConfig.RegionalConfig {
-		if strings.EqualFold(name, regionalCfg.Region) {
-			return regionalCfg, nil
-		}
-	}
-	return config.RegionalConfig{},
-		errors.Errorf(ErrSagemaker, "Failed to find an image for algorithm [%v] region [%v]", algoConfig.Name, name)
-}
-
-func getPrebuiltTrainingImage(ctx context.Context, job *flyteSagemakerIdl.TrainingJob) (string, error) {
-	// This function determines which image URI to put into the CRD of the training job and the hyperparameter tuning job
-
-	cfg := config.GetSagemakerConfig()
-
-	if specifiedAlg := job.GetAlgorithmSpecification().GetAlgorithmName(); specifiedAlg != flyteSagemakerIdl.AlgorithmName_CUSTOM {
-		// Built-in algorithm mode
-		apiAlgorithmName := specifiedAlg.String()
-
-		foundAlgorithmCfg, err := findAlgorithmConfig(cfg, apiAlgorithmName)
-		if err != nil {
-			return "", err
-		}
-
-		foundRegionalCfg, err := findRegionConfig(foundAlgorithmCfg, cfg.Region)
-		if err != nil {
-			return "", err
-		}
-
-		userSpecifiedVer := job.GetAlgorithmSpecification().GetAlgorithmVersion()
-		// If the user does not specify a version -> use the latest version found in the config possible
-		if userSpecifiedVer == "" {
-			logger.Infof(ctx, "The version of the algorithm [%v] is not specified. "+
-				"The plugin will try to pick the latest version available for the algorithm-region combination.", userSpecifiedVer, apiAlgorithmName, cfg.Region)
-			latestTrainingImage, err := getLatestTrainingImage(foundRegionalCfg.VersionConfigs)
-			if err != nil {
-				return "", errors.Wrapf(ErrSagemaker, err, "Failed to identify the latest image for algorithm:region [%v:%v]",
-					apiAlgorithmName, cfg.Region)
-			}
-			return latestTrainingImage, nil
-		}
-		// If the user specified a version -> we have to translate it to semver and find an exact match
-		for _, versionCfg := range foundRegionalCfg.VersionConfigs {
-			configSemVer, err := semver.NewVersion(versionCfg.Version)
-			if err != nil {
-				return "", errors.Wrapf(ErrSagemaker, err, "Unable to cast version listed in the config [%v] to a semver", versionCfg.Version)
-			}
-			userSpecifiedSemVer, err := semver.NewVersion(userSpecifiedVer)
-			if err != nil {
-				return "", errors.Wrapf(ErrSagemaker, err, "Unable to cast version specified by the user [%v] to a semver", userSpecifiedVer)
-			}
-			if configSemVer.Equal(userSpecifiedSemVer) {
-				logger.Infof(ctx, "Image [%v] is picked for algorithm [%v] region [%v] version [%v] ",
-					versionCfg.Image, apiAlgorithmName, cfg.Region, userSpecifiedSemVer)
-				return versionCfg.Image, nil
-			}
-		}
-		logger.Errorf(ctx, "Failed to find an image for [%v]:[%v]:[%v]",
-			job.GetAlgorithmSpecification().GetAlgorithmName(), cfg.Region, job.GetAlgorithmSpecification().GetAlgorithmVersion())
-
-		return "", errors.Errorf(ErrSagemaker, "Failed to find an image for [%v]:[%v]:[%v]",
-			job.GetAlgorithmSpecification().GetAlgorithmName(), cfg.Region, job.GetAlgorithmSpecification().GetAlgorithmVersion())
-	}
-	// Custom image
-	return "", errors.Errorf(ErrSagemaker, "It is invalid to try getting a prebuilt image for AlgorithmName == CUSTOM ")
-}
-
-func buildParameterRanges(ctx context.Context, literals map[string]*core.Literal) *commonv1.ParameterRanges {
-	var retValue = &commonv1.ParameterRanges{
-		CategoricalParameterRanges: []commonv1.CategoricalParameterRange{},
-		ContinuousParameterRanges:  []commonv1.ContinuousParameterRange{},
-		IntegerParameterRanges:     []commonv1.IntegerParameterRange{},
-	}
-
-	for name, literal := range literals {
-		if literal.GetScalar() == nil || literal.GetScalar().GetGeneric() == nil {
-			logger.Infof(ctx, "Input [%v] is not of type Generic, won't be considered for parameter ranges.", name)
-			continue
-		}
-
-		p := &flyteSagemakerIdl.ParameterRangeOneOf{}
-		err := utils.UnmarshalStruct(literal.GetScalar().GetGeneric(), p)
-		if err != nil {
-			logger.Infof(ctx, "Failed to unmarshal input [%v] as a ParameterRangeOneOf. Skipping. Error: %v", name, err)
-			continue
-		}
-
-		switch p.GetParameterRangeType().(type) {
-		case *flyteSagemakerIdl.ParameterRangeOneOf_CategoricalParameterRange:
-			var newElem = commonv1.CategoricalParameterRange{
-				Name:   awsSdk.String(name),
-				Values: p.GetCategoricalParameterRange().GetValues(),
-			}
-
-			retValue.CategoricalParameterRanges = append(retValue.CategoricalParameterRanges, newElem)
-
-		case *flyteSagemakerIdl.ParameterRangeOneOf_ContinuousParameterRange:
-			scalingTypeString := strings.Title(strings.ToLower(p.GetContinuousParameterRange().GetScalingType().String()))
-			var newElem = commonv1.ContinuousParameterRange{
-				MaxValue:    awsSdk.String(fmt.Sprintf("%f", p.GetContinuousParameterRange().GetMaxValue())),
-				MinValue:    awsSdk.String(fmt.Sprintf("%f", p.GetContinuousParameterRange().GetMinValue())),
-				Name:        awsSdk.String(name),
-				ScalingType: commonv1.HyperParameterScalingType(scalingTypeString),
-			}
-
-			retValue.ContinuousParameterRanges = append(retValue.ContinuousParameterRanges, newElem)
-
-		case *flyteSagemakerIdl.ParameterRangeOneOf_IntegerParameterRange:
-			scalingTypeString := strings.Title(strings.ToLower(p.GetIntegerParameterRange().GetScalingType().String()))
-			var newElem = commonv1.IntegerParameterRange{
-				MaxValue:    awsSdk.String(fmt.Sprintf("%d", p.GetIntegerParameterRange().GetMaxValue())),
-				MinValue:    awsSdk.String(fmt.Sprintf("%d", p.GetIntegerParameterRange().GetMinValue())),
-				Name:        awsSdk.String(name),
-				ScalingType: commonv1.HyperParameterScalingType(scalingTypeString),
-			}
-
-			retValue.IntegerParameterRanges = append(retValue.IntegerParameterRanges, newElem)
-		}
-	}
-
-	// TODO: Inspect input interface to determine the inputs of type ParameterRange and fail if any of them is not
-	// marshalled correctly. This is currently not easy to do because there is no universal way to compactly refer to a
-	// protobuf type and version. This might be a useful addition to Flyte's programming language for advanced usecases.
-	return retValue
-}
-
-func convertHyperparameterTuningJobConfigToSpecType(hpoJobConfigLiteral *core.Literal) (*flyteSagemakerIdl.HyperparameterTuningJobConfig, error) {
-	var retValue = &flyteSagemakerIdl.HyperparameterTuningJobConfig{}
-	if hpoJobConfigLiteral.GetScalar() == nil {
-		return nil, errors.Errorf(ErrSagemaker, "[Hyperparameters] should not be nil.")
-	}
-
-	var err error
-	switch v := hpoJobConfigLiteral.GetScalar().GetValue().(type) {
-	case *core.Scalar_Generic:
-		err = utils.UnmarshalStruct(v.Generic, retValue)
-	case *core.Scalar_Binary:
-		err = proto.Unmarshal(v.Binary.GetValue(), retValue)
-	default:
-		err = errors.Errorf(ErrSagemaker, "[Hyperparameter Tuning Job Config should be set to a struct.")
-	}
-
-	if err != nil {
-		return nil, errors.Wrapf(ErrSagemaker, err, "Hyperparameter Tuning Job Config Literal in input cannot"+
-			" be unmarshalled into spec type")
-	}
-
-	return retValue, nil
-}
-
-func convertStaticHyperparamsLiteralToSpecType(hyperparamLiteral *core.Literal) ([]*commonv1.KeyValuePair, error) {
-	var retValue []*commonv1.KeyValuePair
-	if hyperparamLiteral.GetScalar() == nil || hyperparamLiteral.GetScalar().GetGeneric() == nil {
-		return nil, errors.Errorf(ErrSagemaker, "[Hyperparameters] should be of type [Scalar.Generic]")
-	}
-	hyperFields := hyperparamLiteral.GetScalar().GetGeneric().GetFields()
-	if hyperFields == nil {
-		return nil, errors.Errorf(ErrSagemaker, "Failed to get the static hyperparameters field from the literal")
-	}
-
-	keys := make([]string, 0)
-	for k := range hyperFields {
-		keys = append(keys, k)
-	}
-	sort.Strings(keys)
-
-	fmt.Printf("[%v]", keys)
-	for _, k := range keys {
-		v := hyperFields[k]
-		var newElem = commonv1.KeyValuePair{
-			Name:  k,
-			Value: v.GetStringValue(),
-		}
-		retValue = append(retValue, &newElem)
-	}
-
-	return retValue, nil
-}
-
-func ToStringPtr(str string) *string {
-	if str == "" {
-		return nil
-	}
-	return &str
-}
-
-func ToInt64Ptr(i int64) *int64 {
-	if i == 0 {
-		return nil
-	}
-	return &i
-}
-
-func ToIntPtr(i int) *int {
-	if i == 0 {
-		return nil
-	}
-	return &i
-}
-
-func ToFloat64Ptr(f float64) *float64 {
-	if f == 0 {
-		return nil
-	}
-	return &f
-}
-
-func deleteConflictingStaticHyperparameters(
-	ctx context.Context,
-	staticHPs []*commonv1.KeyValuePair,
-	tunableHPMap map[string]*flyteSagemakerIdl.ParameterRangeOneOf) []*commonv1.KeyValuePair {
-
-	resolvedStaticHPs := make([]*commonv1.KeyValuePair, 0, len(staticHPs))
-
-	for _, hp := range staticHPs {
-		if _, found := tunableHPMap[hp.Name]; !found {
-			resolvedStaticHPs = append(resolvedStaticHPs, hp)
-		} else {
-			logger.Infof(ctx,
-				"Static hyperparameter [%v] is removed because the same hyperparameter can be found in the map of tunable hyperparameters", hp.Name)
-		}
-	}
-	return resolvedStaticHPs
-}
-
-func makeHyperparametersKeysValuesFromArgs(_ context.Context, args []string) []*commonv1.KeyValuePair {
-	ret := make([]*commonv1.KeyValuePair, 0)
-	for argOrder, arg := range args {
-		ret = append(ret, &commonv1.KeyValuePair{
-			Name:  fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, argOrder, arg, FlyteSageMakerKeySuffix),
-			Value: FlyteSageMakerCmdDummyValue,
-		})
-	}
-	return ret
-}
-
-func injectTaskTemplateEnvVarToHyperparameters(ctx context.Context, taskTemplate *flyteIdlCore.TaskTemplate, hps []*commonv1.KeyValuePair) ([]*commonv1.KeyValuePair, error) {
-	if taskTemplate == nil || taskTemplate.GetContainer() == nil {
-		return hps, errors.Errorf(ErrSagemaker, "The taskTemplate is nil or the container is nil")
-	}
-
-	if hps == nil {
-		return nil, errors.Errorf(ErrSagemaker, "A nil slice of hyperparameters is passed in")
-	}
-
-	for _, ev := range taskTemplate.GetContainer().GetEnv() {
-		hpKey := fmt.Sprintf("%s%s%s", FlyteSageMakerEnvVarKeyPrefix, ev.Key, FlyteSageMakerKeySuffix)
-		logger.Infof(ctx, "Injecting env var {%v: %v} into the hyperparameter list", hpKey, ev.Value)
-		hps = append(hps, &commonv1.KeyValuePair{
-			Name:  hpKey,
-			Value: ev.Value})
-	}
-
-	return hps, nil
-}
-
-func injectArgsAndEnvVars(ctx context.Context, taskCtx pluginsCore.TaskExecutionContext, taskTemplate *flyteIdlCore.TaskTemplate) ([]*commonv1.KeyValuePair, error) {
-	templateArgs := taskTemplate.GetContainer().GetArgs()
-	templateArgs, err := template.Render(ctx, templateArgs, template.Parameters{
-		TaskExecMetadata: taskCtx.TaskExecutionMetadata(),
-		Inputs:           taskCtx.InputReader(),
-		OutputPath:       taskCtx.OutputWriter(),
-		Task:             taskCtx.TaskReader(),
-	})
-	if err != nil {
-		return nil, errors.Wrapf(ErrSagemaker, err, "Failed to de-template the hyperparameter values")
-	}
-	hyperParameters := makeHyperparametersKeysValuesFromArgs(ctx, templateArgs)
-	hyperParameters, err = injectTaskTemplateEnvVarToHyperparameters(ctx, taskTemplate, hyperParameters)
-	if err != nil {
-		return nil, errors.Wrapf(ErrSagemaker, err, "Failed to inject the task template's container env vars to the hyperparameter list")
-	}
-	return hyperParameters, nil
-}
-
-func checkIfRequiredInputLiteralsExist(inputLiterals map[string]*flyteIdlCore.Literal, inputKeys []string) error {
-	for _, inputKey := range inputKeys {
-		_, ok := inputLiterals[inputKey]
-		if !ok {
-			return errors.Errorf(ErrSagemaker, "Required input not specified: [%v]", inputKey)
-		}
-	}
-	return nil
-}
-
-func getTaskTemplate(ctx context.Context, taskCtx pluginsCore.TaskExecutionContext) (*flyteIdlCore.TaskTemplate, error) {
-	taskTemplate, err := taskCtx.TaskReader().Read(ctx)
-	if err != nil {
-		return nil, errors.Wrapf(ErrSagemaker, err, "unable to fetch task specification")
-	} else if taskTemplate == nil {
-		return nil, errors.Errorf(ErrSagemaker, "nil task specification")
-	}
-	return taskTemplate, nil
-}
-
-func createTaskInfo(_ context.Context, jobRegion string, jobName string, jobTypeInURL string, sagemakerLinkName string) (*pluginsCore.TaskInfo, error) {
-	cwLogURL := fmt.Sprintf("https://%s.console.aws.amazon.com/cloudwatch/home?region=%s#logStream:group=/aws/sagemaker/TrainingJobs;prefix=%s;streamFilter=typeLogStreamPrefix",
-		jobRegion, jobRegion, jobName)
-	smLogURL := fmt.Sprintf("https://%s.console.aws.amazon.com/sagemaker/home?region=%s#/%s/%s",
-		jobRegion, jobRegion, jobTypeInURL, jobName)
-
-	taskLogs := []*flyteIdlCore.TaskLog{
-		{
-			Uri:           cwLogURL,
-			Name:          CloudWatchLogLinkName,
-			MessageFormat: flyteIdlCore.TaskLog_JSON,
-		},
-		{
-			Uri:           smLogURL,
-			Name:          sagemakerLinkName,
-			MessageFormat: flyteIdlCore.TaskLog_UNKNOWN,
-		},
-	}
-
-	customInfoMap := make(map[string]string)
-
-	customInfo, err := utils.MarshalObjToStruct(customInfoMap)
-	if err != nil {
-		return nil, errors.Wrapf(pluginErrors.RuntimeFailure, err, "Unable to create a custom info object")
-	}
-
-	return &pluginsCore.TaskInfo{
-		Logs:       taskLogs,
-		CustomInfo: customInfo,
-		ExternalResources: []*pluginsCore.ExternalResource{
-			{
-				ExternalID: jobName,
-			},
-		},
-	}, nil
-}
diff --git a/flyteplugins/go/tasks/plugins/k8s/sagemaker/utils_test.go b/flyteplugins/go/tasks/plugins/k8s/sagemaker/utils_test.go
deleted file mode 100644
index 8c5093ddac..0000000000
--- a/flyteplugins/go/tasks/plugins/k8s/sagemaker/utils_test.go
+++ /dev/null
@@ -1,438 +0,0 @@
-package sagemaker
-
-import (
-	"context"
-	"fmt"
-	"reflect"
-	"strconv"
-	"testing"
-
-	commonv1 "github.com/aws/amazon-sagemaker-operator-for-k8s/api/v1/common"
-	structpb "github.com/golang/protobuf/ptypes/struct"
-	"github.com/stretchr/testify/assert"
-
-	"github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core"
-	flyteSagemakerIdl "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker"
-	sagemakerSpec "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/plugins/sagemaker"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/utils"
-	"github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/sagemaker/config"
-	sagemakerConfig "github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/sagemaker/config"
-	stdConfig "github.com/flyteorg/flyte/flytestdlib/config"
-	"github.com/flyteorg/flyte/flytestdlib/config/viper"
-)
-
-func makeGenericLiteral(st *structpb.Struct) *core.Literal {
-	return &core.Literal{
-		Value: &core.Literal_Scalar{
-			Scalar: &core.Scalar{
-				Value: &core.Scalar_Generic{
-					Generic: st,
-				},
-			},
-		},
-	}
-}
-
-func generateParameterRangeInputs() map[string]*core.Literal {
-	hpMap := generateMockTunableHPMap()
-	res := map[string]*core.Literal{}
-	for name, paramRange := range hpMap {
-		st := structpb.Struct{}
-		err := utils.MarshalStruct(paramRange, &st)
-		if err != nil {
-			panic(err)
-		}
-
-		res[name] = makeGenericLiteral(&st)
-	}
-
-	return res
-}
-
-func generateMockTunableHPMap() map[string]*sagemakerSpec.ParameterRangeOneOf {
-	ret := map[string]*sagemakerSpec.ParameterRangeOneOf{
-		"hp1": {ParameterRangeType: &sagemakerSpec.ParameterRangeOneOf_IntegerParameterRange{
-			IntegerParameterRange: &sagemakerSpec.IntegerParameterRange{
-				MaxValue: 10, MinValue: 0, ScalingType: sagemakerSpec.HyperparameterScalingType_AUTO}}},
-		"hp2": {ParameterRangeType: &sagemakerSpec.ParameterRangeOneOf_ContinuousParameterRange{
-			ContinuousParameterRange: &sagemakerSpec.ContinuousParameterRange{
-				MaxValue: 5.0, MinValue: 3.0, ScalingType: sagemakerSpec.HyperparameterScalingType_LINEAR}}},
-		"hp3": {ParameterRangeType: &sagemakerSpec.ParameterRangeOneOf_CategoricalParameterRange{
-			CategoricalParameterRange: &sagemakerSpec.CategoricalParameterRange{
-				Values: []string{"AAA", "BBB", "CCC"}}}},
-	}
-	return ret
-}
-
-func generatePartiallyConflictingStaticHPs() []*commonv1.KeyValuePair {
-	ret := []*commonv1.KeyValuePair{
-		{Name: "hp1", Value: "100"},
-		{Name: "hp4", Value: "0.5"},
-		{Name: "hp3", Value: "ddd,eee"},
-	}
-	return ret
-}
-
-func generateTotallyConflictingStaticHPs() []*commonv1.KeyValuePair {
-	ret := []*commonv1.KeyValuePair{
-		{Name: "hp1", Value: "100"},
-		{Name: "hp2", Value: "0.5"},
-		{Name: "hp3", Value: "ddd,eee"},
-	}
-	return ret
-}
-
-func generateNonConflictingStaticHPs() []*commonv1.KeyValuePair {
-	ret := []*commonv1.KeyValuePair{
-		{Name: "hp5", Value: "100"},
-		{Name: "hp4", Value: "0.5"},
-		{Name: "hp7", Value: "ddd,eee"},
-	}
-	return ret
-}
-
-func generateMockSageMakerConfig() *sagemakerConfig.Config {
-	return &sagemakerConfig.Config{
-		RoleArn:           "default",
-		Region:            "us-east-1",
-		RoleAnnotationKey: "role_annotation_key",
-		// https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
-		PrebuiltAlgorithms: []sagemakerConfig.PrebuiltAlgorithmConfig{
-			{
-				Name: "xgboost",
-				RegionalConfig: []sagemakerConfig.RegionalConfig{
-					{
-						Region: "us-east-1",
-						VersionConfigs: []sagemakerConfig.VersionConfig{
-							{
-								Version: "0.9.1",
-								Image:   "amazonaws.com/xgboost:latest",
-							},
-						},
-					},
-				},
-			},
-		},
-	}
-}
-
-func Test_deleteConflictingStaticHyperparameters(t *testing.T) {
-	mockCtx := context.TODO()
-	type args struct {
-		ctx          context.Context
-		staticHPs    []*commonv1.KeyValuePair
-		tunableHPMap map[string]*sagemakerSpec.ParameterRangeOneOf
-	}
-	tests := []struct {
-		name string
-		args args
-		want []*commonv1.KeyValuePair
-	}{
-		{name: "Partially conflicting hyperparameter list", args: args{
-			ctx:          mockCtx,
-			staticHPs:    generatePartiallyConflictingStaticHPs(),
-			tunableHPMap: generateMockTunableHPMap(),
-		}, want: []*commonv1.KeyValuePair{{Name: "hp4", Value: "0.5"}}},
-		{name: "Totally conflicting hyperparameter list", args: args{
-			ctx:          mockCtx,
-			staticHPs:    generateTotallyConflictingStaticHPs(),
-			tunableHPMap: generateMockTunableHPMap(),
-		}, want: []*commonv1.KeyValuePair{}},
-		{name: "Non-conflicting hyperparameter list", args: args{
-			ctx:          mockCtx,
-			staticHPs:    generateNonConflictingStaticHPs(),
-			tunableHPMap: generateMockTunableHPMap(),
-		}, want: []*commonv1.KeyValuePair{{Name: "hp5", Value: "100"}, {Name: "hp4", Value: "0.5"}, {Name: "hp7", Value: "ddd,eee"}}},
-	}
-	for _, tt := range tests {
-		t.Run(tt.name, func(t *testing.T) {
-			if got := deleteConflictingStaticHyperparameters(tt.args.ctx, tt.args.staticHPs, tt.args.tunableHPMap); !reflect.DeepEqual(got, tt.want) {
-				t.Errorf("deleteConflictingStaticHyperparameters() = %v, want %v", got, tt.want)
-			}
-		})
-	}
-}
-
-func Test_buildParameterRanges(t *testing.T) {
-	type args struct {
-		inputs map[string]*core.Literal
-	}
-	tests := []struct {
-		name string
-		args args
-		want *commonv1.ParameterRanges
-	}{
-		{name: "Building a list of a mixture of all three types of parameter ranges",
-			args: args{inputs: generateParameterRangeInputs()},
-			want: &commonv1.ParameterRanges{
-				CategoricalParameterRanges: []commonv1.CategoricalParameterRange{{Name: ToStringPtr("hp3"), Values: []string{"AAA", "BBB", "CCC"}}},
-				ContinuousParameterRanges:  []commonv1.ContinuousParameterRange{{Name: ToStringPtr("hp2"), MinValue: ToStringPtr("3.0"), MaxValue: ToStringPtr("5.0")}},
-				IntegerParameterRanges:     []commonv1.IntegerParameterRange{{Name: ToStringPtr("hp1"), MinValue: ToStringPtr("0"), MaxValue: ToStringPtr("10")}},
-			},
-		},
-	}
-	for _, tt := range tests {
-		t.Run(tt.name, func(t *testing.T) {
-			got := buildParameterRanges(context.TODO(), tt.args.inputs)
-			wantCatPr := tt.want.CategoricalParameterRanges[0]
-			gotCatPr := got.CategoricalParameterRanges[0]
-			if *wantCatPr.Name != *gotCatPr.Name || !reflect.DeepEqual(wantCatPr.Values, gotCatPr.Values) {
-				t.Errorf("buildParameterRanges(): CategoricalParameterRange: got [Name: %v, Value: %v], want [Name: %v, Value: %v]",
-					*gotCatPr.Name, gotCatPr.Values, *wantCatPr.Name, wantCatPr.Values)
-			}
-			wantIntPr := tt.want.IntegerParameterRanges[0]
-			gotIntPr := got.IntegerParameterRanges[0]
-			if *wantIntPr.Name != *gotIntPr.Name || *wantIntPr.MinValue != *gotIntPr.MinValue || *wantIntPr.MaxValue != *gotIntPr.MaxValue {
-				t.Errorf("buildParameterRanges(): IntegerParameterRange: got [Name: %v, MinValue: %v, MaxValue: %v], want [Name: %v, MinValue: %v, MaxValue: %v]",
-					*gotIntPr.Name, *gotIntPr.MinValue, *gotIntPr.MaxValue, *wantIntPr.Name, *wantIntPr.MinValue, *wantIntPr.MaxValue)
-			}
-			wantConPr := tt.want.ContinuousParameterRanges[0]
-			gotConPr := got.ContinuousParameterRanges[0]
-			wantMin, _ := strconv.ParseFloat(*wantConPr.MinValue, 64)
-			gotMin, err := strconv.ParseFloat(*gotConPr.MinValue, 64)
-			if err != nil {
-				t.Errorf("buildParameterRanges(): ContinuousParameterRange: got invalid min value [%v]", gotMin)
-			}
-			wantMax, _ := strconv.ParseFloat(*wantConPr.MaxValue, 64)
-			gotMax, err := strconv.ParseFloat(*gotConPr.MaxValue, 64)
-			if err != nil {
-				t.Errorf("buildParameterRanges(): ContinuousParameterRange: got invalid max value [%v]", gotMax)
-			}
-			if *wantConPr.Name != *gotConPr.Name || wantMin != gotMin || wantMax != gotMax {
-				t.Errorf("buildParameterRanges(): ContinuousParameterRange: got [Name: %v, MinValue: %v, MaxValue: %v], want [Name: %v, MinValue: %v, MaxValue: %v]",
-					*gotConPr.Name, gotMin, gotMax, *wantConPr.Name, wantMin, wantMax)
-			}
-		})
-	}
-}
-
-func Test_getLatestTrainingImage(t *testing.T) {
-	type args struct {
-		versionConfigs []config.VersionConfig
-	}
-	tests := []struct {
-		name    string
-		args    args
-		want    string
-		wantErr bool
-	}{
-		{name: "minor version", args: args{versionConfigs: []config.VersionConfig{
-			{Version: "0.9", Image: "image1"}, {Version: "0.92", Image: "image2"}, {Version: "0.9.2", Image: "image3"},
-		}}, want: "image2", wantErr: false},
-		{name: "patch version", args: args{versionConfigs: []config.VersionConfig{
-			{Version: "0.9", Image: "image1"}, {Version: "0.9.2", Image: "image3"},
-		}}, want: "image3", wantErr: false},
-		{name: "major version", args: args{versionConfigs: []config.VersionConfig{
-			{Version: "1.0.0-3", Image: "image1"}, {Version: "0.9.2", Image: "image3"},
-		}}, want: "image1", wantErr: false},
-	}
-	for _, tt := range tests {
-		t.Run(tt.name, func(t *testing.T) {
-			got, err := getLatestTrainingImage(tt.args.versionConfigs)
-			if (err != nil) != tt.wantErr {
-				t.Errorf("getLatestTrainingImage() error = %v, wantErr %v", err, tt.wantErr)
-				return
-			}
-			if got != tt.want {
-				t.Errorf("getLatestTrainingImage() got = %v, want %v", got, tt.want)
-			}
-		})
-	}
-}
-
-func Test_getPrebuiltTrainingImage(t *testing.T) {
-	ctx := context.TODO()
-
-	_ = sagemakerConfig.SetSagemakerConfig(generateMockSageMakerConfig())
-
-	type args struct {
-		ctx context.Context
-		job *sagemakerSpec.TrainingJob
-	}
-	tests := []struct {
-		name    string
-		args    args
-		want    string
-		wantErr bool
-	}{
-		{name: "xgboost version found", args: args{ctx: ctx, job: &sagemakerSpec.TrainingJob{
-			AlgorithmSpecification: &sagemakerSpec.AlgorithmSpecification{
-				InputMode:         0,
-				AlgorithmName:     sagemakerSpec.AlgorithmName_XGBOOST,
-				AlgorithmVersion:  "0.9.1",
-				MetricDefinitions: nil,
-				InputContentType:  0,
-			},
-			TrainingJobResourceConfig: nil,
-		}}, want: "amazonaws.com/xgboost:latest", wantErr: false},
-		{name: "xgboost version not found", args: args{ctx: ctx, job: &sagemakerSpec.TrainingJob{
-			AlgorithmSpecification: &sagemakerSpec.AlgorithmSpecification{
-				InputMode:         0,
-				AlgorithmName:     sagemakerSpec.AlgorithmName_XGBOOST,
-				AlgorithmVersion:  "0.7",
-				MetricDefinitions: nil,
-				InputContentType:  0,
-			},
-			TrainingJobResourceConfig: nil,
-		}}, want: "", wantErr: true},
-		{name: "custom", args: args{ctx: ctx, job: &sagemakerSpec.TrainingJob{
-			AlgorithmSpecification: &sagemakerSpec.AlgorithmSpecification{
-				InputMode:         0,
-				AlgorithmName:     sagemakerSpec.AlgorithmName_CUSTOM,
-				AlgorithmVersion:  "0.7",
-				MetricDefinitions: nil,
-				InputContentType:  0,
-			},
-			TrainingJobResourceConfig: nil,
-		}}, want: "", wantErr: true},
-	}
-	for _, tt := range tests {
-		t.Run(tt.name, func(t *testing.T) {
-			got, err := getPrebuiltTrainingImage(tt.args.ctx, tt.args.job)
-			if (err != nil) != tt.wantErr {
-				t.Errorf("getPrebuiltTrainingImage() error = %v, wantErr %v", err, tt.wantErr)
-				return
-			}
-			if got != tt.want {
-				t.Errorf("getPrebuiltTrainingImage() got = %v, want %v", got, tt.want)
-			}
-		})
-	}
-}
-
-func Test_getPrebuiltTrainingImage_LoadConfig(t *testing.T) {
-	configAccessor := viper.NewAccessor(stdConfig.Options{
-		StrictMode:  true,
-		SearchPaths: []string{"testdata/config.yaml"},
-	})
-
-	err := configAccessor.UpdateConfig(context.TODO())
-	assert.NoError(t, err)
-
-	assert.NotNil(t, config.GetSagemakerConfig())
-
-	image, err := getPrebuiltTrainingImage(context.TODO(), &sagemakerSpec.TrainingJob{AlgorithmSpecification: &sagemakerSpec.AlgorithmSpecification{
-		AlgorithmName:    sagemakerSpec.AlgorithmName_XGBOOST,
-		AlgorithmVersion: "0.90",
-	}})
-
-	assert.NoError(t, err)
-	assert.Equal(t, "XGBOOST_us-west-2_image-0.90", image)
-
-	image, err = getPrebuiltTrainingImage(context.TODO(), &sagemakerSpec.TrainingJob{AlgorithmSpecification: &sagemakerSpec.AlgorithmSpecification{
-		AlgorithmName:    sagemakerSpec.AlgorithmName_XGBOOST,
-		AlgorithmVersion: "1.0",
-	}})
-
-	assert.NoError(t, err)
-	assert.Equal(t, "XGBOOST_us-west-2_image-1.0", image)
-}
-
-func Test_getTrainingJobImage(t *testing.T) {
-
-	ctx := context.TODO()
-	defaultCfg := config.GetSagemakerConfig()
-	defer func() {
-		_ = config.SetSagemakerConfig(defaultCfg)
-	}()
-
-	type Result struct {
-		name    string
-		want    string
-		wantErr bool
-	}
-
-	configAccessor := viper.NewAccessor(stdConfig.Options{
-		StrictMode:  true,
-		SearchPaths: []string{"testdata/config.yaml"},
-	})
-
-	err := configAccessor.UpdateConfig(context.TODO())
-	assert.NoError(t, err)
-
-	expectedResult := Result{
-		"Should retrieve image url from config for built-in algorithms", "XGBOOST_us-west-2_image-0.90", false,
-	}
-	t.Run(expectedResult.name, func(t *testing.T) {
-		tjObj := generateMockTrainingJobCustomObj(
-			flyteSagemakerIdl.InputMode_FILE,
-			flyteSagemakerIdl.AlgorithmName_XGBOOST,
-			"0.90",
-			[]*flyteSagemakerIdl.MetricDefinition{},
-			flyteSagemakerIdl.InputContentType_TEXT_CSV,
-			1,
-			"ml.m4.xlarge",
-			25,
-			flyteSagemakerIdl.DistributedProtocol_UNSPECIFIED)
-		taskTemplate := generateMockTrainingJobTaskTemplate("the job", tjObj)
-		taskCtx := generateMockTrainingJobTaskContext(taskTemplate, false)
-		sagemakerTrainingJob := flyteSagemakerIdl.TrainingJob{}
-		err := utils.UnmarshalStruct(taskTemplate.GetCustom(), &sagemakerTrainingJob)
-		if err != nil {
-			panic(err)
-		}
-
-		got, err := getTrainingJobImage(ctx, taskCtx, &sagemakerTrainingJob)
-		if (err != nil) != expectedResult.wantErr {
-			t.Errorf("getTrainingJobImage() error = %v, wantErr %v", err, expectedResult.wantErr)
-			return
-		}
-		if got != expectedResult.want {
-			t.Errorf("getTrainingJobImage() got = %v, want %v", got, expectedResult.want)
-		}
-	})
-
-}
-
-func Test_makeHyperparametersKeysValuesFromArgs(t *testing.T) {
-	outputPrefix := "s3://abcdefghijklmnopqrtsuvwxyz/abcdefghijklmnopqrtsuvwxyz/abcdefghijklmnopqrtsuvwxyz"
-	inputs := "s3://abcdefghijklmnopqrtsuvwxyz/abcdefghijklmnopqrtsuvwxyz/abcdefghijklmnopqrtsuvwxyz/inputs.pb"
-	type args struct {
-		in0  context.Context
-		args []string
-	}
-	tests := []struct {
-		name string
-		args args
-		want []*commonv1.KeyValuePair
-	}{
-		{name: "service pyflyte-execute",
-			args: args{
-				in0: context.TODO(),
-				args: []string{
-					"service_venv",
-					"pyflyte-execute",
-					"--task-module",
-					"abc",
-					"--task-name",
-					"abc",
-					"--output-prefix",
-					outputPrefix,
-					"--inputs",
-					inputs,
-					"--test",
-				},
-			},
-			want: []*commonv1.KeyValuePair{
-				{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 0, "service_venv", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-				{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 1, "pyflyte-execute", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-				{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 2, "--task-module", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-				{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 3, "abc", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-				{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 4, "--task-name", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-				{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 5, "abc", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-				{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 6, "--output-prefix", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-				{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 7, outputPrefix, FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-				{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 8, "--inputs", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-				{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 9, inputs, FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-				{Name: fmt.Sprintf("%s%d_%s%s", FlyteSageMakerCmdKeyPrefix, 10, "--test", FlyteSageMakerKeySuffix), Value: FlyteSageMakerCmdDummyValue},
-			},
-		},
-	}
-	for _, tt := range tests {
-		t.Run(tt.name, func(t *testing.T) {
-			if got := makeHyperparametersKeysValuesFromArgs(tt.args.in0, tt.args.args); !reflect.DeepEqual(got, tt.want) {
-				t.Errorf("makeHyperparametersKeysValuesFromArgs() = %v, want %v", got, tt.want)
-			}
-		})
-	}
-}
diff --git a/flyteplugins/go/tasks/testdata/config.yaml b/flyteplugins/go/tasks/testdata/config.yaml
index e30536261c..4747b6811a 100755
--- a/flyteplugins/go/tasks/testdata/config.yaml
+++ b/flyteplugins/go/tasks/testdata/config.yaml
@@ -1,20 +1,6 @@
 # Sample plugins config
 plugins:
   # All k8s plugins default configuration
-  sagemaker:
-    roleArn: test-role
-    region: us-east-1
-    roleAnnotationKey: "iam.amazonaws.com/role"
-    prebuiltAlgorithms:
-      - name: xgboost
-        regionalConfigs:
-          - region: "us-east-1"
-            versionConfigs:
-              - version: 0.72
-                image: "811284229777.dkr.ecr.us-east-1.amazonaws.com/xgboost:latest"
-              - version: 0.90
-                image: "683313688378.dkr.ecr.us-east-1.amazonaws.com/xgboost:latest"
-
   k8s:
     inject-finalizer: true
     default-annotations:
diff --git a/flytepropeller/cmd/controller/cmd/root.go b/flytepropeller/cmd/controller/cmd/root.go
index 1381b8180e..6be97b0c9b 100644
--- a/flytepropeller/cmd/controller/cmd/root.go
+++ b/flytepropeller/cmd/controller/cmd/root.go
@@ -18,6 +18,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/client"
 	"sigs.k8s.io/controller-runtime/pkg/manager"
 	"sigs.k8s.io/controller-runtime/pkg/metrics"
+	metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
 
 	"github.com/flyteorg/flyte/flytepropeller/pkg/controller"
 	config2 "github.com/flyteorg/flyte/flytepropeller/pkg/controller/config"
@@ -121,16 +122,26 @@ func executeRootCmd(baseCtx context.Context, cfg *config2.Config) error {
 	// Add the propeller subscope because the MetricsPrefix only has "flyte:" to get uniform collection of metrics.
 	propellerScope := promutils.NewScope(cfg.MetricsPrefix).NewSubScope("propeller").NewSubScope(cfg.LimitNamespace)
 	limitNamespace := ""
+	var namespaceConfigs map[string]cache.Config
 	if cfg.LimitNamespace != defaultNamespace {
 		limitNamespace = cfg.LimitNamespace
+		namespaceConfigs = map[string]cache.Config{
+			limitNamespace: {},
+		}
 	}
+
 	options := manager.Options{
-		Namespace:  limitNamespace,
-		SyncPeriod: &cfg.DownstreamEval.Duration,
-		NewClient: func(cache cache.Cache, config *rest.Config, options client.Options, uncachedObjects ...client.Object) (client.Client, error) {
-			return executors.NewFallbackClientBuilder(propellerScope.NewSubScope("kube")).Build(cache, config, options)
+		Cache: cache.Options{
+			SyncPeriod:        &cfg.DownstreamEval.Duration,
+			DefaultNamespaces: namespaceConfigs,
+		},
+		NewClient: func(config *rest.Config, options client.Options) (client.Client, error) {
+			return executors.NewFallbackClientBuilder(propellerScope.NewSubScope("kube")).Build(nil, config, options)
+		},
+		Metrics: metricsserver.Options{
+			// Disable metrics serving
+			BindAddress: "0",
 		},
-		MetricsBindAddress: "0",
 	}
 
 	mgr, err := controller.CreateControllerManager(ctx, cfg, options)
diff --git a/flytepropeller/cmd/controller/cmd/webhook.go b/flytepropeller/cmd/controller/cmd/webhook.go
index dd0528e806..eab3851b60 100644
--- a/flytepropeller/cmd/controller/cmd/webhook.go
+++ b/flytepropeller/cmd/controller/cmd/webhook.go
@@ -9,6 +9,8 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/cache"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 	"sigs.k8s.io/controller-runtime/pkg/manager"
+	metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
+	ctrlWebhook "sigs.k8s.io/controller-runtime/pkg/webhook"
 
 	"github.com/flyteorg/flyte/flytepropeller/pkg/controller"
 	"github.com/flyteorg/flyte/flytepropeller/pkg/controller/config"
@@ -96,19 +98,29 @@ func runWebhook(origContext context.Context, propellerCfg *config.Config, cfg *w
 	}
 
 	webhookScope := promutils.NewScope(cfg.MetricsPrefix).NewSubScope("webhook")
-	limitNamespace := ""
+	var namespaceConfigs map[string]cache.Config
 	if propellerCfg.LimitNamespace != defaultNamespace {
-		limitNamespace = propellerCfg.LimitNamespace
+		namespaceConfigs = map[string]cache.Config{
+			propellerCfg.LimitNamespace: {},
+		}
 	}
+
 	options := manager.Options{
-		Namespace:  limitNamespace,
-		SyncPeriod: &propellerCfg.DownstreamEval.Duration,
-		NewClient: func(cache cache.Cache, config *rest.Config, options client.Options, uncachedObjects ...client.Object) (client.Client, error) {
-			return executors.NewFallbackClientBuilder(webhookScope).Build(cache, config, options)
+		Cache: cache.Options{
+			SyncPeriod:        &propellerCfg.DownstreamEval.Duration,
+			DefaultNamespaces: namespaceConfigs,
+		},
+		NewClient: func(config *rest.Config, options client.Options) (client.Client, error) {
+			return executors.NewFallbackClientBuilder(webhookScope).Build(nil, config, options)
+		},
+		Metrics: metricsserver.Options{
+			// Disable metrics serving
+			BindAddress: "0",
 		},
-		CertDir:            cfg.CertDir,
-		Port:               cfg.ListenPort,
-		MetricsBindAddress: "0",
+		WebhookServer: ctrlWebhook.NewServer(ctrlWebhook.Options{
+			CertDir: cfg.CertDir,
+			Port:    cfg.ListenPort,
+		}),
 	}
 
 	mgr, err := controller.CreateControllerManager(ctx, propellerCfg, options)
diff --git a/flytepropeller/go.mod b/flytepropeller/go.mod
index 249353d809..673dd9aa7c 100644
--- a/flytepropeller/go.mod
+++ b/flytepropeller/go.mod
@@ -20,21 +20,22 @@ require (
 	github.com/magiconair/properties v1.8.6
 	github.com/mitchellh/mapstructure v1.5.0
 	github.com/pkg/errors v0.9.1
-	github.com/prometheus/client_golang v1.12.1
-	github.com/sirupsen/logrus v1.8.1
-	github.com/spf13/cobra v1.4.0
+	github.com/prometheus/client_golang v1.16.0
+	github.com/sirupsen/logrus v1.9.0
+	github.com/spf13/cobra v1.7.0
 	github.com/spf13/pflag v1.0.5
 	github.com/stretchr/testify v1.8.4
 	golang.org/x/exp v0.0.0-20231005195138-3e424a577f31
-	golang.org/x/sync v0.1.0
-	golang.org/x/time v0.1.0
+	golang.org/x/sync v0.2.0
+	golang.org/x/time v0.3.0
 	google.golang.org/grpc v1.56.1
 	google.golang.org/protobuf v1.30.0
-	k8s.io/api v0.24.1
-	k8s.io/apiextensions-apiserver v0.24.1
-	k8s.io/apimachinery v0.24.1
-	k8s.io/client-go v0.24.1
+	k8s.io/api v0.28.2
+	k8s.io/apiextensions-apiserver v0.28.0
+	k8s.io/apimachinery v0.28.2
+	k8s.io/client-go v0.28.1
 	k8s.io/klog v1.0.0
+	k8s.io/utils v0.0.0-20230406110748-d93618cff8a2
 	sigs.k8s.io/controller-runtime v0.12.1
 )
 
@@ -43,7 +44,7 @@ require (
 	cloud.google.com/go/compute v1.19.1 // indirect
 	cloud.google.com/go/compute/metadata v0.2.3 // indirect
 	cloud.google.com/go/iam v0.13.0 // indirect
-	cloud.google.com/go/storage v1.28.1 // indirect
+	cloud.google.com/go/storage v1.29.0 // indirect
 	github.com/Azure/azure-sdk-for-go v63.4.0+incompatible // indirect
 	github.com/Azure/azure-sdk-for-go/sdk/azcore v0.23.1 // indirect
 	github.com/Azure/azure-sdk-for-go/sdk/internal v0.9.2 // indirect
@@ -55,8 +56,6 @@ require (
 	github.com/Azure/go-autorest/logger v0.2.1 // indirect
 	github.com/Azure/go-autorest/tracing v0.6.0 // indirect
 	github.com/GoogleCloudPlatform/spark-on-k8s-operator v0.0.0-20200723154620-6f35a1152625 // indirect
-	github.com/Masterminds/semver v1.5.0 // indirect
-	github.com/aws/amazon-sagemaker-operator-for-k8s v1.0.1-0.20210303003444-0fb33b1fd49d // indirect
 	github.com/aws/aws-sdk-go v1.44.2 // indirect
 	github.com/aws/aws-sdk-go-v2 v1.2.0 // indirect
 	github.com/aws/aws-sdk-go-v2/config v1.0.0 // indirect
@@ -73,18 +72,19 @@ require (
 	github.com/dask/dask-kubernetes/v2023 v2023.0.0-20230626103304-abd02cd17b26 // indirect
 	github.com/davecgh/go-spew v1.1.1 // indirect
 	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
-	github.com/evanphx/json-patch v4.12.0+incompatible // indirect
+	github.com/evanphx/json-patch v5.6.0+incompatible // indirect
+	github.com/evanphx/json-patch/v5 v5.6.0 // indirect
 	github.com/flyteorg/stow v0.3.7 // indirect
-	github.com/fsnotify/fsnotify v1.5.1 // indirect
-	github.com/go-logr/logr v1.2.3 // indirect
+	github.com/fsnotify/fsnotify v1.6.0 // indirect
+	github.com/go-logr/logr v1.2.4 // indirect
 	github.com/go-openapi/jsonpointer v0.19.6 // indirect
-	github.com/go-openapi/jsonreference v0.20.1 // indirect
+	github.com/go-openapi/jsonreference v0.20.2 // indirect
 	github.com/go-openapi/swag v0.22.3 // indirect
 	github.com/gofrs/uuid v4.2.0+incompatible // indirect
 	github.com/gogo/protobuf v1.3.2 // indirect
-	github.com/golang-jwt/jwt/v4 v4.4.1 // indirect
+	github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
 	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
-	github.com/google/gnostic v0.5.7-v3refs // indirect
+	github.com/google/gnostic-models v0.6.8 // indirect
 	github.com/google/go-cmp v0.5.9 // indirect
 	github.com/google/gofuzz v1.2.0 // indirect
 	github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
@@ -92,7 +92,7 @@ require (
 	github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
 	github.com/hashicorp/golang-lru v0.5.4 // indirect
 	github.com/hashicorp/hcl v1.0.0 // indirect
-	github.com/inconshreveable/mousetrap v1.0.0 // indirect
+	github.com/inconshreveable/mousetrap v1.1.0 // indirect
 	github.com/jmespath/go-jmespath v0.4.0 // indirect
 	github.com/josharian/intern v1.0.0 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
@@ -100,8 +100,8 @@ require (
 	github.com/kubeflow/training-operator v1.5.0-rc.0 // indirect
 	github.com/mailru/easyjson v0.7.7 // indirect
 	github.com/mattn/go-colorable v0.1.12 // indirect
-	github.com/mattn/go-isatty v0.0.14 // indirect
-	github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
+	github.com/mattn/go-isatty v0.0.16 // indirect
+	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
 	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
@@ -110,9 +110,9 @@ require (
 	github.com/pelletier/go-toml/v2 v2.0.0-beta.8 // indirect
 	github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 // indirect
 	github.com/pmezard/go-difflib v1.0.0 // indirect
-	github.com/prometheus/client_model v0.2.0 // indirect
-	github.com/prometheus/common v0.32.1 // indirect
-	github.com/prometheus/procfs v0.7.3 // indirect
+	github.com/prometheus/client_model v0.4.0 // indirect
+	github.com/prometheus/common v0.44.0 // indirect
+	github.com/prometheus/procfs v0.10.1 // indirect
 	github.com/ray-project/kuberay/ray-operator v0.0.0-20220728052838-eaa75fa6707c // indirect
 	github.com/spf13/afero v1.9.2 // indirect
 	github.com/spf13/cast v1.4.1 // indirect
@@ -121,25 +121,26 @@ require (
 	github.com/stretchr/objx v0.5.0 // indirect
 	github.com/subosito/gotenv v1.2.0 // indirect
 	go.opencensus.io v0.24.0 // indirect
-	golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e // indirect
-	golang.org/x/net v0.9.0 // indirect
-	golang.org/x/oauth2 v0.7.0 // indirect
+	golang.org/x/crypto v0.11.0 // indirect
+	golang.org/x/net v0.13.0 // indirect
+	golang.org/x/oauth2 v0.8.0 // indirect
 	golang.org/x/sys v0.12.0 // indirect
-	golang.org/x/term v0.7.0 // indirect
-	golang.org/x/text v0.9.0 // indirect
+	golang.org/x/term v0.10.0 // indirect
+	golang.org/x/text v0.11.0 // indirect
 	golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
-	gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
+	gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
 	google.golang.org/api v0.114.0 // indirect
 	google.golang.org/appengine v1.6.7 // indirect
-	google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
+	google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect
+	google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
 	gopkg.in/ini.v1 v1.66.4 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
-	k8s.io/component-base v0.24.1 // indirect
-	k8s.io/klog/v2 v2.90.1 // indirect
-	k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
-	k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
+	k8s.io/component-base v0.28.1 // indirect
+	k8s.io/klog/v2 v2.100.1 // indirect
+	k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect
 	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
 	sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
 	sigs.k8s.io/yaml v1.3.0 // indirect
@@ -147,10 +148,12 @@ require (
 
 replace (
 	github.com/aws/amazon-sagemaker-operator-for-k8s => github.com/aws/amazon-sagemaker-operator-for-k8s v1.0.1-0.20210303003444-0fb33b1fd49d
-	github.com/flyteorg/flyte/datacatalog => ../datacatalog
-	github.com/flyteorg/flyte/flyteadmin => ../flyteadmin
 	github.com/flyteorg/flyte/flyteidl => ../flyteidl
 	github.com/flyteorg/flyte/flyteplugins => ../flyteplugins
-	github.com/flyteorg/flyte/flytepropeller => ../flytepropeller
 	github.com/flyteorg/flyte/flytestdlib => ../flytestdlib
+	k8s.io/api => k8s.io/api v0.28.2
+	k8s.io/apimachinery => k8s.io/apimachinery v0.28.2
+	k8s.io/client-go => k8s.io/client-go v0.28.2
+	k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f
+	sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.16.2
 )
diff --git a/flytepropeller/go.sum b/flytepropeller/go.sum
index 5430099db3..6949600a0a 100644
--- a/flytepropeller/go.sum
+++ b/flytepropeller/go.sum
@@ -17,9 +17,6 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb
 cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
 cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
 cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
-cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
-cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
-cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
 cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys=
 cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY=
 cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
@@ -34,7 +31,6 @@ cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGB
 cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
 cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
 cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
-cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
 cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k=
 cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0=
 cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM=
@@ -48,8 +44,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
 cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
 cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
 cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
-cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI=
-cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y=
+cloud.google.com/go/storage v1.29.0 h1:6weCgzRvMg7lzuUurI4697AqIRPU1SvzHhynwpW31jI=
+cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
 github.com/Azure/azure-sdk-for-go v63.4.0+incompatible h1:fle3M5Q7vr8auaiPffKyUQmLbvYeqpw30bKU6PrWJFo=
 github.com/Azure/azure-sdk-for-go v63.4.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
@@ -60,31 +56,20 @@ github.com/Azure/azure-sdk-for-go/sdk/internal v0.9.2 h1:Px2KVERcYEg2Lv25AqC2hVr
 github.com/Azure/azure-sdk-for-go/sdk/internal v0.9.2/go.mod h1:CdSJQNNzZhCkwDaV27XV1w48ZBPtxe7mlrZAsPNxD5g=
 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0 h1:0nJeKDmB7a1a8RDMjTltahlPsaNlWjq/LpkZleSwINk=
 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0/go.mod h1:mbwxKc/fW+IkF0GG591MuXw0KuEQBDkeRoZ9vmVJPxg=
-github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
 github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
 github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
-github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA=
 github.com/Azure/go-autorest/autorest v0.11.27 h1:F3R3q42aWytozkV8ihzcgMO4OA4cuqr3bNlsEuF6//A=
 github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U=
-github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
-github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M=
 github.com/Azure/go-autorest/autorest/adal v0.9.18 h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ=
 github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ=
-github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
 github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
 github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
-github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
-github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
 github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
 github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw=
 github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU=
 github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
-github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
 github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=
 github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
-github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=
 github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
 github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
 github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 h1:WVsrXCnHlDDX8ls+tootqRE87/hL9S/g4ewig9RsD/c=
@@ -94,39 +79,9 @@ github.com/DiSiqueira/GoTree v1.0.1-0.20180907134536-53a8e837f295 h1:xJ0dAkuxJXf
 github.com/DiSiqueira/GoTree v1.0.1-0.20180907134536-53a8e837f295/go.mod h1:e0aH495YLkrsIe9fhedd6aSR6fgU/qhKvtroi6y7G/M=
 github.com/GoogleCloudPlatform/spark-on-k8s-operator v0.0.0-20200723154620-6f35a1152625 h1:cQyO5JQ2iuHnEcF3v24kdDMsgh04RjyFPDtuvD6PCE0=
 github.com/GoogleCloudPlatform/spark-on-k8s-operator v0.0.0-20200723154620-6f35a1152625/go.mod h1:6PnrZv6zUDkrNMw0mIoGRmGBR7i9LulhKPmxFq4rUiM=
-github.com/Jeffail/gabs/v2 v2.5.1/go.mod h1:xCn81vdHKxFUuWWAaD5jCTQDNPBMh5pPs9IJ+NcziBI=
-github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
-github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
-github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
-github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
 github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
-github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-github.com/adammck/venv v0.0.0-20160819025605-8a9c907a37d3/go.mod h1:3zXR2a/VSQndtpShh783rUTaEA2mpqN2VqZclBARBc0=
-github.com/adammck/venv v0.0.0-20200610172036-e77789703e7c h1:RoL0r3mR3JSkLur8q8AD59cByJ+kRwJHODNimZBd7GI=
-github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
-github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
 github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
-github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
-github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
-github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
-github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
-github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
-github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
-github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
-github.com/aws/amazon-sagemaker-operator-for-k8s v1.0.1-0.20210303003444-0fb33b1fd49d h1:O+ayl/Vp3bDEXReXItmYHzCnsz/LKusXdRNiJKVxjPs=
-github.com/aws/amazon-sagemaker-operator-for-k8s v1.0.1-0.20210303003444-0fb33b1fd49d/go.mod h1:mZUP7GJmjiWtf8v3FD1X/QdK08BqyeH/1Ejt0qhNzCs=
-github.com/aws/aws-sdk-go v1.37.3/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
 github.com/aws/aws-sdk-go v1.44.2 h1:5VBk5r06bgxgRKVaUtm1/4NT/rtrnH2E4cnAYv5zgQc=
 github.com/aws/aws-sdk-go v1.44.2/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
 github.com/aws/aws-sdk-go-v2 v1.0.0/go.mod h1:smfAbmpW+tcRVuNUjo3MOArSZmW72t62rkCzc2i0TWM=
@@ -147,25 +102,13 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.0.0/go.mod h1:5f+cELGATgill5Pu3/vK3E
 github.com/aws/smithy-go v1.0.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw=
 github.com/aws/smithy-go v1.1.0 h1:D6CSsM3gdxaGaqXnPgOBCeL6Mophqzu7KJOu7zW78sU=
 github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw=
-github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
-github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
 github.com/benlaurie/objecthash v0.0.0-20180202135721-d1e3d6079fc1 h1:VRtJdDi2lqc3MFwmouppm2jlm6icF+7H3WYKpLENMTo=
 github.com/benlaurie/objecthash v0.0.0-20180202135721-d1e3d6079fc1/go.mod h1:jvdWlw8vowVGnZqSDC7yhPd7AifQeQbRDkZcQXV2nRg=
-github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
-github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
 github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
 github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
-github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
-github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
-github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
-github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
 github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
 github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
 github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927 h1:SKI1/fuSdodxmNNyVBR8d7X/HuLnRpvvFO0AgyQk764=
@@ -176,51 +119,17 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
-github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
-github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA=
-github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI=
 github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEkaPc=
 github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY=
-github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
-github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
-github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
-github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
-github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
-github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
-github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
-github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
-github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
-github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
-github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
-github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
-github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
+github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/dask/dask-kubernetes/v2023 v2023.0.0-20230626103304-abd02cd17b26 h1:6RByIva89lKEvwIzNQSUNcu8NG1p1wwwC4mJfVk/kqw=
 github.com/dask/dask-kubernetes/v2023 v2023.0.0-20230626103304-abd02cd17b26/go.mod h1:OqIYr2QnxR3sQK2XahJIyWVcjz38LQ4GNcUzqezFpRg=
 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/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
-github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
 github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c=
 github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko=
-github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
-github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
-github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
-github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
-github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
-github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
-github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
 github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -228,129 +137,51 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
 github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
 github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc=
-github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ=
-github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
-github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U=
+github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww=
+github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4=
 github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
 github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
-github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
 github.com/flyteorg/stow v0.3.7 h1:Cx7j8/Ux6+toD5hp5fy++927V+yAcAttDeQAlUD/864=
 github.com/flyteorg/stow v0.3.7/go.mod h1:5dfBitPM004dwaZdoVylVjxFT4GWAgI0ghAndhNUzCo=
-github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
-github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
-github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
-github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
-github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
-github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=
-github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
-github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
+github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
 github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
-github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
-github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
-github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
-github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
-github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
 github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
-github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
-github.com/go-logr/logr v0.2.1/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
 github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
-github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk=
-github.com/go-logr/zapr v0.2.0/go.mod h1:qhKdvif7YF5GI9NWEpyxTSSBdGmzkNguibrdCNVPunU=
-github.com/go-logr/zapr v1.2.0 h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk=
-github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro=
-github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
-github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
-github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
-github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
-github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
-github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
-github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
-github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
-github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
-github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
-github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
-github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
-github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
+github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
+github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo=
 github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
 github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
-github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
-github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
-github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
-github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
-github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
-github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
-github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=
-github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
-github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
-github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
-github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
-github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
-github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk=
-github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
-github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
-github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
-github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
-github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
-github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
-github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
-github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
-github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
-github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
-github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
-github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
-github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
-github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
-github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
-github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
+github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
+github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
 github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
 github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
-github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
-github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
-github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
 github.com/go-redis/redis v6.15.7+incompatible h1:3skhDh95XQMpnqeqNftPkQD9jL9e5e36z/1SUm6dy1U=
 github.com/go-redis/redis v6.15.7+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
 github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M=
 github.com/go-test/deep v1.0.7/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8=
-github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80=
-github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0=
 github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
-github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
-github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
 github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
 github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
-github.com/golang-jwt/jwt/v4 v4.4.1 h1:pC5DB52sCeK48Wlb9oPcdhnjkz1TKt1D/P7WKJ0kUcQ=
-github.com/golang-jwt/jwt/v4 v4.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
+github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
+github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
-github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -363,8 +194,6 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
 github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
-github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
-github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -380,17 +209,12 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
 github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
 github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
-github.com/google/cel-go v0.10.1/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w=
-github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA=
-github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
-github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
+github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
+github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -405,7 +229,6 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
 github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
 github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
 github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
@@ -423,11 +246,8 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf
 github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
 github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -437,96 +257,46 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
 github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A=
 github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI=
-github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
-github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
-github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=
 github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
-github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
-github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
-github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
-github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
-github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
-github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
-github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
-github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
-github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
-github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
-github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
-github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
-github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
-github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
-github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
-github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
-github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
-github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
-github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
-github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
-github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
 github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
-github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
-github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
-github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
-github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
-github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
-github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
 github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg=
-github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
-github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
+github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
 github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg=
 github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
 github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
-github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
-github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
 github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
-github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
-github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
 github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
-github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
-github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
-github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
-github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
-github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
 github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
 github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
@@ -535,184 +305,82 @@ github.com/kubeflow/common v0.4.3/go.mod h1:Qb/5aON7/OWVkN8OnjRqqT0i8X/XzMekRIZ8
 github.com/kubeflow/training-operator v1.5.0-rc.0 h1:MaxbG80SYpIbDG63tSiwav4OXczrSFA5AFnaQavzgbw=
 github.com/kubeflow/training-operator v1.5.0-rc.0/go.mod h1:xgcu/ZI/RwKbTvYgzU7ZWFpxbsefSey5We3KmKroALY=
 github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
-github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
-github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
 github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
 github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
-github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
-github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
 github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
-github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
 github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
 github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
-github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
 github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
-github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
 github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
-github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
-github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
-github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
-github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
-github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
-github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
-github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
-github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
-github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
-github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
+github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
+github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
+github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
+github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
 github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
-github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
 github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
 github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8=
-github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
 github.com/ncw/swift v1.0.53 h1:luHjjTNtekIEvHg5KdAFIBaH7bWfNkefwFnpDffSIks=
 github.com/ncw/swift v1.0.53/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
-github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
-github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
 github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
-github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
-github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
-github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
-github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
 github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
-github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY=
-github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
-github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
-github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
-github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
-github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw=
+github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU=
+github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
 github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
-github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
-github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
 github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM=
 github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8 h1:dy81yyLYJDwMTifq24Oi/IslOslRrDSb3jwDggjz3Z0=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
-github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI=
 github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ=
-github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
 github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
-github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
-github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
-github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk=
-github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
-github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
+github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
-github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
-github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
-github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=
-github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
-github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
-github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
+github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
+github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
+github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
+github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
+github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg=
+github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
 github.com/ray-project/kuberay/ray-operator v0.0.0-20220728052838-eaa75fa6707c h1:eEqXhtlsUVt798HNUEbdQsMRZSjHSOF5Ilsywuhlgfc=
 github.com/ray-project/kuberay/ray-operator v0.0.0-20220728052838-eaa75fa6707c/go.mod h1:uLBlYqsCS2nsKiVlxJxI5EVgq8CrqNeHDP5uq3hde+c=
-github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
 github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
-github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
-github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
-github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
-github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
-github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
-github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
-github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
-github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
-github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
-github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
-github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
-github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
+github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
+github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ=
 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
-github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
-github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
-github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
 github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=
 github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
-github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
 github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA=
 github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
-github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
-github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
-github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
-github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
-github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
-github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
+github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
+github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
 github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
 github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
-github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
 github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
-github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
 github.com/spf13/viper v1.11.0 h1:7OX/1FS6n7jHD1zGrZTM7WtY13ZELRyosK4k93oPr44=
 github.com/spf13/viper v1.11.0/go.mod h1:djo0X/bA5+tYVoCn+C7cAYJGcVn/qYLFTG8gdUsX7Zk=
-github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
 github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
 github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
@@ -720,7 +388,6 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
@@ -729,99 +396,35 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU
 github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
 github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
 github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
-github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
-github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
-github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
-github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
-github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
 github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4=
-go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
-go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
-go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
-go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
-go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
-go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
-go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0=
-go.etcd.io/etcd/client/v3 v3.5.1/go.mod h1:OnjH4M8OnAotwaB2l9bVgZzRFKru7/ZMoS46OtKyd3Q=
-go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE=
-go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc=
-go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4=
-go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
-go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
-go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
 go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
 go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
-go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
 go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
 go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4=
-go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo=
-go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM=
-go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU=
-go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw=
-go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc=
-go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE=
-go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE=
-go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
-go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
-go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
-go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
-go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
-go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
-go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=
+go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
 go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
-go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
-go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
-go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
-go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
-go.uber.org/zap v1.8.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
+go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
 go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
-go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
-go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
-go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
-golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM=
-golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
+golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -847,7 +450,6 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu
 golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
 golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
 golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
@@ -858,33 +460,18 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
-golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
-golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
-golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -895,7 +482,6 @@ golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/
 golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
@@ -904,20 +490,13 @@ golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwY
 golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
-golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
-golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
-golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
+golang.org/x/net v0.13.0 h1:Nvo8UFsZ8X3BhAC9699Z1j7XQ3rsZnUUm7jfBEk1ueY=
+golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -927,12 +506,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ
 golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g=
-golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
+golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
+golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -943,41 +518,21 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
-golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
+golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -990,93 +545,60 @@ golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
 golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ=
-golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
-golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c=
+golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
-golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
+golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA=
-golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
+golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -1096,7 +618,6 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjs
 golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
 golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
 golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@@ -1112,9 +633,6 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f
 golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
-golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
 golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=
 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=
@@ -1122,9 +640,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
 golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
-gomodules.xyz/jsonpatch/v2 v2.0.1/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU=
-gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY=
-gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY=
+gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
+gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
 google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
 google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
@@ -1144,8 +661,6 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513
 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
 google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
 google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
-google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
-google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
 google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE=
 google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
@@ -1188,29 +703,22 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D
 google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201102152239-715cce707fb0/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
-google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
-google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
-google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
-google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
 google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
 google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
 google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
@@ -1224,11 +732,6 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp
 google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
 google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
 google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
 google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ=
 google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
@@ -1243,50 +746,29 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
 google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
 google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 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/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
-gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
 gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
 gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
-gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
 gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4=
 gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
-gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
-gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
-gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
 gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
 gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
-gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
-gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
-gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
-gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
@@ -1294,79 +776,33 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-k8s.io/api v0.18.2/go.mod h1:SJCWI7OLzhZSvbY7U8zwNl9UA4o1fizoug34OV/2r78=
-k8s.io/api v0.18.6/go.mod h1:eeyxr+cwCjMdLAmr2W3RyDI0VvTawSg/3RFFBEnmZGI=
-k8s.io/api v0.18.8/go.mod h1:d/CXqwWv+Z2XEG1LgceeDmHQwpUJhROPx16SlxJgERY=
-k8s.io/api v0.24.1 h1:BjCMRDcyEYz03joa3K1+rbshwh1Ay6oB53+iUx2H8UY=
-k8s.io/api v0.24.1/go.mod h1:JhoOvNiLXKTPQ60zh2g0ewpA+bnEYf5q44Flhquh4vQ=
-k8s.io/apiextensions-apiserver v0.18.2/go.mod h1:q3faSnRGmYimiocj6cHQ1I3WpLqmDgJFlKL37fC4ZvY=
-k8s.io/apiextensions-apiserver v0.18.6/go.mod h1:lv89S7fUysXjLZO7ke783xOwVTm6lKizADfvUM/SS/M=
-k8s.io/apiextensions-apiserver v0.24.1 h1:5yBh9+ueTq/kfnHQZa0MAo6uNcPrtxPMpNQgorBaKS0=
-k8s.io/apiextensions-apiserver v0.24.1/go.mod h1:A6MHfaLDGfjOc/We2nM7uewD5Oa/FnEbZ6cD7g2ca4Q=
-k8s.io/apimachinery v0.18.2/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA=
-k8s.io/apimachinery v0.18.6/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko=
-k8s.io/apimachinery v0.18.8/go.mod h1:6sQd+iHEqmOtALqOFjSWp2KZ9F0wlU/nWm0ZgsYWMig=
-k8s.io/apimachinery v0.24.1 h1:ShD4aDxTQKN5zNf8K1RQ2u98ELLdIW7jEnlO9uAMX/I=
-k8s.io/apimachinery v0.24.1/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM=
-k8s.io/apiserver v0.18.2/go.mod h1:Xbh066NqrZO8cbsoenCwyDJ1OSi8Ag8I2lezeHxzwzw=
-k8s.io/apiserver v0.18.6/go.mod h1:Zt2XvTHuaZjBz6EFYzpp+X4hTmgWGy8AthNVnTdm3Wg=
-k8s.io/apiserver v0.24.1/go.mod h1:dQWNMx15S8NqJMp0gpYfssyvhYnkilc1LpExd/dkLh0=
-k8s.io/client-go v0.18.2/go.mod h1:Xcm5wVGXX9HAA2JJ2sSBUn3tCJ+4SVlCbl2MNNv+CIU=
-k8s.io/client-go v0.18.6/go.mod h1:/fwtGLjYMS1MaM5oi+eXhKwG+1UHidUEXRh6cNsdO0Q=
-k8s.io/client-go v0.18.8/go.mod h1:HqFqMllQ5NnQJNwjro9k5zMyfhZlOwpuTLVrxjkYSxU=
-k8s.io/client-go v0.24.1 h1:w1hNdI9PFrzu3OlovVeTnf4oHDt+FJLd9Ndluvnb42E=
-k8s.io/client-go v0.24.1/go.mod h1:f1kIDqcEYmwXS/vTbbhopMUbhKp2JhOeVTfxgaCIlF8=
-k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
-k8s.io/code-generator v0.18.6/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c=
-k8s.io/code-generator v0.24.1 h1:zS+dvmUNaOcvsQ4faV9hXNjsKG9/pQaLnts1Wma4RM8=
-k8s.io/code-generator v0.24.1/go.mod h1:dpVhs00hTuTdTY6jvVxvTFCk6gSMrtfRydbhZwHI15w=
-k8s.io/component-base v0.18.2/go.mod h1:kqLlMuhJNHQ9lz8Z7V5bxUUtjFZnrypArGl58gmDfUM=
-k8s.io/component-base v0.18.6/go.mod h1:knSVsibPR5K6EW2XOjEHik6sdU5nCvKMrzMt2D4In14=
-k8s.io/component-base v0.24.1 h1:APv6W/YmfOWZfo+XJ1mZwep/f7g7Tpwvdbo9CQLDuts=
-k8s.io/component-base v0.24.1/go.mod h1:DW5vQGYVCog8WYpNob3PMmmsY8A3L9QZNg4j/dV3s38=
-k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
-k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
-k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
-k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
-k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
-k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
+k8s.io/api v0.28.2 h1:9mpl5mOb6vXZvqbQmankOfPIGiudghwCoLl1EYfUZbw=
+k8s.io/api v0.28.2/go.mod h1:RVnJBsjU8tcMq7C3iaRSGMeaKt2TWEUXcpIt/90fjEg=
+k8s.io/apiextensions-apiserver v0.28.0 h1:CszgmBL8CizEnj4sj7/PtLGey6Na3YgWyGCPONv7E9E=
+k8s.io/apiextensions-apiserver v0.28.0/go.mod h1:uRdYiwIuu0SyqJKriKmqEN2jThIJPhVmOWETm8ud1VE=
+k8s.io/apimachinery v0.28.2 h1:KCOJLrc6gu+wV1BYgwik4AF4vXOlVJPdiqn0yAWWwXQ=
+k8s.io/apimachinery v0.28.2/go.mod h1:RdzF87y/ngqk9H4z3EL2Rppv5jj95vGS/HaFXrLDApU=
+k8s.io/client-go v0.28.2 h1:DNoYI1vGq0slMBN/SWKMZMw0Rq+0EQW6/AK4v9+3VeY=
+k8s.io/client-go v0.28.2/go.mod h1:sMkApowspLuc7omj1FOSUxSoqjr+d5Q0Yc0LOFnYFJY=
+k8s.io/code-generator v0.28.0 h1:msdkRVJNVFgdiIJ8REl/d3cZsMB9HByFcWMmn13NyuE=
+k8s.io/component-base v0.28.1 h1:LA4AujMlK2mr0tZbQDZkjWbdhTV5bRyEyAFe0TJxlWg=
+k8s.io/component-base v0.28.1/go.mod h1:jI11OyhbX21Qtbav7JkhehyBsIRfnO8oEgoAR12ArIU=
 k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
 k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
-k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
-k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
-k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
-k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
-k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
-k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk=
-k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg=
-k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg=
-k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
-k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=
-k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
+k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f h1:eeEUOoGYWhOz7EyXqhlR2zHKNw2mNJ9vzJmub6YN6kk=
+k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.30/go.mod h1:fEO7lRTdivWO2qYVCVG7dEADOMo/MLDCVr8So2g88Uw=
-sigs.k8s.io/controller-runtime v0.6.2/go.mod h1:vhcq/rlnENJ09SIRp3EveTaZ0yqH526hjf9iJdbUJ/E=
-sigs.k8s.io/controller-runtime v0.12.1 h1:4BJY01xe9zKQti8oRjj/NeHKRXthf1YkYJAgLONFFoI=
-sigs.k8s.io/controller-runtime v0.12.1/go.mod h1:BKhxlA4l7FPK4AQcsuL4X6vZeWnKDXez/vp1Y8dxTU0=
-sigs.k8s.io/controller-tools v0.3.0/go.mod h1:enhtKGfxZD1GFEoMgP8Fdbu+uKQ/cq1/WGJhdVChfvI=
-sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY=
+sigs.k8s.io/controller-runtime v0.16.2 h1:mwXAVuEk3EQf478PQwQ48zGOXvW27UJc8NHktQVuIPU=
+sigs.k8s.io/controller-runtime v0.16.2/go.mod h1:vpMu3LpI5sYWtujJOa2uPK61nB5rbwlN7BAB8aSLvGU=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
-sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
-sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
-sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
 sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
 sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
diff --git a/flytepropeller/pkg/compiler/validators/utils.go b/flytepropeller/pkg/compiler/validators/utils.go
index 8c4cda12ce..cc7245a6e2 100644
--- a/flytepropeller/pkg/compiler/validators/utils.go
+++ b/flytepropeller/pkg/compiler/validators/utils.go
@@ -2,7 +2,6 @@ package validators
 
 import (
 	"fmt"
-	"strings"
 
 	"github.com/golang/protobuf/proto"
 	"golang.org/x/exp/maps"
@@ -185,7 +184,17 @@ func literalTypeForLiterals(literals []*core.Literal) *core.LiteralType {
 	}
 
 	// sort inner types to ensure consistent union types are generated
-	slices.SortFunc(innerType, func(a, b *core.LiteralType) int { return strings.Compare(a.String(), b.String()) })
+	slices.SortFunc(innerType, func(a, b *core.LiteralType) int {
+		aStr := a.String()
+		bStr := b.String()
+		if aStr < bStr {
+			return -1
+		} else if aStr > bStr {
+			return 1
+		}
+
+		return 0
+	})
 
 	return &core.LiteralType{
 		Type: &core.LiteralType_UnionType{
diff --git a/flytepropeller/pkg/controller/controller.go b/flytepropeller/pkg/controller/controller.go
index 0cc3936109..fe9247265f 100644
--- a/flytepropeller/pkg/controller/controller.go
+++ b/flytepropeller/pkg/controller/controller.go
@@ -19,12 +19,12 @@ import (
 	apierrors "k8s.io/apimachinery/pkg/api/errors"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/labels"
-	"k8s.io/apimachinery/pkg/util/clock"
 	k8sInformers "k8s.io/client-go/informers"
 	"k8s.io/client-go/kubernetes"
 	"k8s.io/client-go/tools/cache"
 	"k8s.io/client-go/tools/leaderelection"
 	"k8s.io/client-go/tools/record"
+	"k8s.io/utils/clock"
 	"sigs.k8s.io/controller-runtime/pkg/manager"
 
 	"github.com/flyteorg/flyte/flyteidl/clients/go/admin"
@@ -458,10 +458,17 @@ func New(ctx context.Context, cfg *config.Config, kubeClientset kubernetes.Inter
 
 	logger.Info(ctx, "Setting up event handlers")
 	// Set up an event handler for when FlyteWorkflow resources change
-	flyteworkflowInformer.Informer().AddEventHandler(controller.getWorkflowUpdatesHandler())
+	_, err = flyteworkflowInformer.Informer().AddEventHandler(controller.getWorkflowUpdatesHandler())
+	if err != nil {
+		return nil, fmt.Errorf("failed to register event handler for FlyteWorkflow resource changes: %w", err)
+	}
 
 	updateHandler := flytek8s.GetPodTemplateUpdatesHandler(&flytek8s.DefaultPodTemplateStore)
-	podTemplateInformer.Informer().AddEventHandler(updateHandler)
+	_, err = podTemplateInformer.Informer().AddEventHandler(updateHandler)
+	if err != nil {
+		return nil, fmt.Errorf("failed to register event handler for PodTemplate resource changes: %w", err)
+	}
+
 	return controller, nil
 }
 
diff --git a/flytepropeller/pkg/controller/executors/kube.go b/flytepropeller/pkg/controller/executors/kube.go
index 7dc62135b6..acd4f5c4f3 100644
--- a/flytepropeller/pkg/controller/executors/kube.go
+++ b/flytepropeller/pkg/controller/executors/kube.go
@@ -23,72 +23,18 @@ type Client interface {
 	GetCache() cache.Cache
 }
 
-// fallbackClientReader reads from the cache first and if not found then reads from the configured reader, which
-// directly reads from the API
-type fallbackClientReader struct {
-	orderedClients []client.Reader
-}
-
-func (c fallbackClientReader) Get(ctx context.Context, key client.ObjectKey, out client.Object) (err error) {
-	for _, k8sClient := range c.orderedClients {
-		if err = k8sClient.Get(ctx, key, out); err == nil {
-			return nil
-		}
-	}
-
-	return
-}
-
-func (c fallbackClientReader) List(ctx context.Context, list client.ObjectList, opts ...client.ListOption) (err error) {
-	for _, k8sClient := range c.orderedClients {
-		if err = k8sClient.List(ctx, list, opts...); err == nil {
-			return nil
-		}
-	}
-
-	return
-}
-
 // ClientBuilder builder is the interface for the client builder.
 type ClientBuilder interface {
-	// WithUncached takes a list of runtime objects (plain or lists) that users don't want to cache
-	// for this client. This function can be called multiple times, it should append to an internal slice.
-	WithUncached(objs ...client.Object) ClientBuilder
-
 	// Build returns a new client.
 	Build(cache cache.Cache, config *rest.Config, options client.Options) (client.Client, error)
 }
 
 type FallbackClientBuilder struct {
-	uncached []client.Object
-	scope    promutils.Scope
-}
-
-func (f *FallbackClientBuilder) WithUncached(objs ...client.Object) ClientBuilder {
-	f.uncached = append(f.uncached, objs...)
-	return f
+	scope promutils.Scope
 }
 
-func (f FallbackClientBuilder) Build(cache cache.Cache, config *rest.Config, options client.Options) (client.Client, error) {
-	c, err := client.New(config, options)
-	if err != nil {
-		return nil, err
-	}
-
-	c, err = newWriteThroughCachingWriter(c, 50000, f.scope)
-	if err != nil {
-		return nil, err
-	}
-
-	return client.NewDelegatingClient(client.NewDelegatingClientInput{
-		Client: c,
-		CacheReader: fallbackClientReader{
-			orderedClients: []client.Reader{cache, c},
-		},
-		UncachedObjects: f.uncached,
-		// TODO figure out if this should be true?
-		// CacheUnstructured: true,
-	})
+func (f *FallbackClientBuilder) Build(_ cache.Cache, config *rest.Config, options client.Options) (client.Client, error) {
+	return client.New(config, options)
 }
 
 // NewFallbackClientBuilder Creates a new k8s client that uses the cached client for reads and falls back to making API
diff --git a/flytepropeller/pkg/controller/executors/mocks/fake.go b/flytepropeller/pkg/controller/executors/mocks/fake.go
index e0fdef43eb..ffd25ef9f5 100644
--- a/flytepropeller/pkg/controller/executors/mocks/fake.go
+++ b/flytepropeller/pkg/controller/executors/mocks/fake.go
@@ -15,7 +15,7 @@ import (
 type FakeInformers struct {
 }
 
-func (f *FakeInformers) Get(ctx context.Context, key client.ObjectKey, obj client.Object) error {
+func (f *FakeInformers) Get(ctx context.Context, key client.ObjectKey, obj client.Object, opts ...client.GetOption) error {
 	return nil
 }
 
@@ -31,7 +31,7 @@ func (f *FakeInformers) List(ctx context.Context, list client.ObjectList, opts .
 	return nil
 }
 
-func (f *FakeInformers) GetInformerForKind(ctx context.Context, gvk schema.GroupVersionKind) (cache.Informer, error) {
+func (f *FakeInformers) GetInformerForKind(ctx context.Context, gvk schema.GroupVersionKind, opts ...cache.InformerGetOption) (cache.Informer, error) {
 	return &controllertest.FakeInformer{}, nil
 }
 
@@ -39,7 +39,7 @@ func (f *FakeInformers) Start(ctx context.Context) error {
 	return nil
 }
 
-func (f *FakeInformers) GetInformer(ctx context.Context, obj client.Object) (cache.Informer, error) {
+func (f *FakeInformers) GetInformer(ctx context.Context, obj client.Object, opts ...cache.InformerGetOption) (cache.Informer, error) {
 	return &controllertest.FakeInformer{}, nil
 }
 
diff --git a/flytepropeller/pkg/controller/garbage_collector.go b/flytepropeller/pkg/controller/garbage_collector.go
index 55b026ecb0..5956f1ad55 100644
--- a/flytepropeller/pkg/controller/garbage_collector.go
+++ b/flytepropeller/pkg/controller/garbage_collector.go
@@ -7,8 +7,8 @@ import (
 	"time"
 
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	"k8s.io/apimachinery/pkg/util/clock"
 	corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
+	"k8s.io/utils/clock"
 
 	"github.com/flyteorg/flyte/flytepropeller/pkg/client/clientset/versioned/typed/flyteworkflow/v1alpha1"
 	"github.com/flyteorg/flyte/flytepropeller/pkg/controller/config"
@@ -128,7 +128,7 @@ func (g *GarbageCollector) deleteWorkflowsForNamespace(ctx context.Context, name
 }
 
 // runGC runs GC periodically
-func (g *GarbageCollector) runGC(ctx context.Context, ticker clock.Ticker) {
+func (g *GarbageCollector) runGC(ctx context.Context, ticker clock.Timer) {
 	logger.Infof(ctx, "Background workflow garbage collection started, with duration [%s], TTL [%d] hours", g.interval.String(), g.ttlHours)
 
 	ctx = contextutils.WithGoroutineLabel(ctx, "gc-worker")
@@ -162,7 +162,7 @@ func (g *GarbageCollector) StartGC(ctx context.Context) error {
 		logger.Warningf(ctx, "Garbage collector is disabled, as ttl [%d] is <=0", g.ttlHours)
 		return nil
 	}
-	ticker := g.clk.NewTicker(g.interval)
+	ticker := g.clk.NewTimer(g.interval)
 	go g.runGC(ctx, ticker)
 	return nil
 }
diff --git a/flytepropeller/pkg/controller/garbage_collector_test.go b/flytepropeller/pkg/controller/garbage_collector_test.go
index 9fb72154c7..304ec7352e 100644
--- a/flytepropeller/pkg/controller/garbage_collector_test.go
+++ b/flytepropeller/pkg/controller/garbage_collector_test.go
@@ -10,8 +10,8 @@ import (
 	"github.com/stretchr/testify/assert"
 	corev1Types "k8s.io/api/core/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	"k8s.io/apimachinery/pkg/util/clock"
 	corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
+	testing2 "k8s.io/utils/clock/testing"
 
 	"github.com/flyteorg/flyte/flytepropeller/pkg/client/clientset/versioned/typed/flyteworkflow/v1alpha1"
 	config2 "github.com/flyteorg/flyte/flytepropeller/pkg/controller/config"
@@ -26,7 +26,7 @@ func TestNewGarbageCollector(t *testing.T) {
 			MaxTTLInHours:  2,
 			LimitNamespace: "flyte",
 		}
-		gc, err := NewGarbageCollector(cfg, promutils.NewTestScope(), clock.NewFakeClock(time.Now()), nil, nil)
+		gc, err := NewGarbageCollector(cfg, promutils.NewTestScope(), testing2.NewFakeClock(time.Now()), nil, nil)
 		assert.NoError(t, err)
 		assert.Equal(t, 2, gc.ttlHours)
 	})
@@ -37,7 +37,7 @@ func TestNewGarbageCollector(t *testing.T) {
 			MaxTTLInHours:  24,
 			LimitNamespace: "flyte",
 		}
-		gc, err := NewGarbageCollector(cfg, promutils.NewTestScope(), clock.NewFakeClock(time.Now()), nil, nil)
+		gc, err := NewGarbageCollector(cfg, promutils.NewTestScope(), testing2.NewFakeClock(time.Now()), nil, nil)
 		assert.NoError(t, err)
 		assert.Equal(t, 23, gc.ttlHours)
 	})
@@ -146,7 +146,7 @@ func TestGarbageCollector_StartGC(t *testing.T) {
 			LimitNamespace: "flyte",
 		}
 
-		fakeClock := clock.NewFakeClock(b)
+		fakeClock := testing2.NewFakeClock(b)
 		mockNamespaceInvoked = false
 		gc, err := NewGarbageCollector(cfg, promutils.NewTestScope(), fakeClock, mockNamespaceClient, mockClient)
 		assert.NoError(t, err)
@@ -167,7 +167,7 @@ func TestGarbageCollector_StartGC(t *testing.T) {
 			LimitNamespace: "all",
 		}
 
-		fakeClock := clock.NewFakeClock(b)
+		fakeClock := testing2.NewFakeClock(b)
 		mockNamespaceInvoked = false
 		gc, err := NewGarbageCollector(cfg, promutils.NewTestScope(), fakeClock, mockNamespaceClient, mockClient)
 		assert.NoError(t, err)
diff --git a/flytepropeller/pkg/controller/nodes/dynamic/dynamic_workflow_test.go b/flytepropeller/pkg/controller/nodes/dynamic/dynamic_workflow_test.go
index 07527d0013..3c016fe6bf 100644
--- a/flytepropeller/pkg/controller/nodes/dynamic/dynamic_workflow_test.go
+++ b/flytepropeller/pkg/controller/nodes/dynamic/dynamic_workflow_test.go
@@ -30,7 +30,7 @@ import (
 
 func Test_dynamicNodeHandler_buildContextualDynamicWorkflow_withLaunchPlans(t *testing.T) {
 	createNodeContext := func(ttype string, finalOutput storage.DataReference, dataStore *storage.DataStore) *mocks.NodeExecutionContext {
-		ctx := context.TODO()
+		ctx := context.Background()
 
 		wfExecID := &core.WorkflowExecutionIdentifier{
 			Project: "project",
diff --git a/flytepropeller/pkg/controller/nodes/task/backoff/controller.go b/flytepropeller/pkg/controller/nodes/task/backoff/controller.go
index fb12872639..20968aeeca 100644
--- a/flytepropeller/pkg/controller/nodes/task/backoff/controller.go
+++ b/flytepropeller/pkg/controller/nodes/task/backoff/controller.go
@@ -5,7 +5,7 @@ import (
 	"fmt"
 	"time"
 
-	"k8s.io/apimachinery/pkg/util/clock"
+	"k8s.io/utils/clock"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 
 	stdAtomic "github.com/flyteorg/flyte/flytestdlib/atomic"
diff --git a/flytepropeller/pkg/controller/nodes/task/backoff/handler.go b/flytepropeller/pkg/controller/nodes/task/backoff/handler.go
index e6677e7c7a..757c2420f8 100644
--- a/flytepropeller/pkg/controller/nodes/task/backoff/handler.go
+++ b/flytepropeller/pkg/controller/nodes/task/backoff/handler.go
@@ -10,7 +10,7 @@ import (
 	v1 "k8s.io/api/core/v1"
 	apiErrors "k8s.io/apimachinery/pkg/api/errors"
 	"k8s.io/apimachinery/pkg/api/resource"
-	"k8s.io/apimachinery/pkg/util/clock"
+	"k8s.io/utils/clock"
 
 	"github.com/flyteorg/flyte/flyteplugins/go/tasks/errors"
 	stdAtomic "github.com/flyteorg/flyte/flytestdlib/atomic"
diff --git a/flytepropeller/pkg/controller/nodes/task/backoff/handler_test.go b/flytepropeller/pkg/controller/nodes/task/backoff/handler_test.go
index 98e084850a..dea31740c6 100644
--- a/flytepropeller/pkg/controller/nodes/task/backoff/handler_test.go
+++ b/flytepropeller/pkg/controller/nodes/task/backoff/handler_test.go
@@ -13,7 +13,8 @@ import (
 	apiErrors "k8s.io/apimachinery/pkg/api/errors"
 	"k8s.io/apimachinery/pkg/api/resource"
 	"k8s.io/apimachinery/pkg/runtime/schema"
-	"k8s.io/apimachinery/pkg/util/clock"
+	"k8s.io/utils/clock"
+	testing2 "k8s.io/utils/clock/testing"
 
 	taskErrors "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors"
 	stdAtomic "github.com/flyteorg/flyte/flytestdlib/atomic"
@@ -37,7 +38,7 @@ func TestComputeResourceAwareBackOffHandler_Handle(t *testing.T) {
 	}
 
 	ctx := context.TODO()
-	tc := clock.NewFakeClock(time.Now())
+	tc := testing2.NewFakeClock(time.Now())
 	type fields struct {
 		SimpleBackOffBlocker    *SimpleBackOffBlocker
 		ComputeResourceCeilings *ComputeResourceCeilings
@@ -474,7 +475,7 @@ func TestIsResourceQuotaExceeded(t *testing.T) {
 }
 
 func TestSimpleBackOffBlocker_backOff(t *testing.T) {
-	tc := clock.NewFakeClock(time.Now())
+	tc := testing2.NewFakeClock(time.Now())
 	maxBackOffDuration := 10 * time.Minute
 	type fields struct {
 		Clock              clock.Clock
diff --git a/flytepropeller/pkg/controller/nodes/task/k8s/event_watcher.go b/flytepropeller/pkg/controller/nodes/task/k8s/event_watcher.go
index 660ccc8827..e53de83e10 100644
--- a/flytepropeller/pkg/controller/nodes/task/k8s/event_watcher.go
+++ b/flytepropeller/pkg/controller/nodes/task/k8s/event_watcher.go
@@ -2,6 +2,7 @@ package k8s
 
 import (
 	"context"
+	"fmt"
 	"sort"
 	"sync"
 	"time"
@@ -14,6 +15,7 @@ import (
 	"k8s.io/client-go/informers"
 	informerEventsv1 "k8s.io/client-go/informers/events/v1"
 	"k8s.io/client-go/kubernetes"
+	"k8s.io/client-go/tools/cache"
 
 	"github.com/flyteorg/flyte/flytestdlib/logger"
 )
@@ -28,6 +30,7 @@ type EventWatcher interface {
 // Note that cardinality of per object events is relatively low (10s), while they may occur repeatedly. For example
 // the ImagePullBackOff event may continue to fire, but this is only backed by a single event.
 type eventWatcher struct {
+	cache.ResourceEventHandler
 	informer    informerEventsv1.EventInformer
 	objectCache sync.Map
 }
@@ -46,7 +49,7 @@ type EventInfo struct {
 	RecordedAt time.Time
 }
 
-func (e *eventWatcher) OnAdd(obj interface{}) {
+func (e *eventWatcher) OnAdd(obj interface{}, isInInitialList bool) {
 	event := obj.(*eventsv1.Event)
 	objectNsName := types.NamespacedName{Namespace: event.Regarding.Namespace, Name: event.Regarding.Name}
 	eventNsName := types.NamespacedName{Namespace: event.Namespace, Name: event.Name}
@@ -115,7 +118,11 @@ func NewEventWatcher(ctx context.Context, gvk schema.GroupVersionKind, kubeClien
 	watcher := &eventWatcher{
 		informer: eventInformer,
 	}
-	eventInformer.Informer().AddEventHandler(watcher)
+
+	_, err := eventInformer.Informer().AddEventHandler(watcher)
+	if err != nil {
+		return nil, fmt.Errorf("failed to add event handler: %w", err)
+	}
 
 	go eventInformer.Informer().Run(ctx.Done())
 	logger.Debugf(ctx, "Started informer for [%s] events", gvk.Kind)
diff --git a/flytepropeller/pkg/controller/nodes/task/k8s/event_watcher_test.go b/flytepropeller/pkg/controller/nodes/task/k8s/event_watcher_test.go
index 460f64bbc4..d3ffbcc5b9 100644
--- a/flytepropeller/pkg/controller/nodes/task/k8s/event_watcher_test.go
+++ b/flytepropeller/pkg/controller/nodes/task/k8s/event_watcher_test.go
@@ -34,7 +34,7 @@ func TestEventWatcher_OnAdd(t *testing.T) {
 				Namespace: "ns1",
 				Name:      "name1",
 			},
-		})
+		}, false)
 
 		v, _ := ew.objectCache.Load(types.NamespacedName{Namespace: "ns1", Name: "name1"})
 		assert.NotNil(t, v)
@@ -54,7 +54,7 @@ func TestEventWatcher_OnAdd(t *testing.T) {
 				Namespace: "ns2",
 				Name:      "name2",
 			},
-		})
+		}, false)
 
 		v, _ := ew.objectCache.Load(types.NamespacedName{Namespace: "ns2", Name: "name2"})
 		assert.NotNil(t, v)
@@ -74,7 +74,7 @@ func TestEventWatcher_OnAdd(t *testing.T) {
 				Namespace: "ns3",
 				Name:      "name3",
 			},
-		})
+		}, false)
 
 		v, _ := ew.objectCache.Load(types.NamespacedName{Namespace: "ns3", Name: "name3"})
 		assert.NotNil(t, v)
diff --git a/flytepropeller/pkg/controller/nodes/task/k8s/plugin_manager.go b/flytepropeller/pkg/controller/nodes/task/k8s/plugin_manager.go
index a1c58a00cb..f32651caa4 100644
--- a/flytepropeller/pkg/controller/nodes/task/k8s/plugin_manager.go
+++ b/flytepropeller/pkg/controller/nodes/task/k8s/plugin_manager.go
@@ -539,9 +539,7 @@ func NewPluginManager(ctx context.Context, iCtx pluginsCore.SetupContext, entry
 	}
 
 	logger.Infof(ctx, "Initializing K8s plugin [%s]", entry.ID)
-	src := source.Kind{
-		Type: entry.ResourceToWatch,
-	}
+	src := source.Kind(iCtx.KubeClient().GetCache(), entry.ResourceToWatch)
 
 	workflowParentPredicate := func(o metav1.Object) bool {
 		if entry.Plugin.GetProperties().DisableInjectOwnerReferences {
@@ -558,11 +556,6 @@ func NewPluginManager(ctx context.Context, iCtx pluginsCore.SetupContext, entry
 		return false
 	}
 
-	if err := src.InjectCache(kubeClient.GetCache()); err != nil {
-		logger.Errorf(ctx, "failed to set informers for ObjectType %s", src.String())
-		return nil, err
-	}
-
 	metricsScope := iCtx.MetricsScope().NewSubScope(entry.ID)
 	updateCount := labeled.NewCounter("informer_update", "Update events from informer", metricsScope)
 	droppedUpdateCount := labeled.NewCounter("informer_update_dropped", "Update events from informer that have the same resource version", metricsScope)
@@ -573,10 +566,10 @@ func NewPluginManager(ctx context.Context, iCtx pluginsCore.SetupContext, entry
 		ctx,
 		// Handlers
 		handler.Funcs{
-			CreateFunc: func(evt event.CreateEvent, q2 workqueue.RateLimitingInterface) {
+			CreateFunc: func(ctx context.Context, evt event.CreateEvent, q2 workqueue.RateLimitingInterface) {
 				logger.Debugf(context.Background(), "Create received for %s, ignoring.", evt.Object.GetName())
 			},
-			UpdateFunc: func(evt event.UpdateEvent, q2 workqueue.RateLimitingInterface) {
+			UpdateFunc: func(ctx context.Context, evt event.UpdateEvent, q2 workqueue.RateLimitingInterface) {
 				if evt.ObjectNew == nil {
 					logger.Warn(context.Background(), "Received an Update event with nil MetaNew.")
 				} else if evt.ObjectOld == nil || evt.ObjectOld.GetResourceVersion() != evt.ObjectNew.GetResourceVersion() {
@@ -601,10 +594,10 @@ func NewPluginManager(ctx context.Context, iCtx pluginsCore.SetupContext, entry
 					droppedUpdateCount.Inc(newCtx)
 				}
 			},
-			DeleteFunc: func(evt event.DeleteEvent, q2 workqueue.RateLimitingInterface) {
+			DeleteFunc: func(ctx context.Context, evt event.DeleteEvent, q2 workqueue.RateLimitingInterface) {
 				logger.Debugf(context.Background(), "Delete received for %s, ignoring.", evt.Object.GetName())
 			},
-			GenericFunc: func(evt event.GenericEvent, q2 workqueue.RateLimitingInterface) {
+			GenericFunc: func(ctx context.Context, evt event.GenericEvent, q2 workqueue.RateLimitingInterface) {
 				logger.Debugf(context.Background(), "Generic received for %s, ignoring.", evt.Object.GetName())
 				genericCount.Inc(ctx)
 			},
diff --git a/flytepropeller/pkg/controller/nodes/task/k8s/plugin_manager_test.go b/flytepropeller/pkg/controller/nodes/task/k8s/plugin_manager_test.go
index 6b8f990c8d..a96536e7ac 100644
--- a/flytepropeller/pkg/controller/nodes/task/k8s/plugin_manager_test.go
+++ b/flytepropeller/pkg/controller/nodes/task/k8s/plugin_manager_test.go
@@ -16,7 +16,6 @@ import (
 	"k8s.io/apimachinery/pkg/runtime/schema"
 	k8stypes "k8s.io/apimachinery/pkg/types"
 	k8sfake "k8s.io/client-go/kubernetes/fake"
-	"k8s.io/client-go/kubernetes/scheme"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 	"sigs.k8s.io/controller-runtime/pkg/client/fake"
 
@@ -51,7 +50,7 @@ func (e extendedFakeClient) Create(ctx context.Context, obj client.Object, opts
 	return e.Client.Create(ctx, obj)
 }
 
-func (e extendedFakeClient) Get(ctx context.Context, key client.ObjectKey, obj client.Object) error {
+func (e extendedFakeClient) Get(ctx context.Context, key client.ObjectKey, obj client.Object, opts ...client.GetOption) error {
 	if e.GetError != nil {
 		return e.GetError
 	}
@@ -472,7 +471,7 @@ func TestPluginManager_Abort(t *testing.T) {
 	t.Run("Abort Pod Exists", func(t *testing.T) {
 		// common setup code
 		tctx := getMockTaskContext(PluginPhaseStarted, PluginPhaseStarted)
-		fc := extendedFakeClient{Client: fake.NewFakeClientWithScheme(scheme.Scheme, res)}
+		fc := extendedFakeClient{Client: fake.NewFakeClient(res)}
 		mockClientset := k8sfake.NewSimpleClientset()
 
 		// common setup code
@@ -498,7 +497,7 @@ func TestPluginManager_Abort(t *testing.T) {
 	t.Run("Abort Pod doesn't exist", func(t *testing.T) {
 		// common setup code
 		tctx := getMockTaskContext(PluginPhaseStarted, PluginPhaseStarted)
-		fc := extendedFakeClient{Client: fake.NewFakeClientWithScheme(scheme.Scheme)}
+		fc := extendedFakeClient{Client: fake.NewFakeClient()}
 		mockClientset := k8sfake.NewSimpleClientset()
 		// common setup code
 		mockResourceHandler := &pluginsk8sMock.Plugin{}
diff --git a/flytepropeller/pkg/leaderelection/leader_election.go b/flytepropeller/pkg/leaderelection/leader_election.go
index a3d28a944b..2225b7f614 100644
--- a/flytepropeller/pkg/leaderelection/leader_election.go
+++ b/flytepropeller/pkg/leaderelection/leader_election.go
@@ -39,7 +39,8 @@ func NewResourceLock(corev1 v1.CoreV1Interface, coordinationV1 v12.CoordinationV
 	}
 
 	// Leader id, needs to be unique
-	return resourcelock.New(resourcelock.ConfigMapsLeasesResourceLock,
+	return resourcelock.New(
+		resourcelock.LeasesResourceLock,
 		options.LockConfigMap.Namespace,
 		options.LockConfigMap.Name,
 		corev1,
diff --git a/flytepropeller/pkg/webhook/pod_test.go b/flytepropeller/pkg/webhook/pod_test.go
index 08a4284728..122f66c82f 100644
--- a/flytepropeller/pkg/webhook/pod_test.go
+++ b/flytepropeller/pkg/webhook/pod_test.go
@@ -106,8 +106,7 @@ func Test_Handle(t *testing.T) {
 		ServiceName: "my-service",
 	}, promutils.NewTestScope())
 
-	decoder, err := admission.NewDecoder(latest.Scheme)
-	assert.NoError(t, err)
+	decoder := admission.NewDecoder(latest.Scheme)
 	assert.NoError(t, pm.InjectDecoder(decoder))
 
 	req := admission.Request{
diff --git a/flytepropeller/plugins/loader.go b/flytepropeller/plugins/loader.go
index 47620a5172..8e1deffa67 100644
--- a/flytepropeller/plugins/loader.go
+++ b/flytepropeller/plugins/loader.go
@@ -12,7 +12,6 @@ import (
 	_ "github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/kfoperators/tensorflow"
 	_ "github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/pod"
 	_ "github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/ray"
-	_ "github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/sagemaker"
 	_ "github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/k8s/spark"
 	_ "github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/webapi/athena"
 	_ "github.com/flyteorg/flyte/flyteplugins/go/tasks/plugins/webapi/bigquery"
diff --git a/go.mod b/go.mod
index 889bfc66ec..90c30123f9 100644
--- a/go.mod
+++ b/go.mod
@@ -8,12 +8,12 @@ require (
 	github.com/flyteorg/flyte/flytepropeller v1.9.4
 	github.com/flyteorg/flyte/flytestdlib v1.9.4
 	github.com/golang/glog v1.1.0
-	github.com/prometheus/client_golang v1.12.1
-	github.com/spf13/cobra v1.4.0
+	github.com/prometheus/client_golang v1.16.0
+	github.com/spf13/cobra v1.7.0
 	github.com/spf13/pflag v1.0.5
 	golang.org/x/sync v0.3.0
 	gorm.io/driver/postgres v1.4.5
-	k8s.io/client-go v0.24.1
+	k8s.io/client-go v0.28.1
 	sigs.k8s.io/controller-runtime v0.12.1
 )
 
@@ -23,7 +23,7 @@ require (
 	cloud.google.com/go/compute/metadata v0.2.3 // indirect
 	cloud.google.com/go/iam v0.13.0 // indirect
 	cloud.google.com/go/pubsub v1.30.0 // indirect
-	cloud.google.com/go/storage v1.28.1 // indirect
+	cloud.google.com/go/storage v1.29.0 // indirect
 	github.com/Azure/azure-sdk-for-go v63.4.0+incompatible // indirect
 	github.com/Azure/azure-sdk-for-go/sdk/azcore v0.23.1 // indirect
 	github.com/Azure/azure-sdk-for-go/sdk/internal v0.9.2 // indirect
@@ -35,11 +35,9 @@ require (
 	github.com/Azure/go-autorest/logger v0.2.1 // indirect
 	github.com/Azure/go-autorest/tracing v0.6.0 // indirect
 	github.com/GoogleCloudPlatform/spark-on-k8s-operator v0.0.0-20200723154620-6f35a1152625 // indirect
-	github.com/Masterminds/semver v1.5.0 // indirect
 	github.com/NYTimes/gizmo v1.3.6 // indirect
 	github.com/Shopify/sarama v1.26.4 // indirect
 	github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 // indirect
-	github.com/aws/amazon-sagemaker-operator-for-k8s v1.0.1-0.20210303003444-0fb33b1fd49d // indirect
 	github.com/aws/aws-sdk-go v1.44.2 // indirect
 	github.com/aws/aws-sdk-go-v2 v1.2.0 // indirect
 	github.com/aws/aws-sdk-go-v2/config v1.0.0 // indirect
@@ -49,7 +47,7 @@ require (
 	github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.0 // indirect
 	github.com/aws/aws-sdk-go-v2/service/sts v1.0.0 // indirect
 	github.com/aws/smithy-go v1.1.0 // indirect
-	github.com/benbjohnson/clock v1.1.0 // indirect
+	github.com/benbjohnson/clock v1.3.0 // indirect
 	github.com/benlaurie/objecthash v0.0.0-20180202135721-d1e3d6079fc1 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // indirect
@@ -68,29 +66,30 @@ require (
 	github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect
 	github.com/eapache/queue v1.1.0 // indirect
 	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
-	github.com/evanphx/json-patch v4.12.0+incompatible // indirect
+	github.com/evanphx/json-patch v5.6.0+incompatible // indirect
+	github.com/evanphx/json-patch/v5 v5.6.0 // indirect
 	github.com/fatih/color v1.13.0 // indirect
-	github.com/felixge/httpsnoop v1.0.1 // indirect
+	github.com/felixge/httpsnoop v1.0.3 // indirect
 	github.com/flyteorg/flyte/flyteidl v0.0.0-00010101000000-000000000000 // indirect
 	github.com/flyteorg/flyte/flyteplugins v0.0.0-00010101000000-000000000000 // indirect
 	github.com/flyteorg/stow v0.3.7 // indirect
-	github.com/fsnotify/fsnotify v1.5.1 // indirect
+	github.com/fsnotify/fsnotify v1.6.0 // indirect
 	github.com/ghodss/yaml v1.0.0 // indirect
 	github.com/go-gormigrate/gormigrate/v2 v2.0.0 // indirect
-	github.com/go-logr/logr v1.2.3 // indirect
+	github.com/go-logr/logr v1.2.4 // indirect
 	github.com/go-openapi/jsonpointer v0.19.6 // indirect
-	github.com/go-openapi/jsonreference v0.20.1 // indirect
+	github.com/go-openapi/jsonreference v0.20.2 // indirect
 	github.com/go-openapi/swag v0.22.3 // indirect
 	github.com/go-redis/redis v6.15.7+incompatible // indirect
 	github.com/go-test/deep v1.0.7 // indirect
 	github.com/goccy/go-json v0.4.8 // indirect
 	github.com/gofrs/uuid v4.2.0+incompatible // indirect
 	github.com/gogo/protobuf v1.3.2 // indirect
-	github.com/golang-jwt/jwt/v4 v4.4.1 // indirect
+	github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
 	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
 	github.com/golang/protobuf v1.5.3 // indirect
 	github.com/golang/snappy v0.0.3 // indirect
-	github.com/google/gnostic v0.5.7-v3refs // indirect
+	github.com/google/gnostic-models v0.6.8 // indirect
 	github.com/google/go-cmp v0.5.9 // indirect
 	github.com/google/gofuzz v1.2.0 // indirect
 	github.com/google/uuid v1.3.0 // indirect
@@ -107,7 +106,7 @@ require (
 	github.com/hashicorp/golang-lru v0.5.4 // indirect
 	github.com/hashicorp/hcl v1.0.0 // indirect
 	github.com/imdario/mergo v0.3.13 // indirect
-	github.com/inconshreveable/mousetrap v1.0.0 // indirect
+	github.com/inconshreveable/mousetrap v1.1.0 // indirect
 	github.com/jackc/chunkreader/v2 v2.0.1 // indirect
 	github.com/jackc/pgconn v1.13.0 // indirect
 	github.com/jackc/pgio v1.0.0 // indirect
@@ -134,10 +133,10 @@ require (
 	github.com/magiconair/properties v1.8.6 // indirect
 	github.com/mailru/easyjson v0.7.7 // indirect
 	github.com/mattn/go-colorable v0.1.12 // indirect
-	github.com/mattn/go-isatty v0.0.14 // indirect
+	github.com/mattn/go-isatty v0.0.16 // indirect
 	github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect
 	github.com/mattn/goveralls v0.0.6 // indirect
-	github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
+	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
 	github.com/mitchellh/mapstructure v1.5.0 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
@@ -157,15 +156,15 @@ require (
 	github.com/pkg/errors v0.9.1 // indirect
 	github.com/pmezard/go-difflib v1.0.0 // indirect
 	github.com/pquerna/cachecontrol v0.0.0-20201205024021-ac21108117ac // indirect
-	github.com/prometheus/client_model v0.2.0 // indirect
-	github.com/prometheus/common v0.32.1 // indirect
-	github.com/prometheus/procfs v0.7.3 // indirect
+	github.com/prometheus/client_model v0.4.0 // indirect
+	github.com/prometheus/common v0.44.0 // indirect
+	github.com/prometheus/procfs v0.10.1 // indirect
 	github.com/ray-project/kuberay/ray-operator v0.0.0-20220728052838-eaa75fa6707c // indirect
 	github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect
 	github.com/robfig/cron/v3 v3.0.0 // indirect
 	github.com/sendgrid/rest v2.6.8+incompatible // indirect
 	github.com/sendgrid/sendgrid-go v3.10.0+incompatible // indirect
-	github.com/sirupsen/logrus v1.8.1 // indirect
+	github.com/sirupsen/logrus v1.9.0 // indirect
 	github.com/spf13/afero v1.9.2 // indirect
 	github.com/spf13/cast v1.4.1 // indirect
 	github.com/spf13/jwalterweatherman v1.1.0 // indirect
@@ -174,23 +173,24 @@ require (
 	github.com/stretchr/testify v1.8.4 // indirect
 	github.com/subosito/gotenv v1.2.0 // indirect
 	go.opencensus.io v0.24.0 // indirect
-	go.uber.org/atomic v1.9.0 // indirect
-	go.uber.org/multierr v1.8.0 // indirect
-	go.uber.org/zap v1.21.0 // indirect
+	go.uber.org/multierr v1.11.0 // indirect
+	go.uber.org/zap v1.25.0 // indirect
 	golang.org/x/crypto v0.13.0 // indirect
 	golang.org/x/exp v0.0.0-20231005195138-3e424a577f31 // indirect
 	golang.org/x/net v0.15.0 // indirect
-	golang.org/x/oauth2 v0.7.0 // indirect
+	golang.org/x/oauth2 v0.8.0 // indirect
 	golang.org/x/sys v0.12.0 // indirect
 	golang.org/x/term v0.12.0 // indirect
 	golang.org/x/text v0.13.0 // indirect
 	golang.org/x/time v0.3.0 // indirect
 	golang.org/x/tools v0.13.0 // indirect
 	golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
-	gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
+	gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
 	google.golang.org/api v0.114.0 // indirect
 	google.golang.org/appengine v1.6.7 // indirect
-	google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
+	google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect
+	google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect
 	google.golang.org/grpc v1.56.1 // indirect
 	google.golang.org/protobuf v1.30.0 // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
@@ -204,13 +204,13 @@ require (
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 	gorm.io/driver/sqlite v1.1.1 // indirect
 	gorm.io/gorm v1.24.1-0.20221019064659-5dd2bb482755 // indirect
-	k8s.io/api v0.24.1 // indirect
-	k8s.io/apiextensions-apiserver v0.24.1 // indirect
-	k8s.io/apimachinery v0.24.1 // indirect
-	k8s.io/component-base v0.24.1 // indirect
-	k8s.io/klog/v2 v2.90.1 // indirect
-	k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
-	k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
+	k8s.io/api v0.28.2 // indirect
+	k8s.io/apiextensions-apiserver v0.28.0 // indirect
+	k8s.io/apimachinery v0.28.2 // indirect
+	k8s.io/component-base v0.28.1 // indirect
+	k8s.io/klog/v2 v2.100.1 // indirect
+	k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f // indirect
+	k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect
 	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
 	sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
 	sigs.k8s.io/yaml v1.3.0 // indirect
@@ -224,5 +224,11 @@ replace (
 	github.com/flyteorg/flyte/flyteplugins => ./flyteplugins
 	github.com/flyteorg/flyte/flytepropeller => ./flytepropeller
 	github.com/flyteorg/flyte/flytestdlib => ./flytestdlib
+	github.com/google/gnostic-models => github.com/google/gnostic-models v0.6.8
 	github.com/robfig/cron/v3 => github.com/unionai/cron/v3 v3.0.2-0.20220915080349-5790c370e63a
+	k8s.io/api => k8s.io/api v0.28.2
+	k8s.io/apimachinery => k8s.io/apimachinery v0.28.2
+	k8s.io/client-go => k8s.io/client-go v0.28.2
+	k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f
+	sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.16.2
 )
diff --git a/go.sum b/go.sum
index edc4408994..dea1b15e15 100644
--- a/go.sum
+++ b/go.sum
@@ -20,9 +20,6 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb
 cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
 cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
 cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
-cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
-cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
-cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
 cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys=
 cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY=
 cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
@@ -37,7 +34,6 @@ cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGB
 cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
 cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
 cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
-cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
 cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k=
 cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0=
 cloud.google.com/go/kms v1.10.1 h1:7hm1bRqGCA1GBRQUrp831TwJ9TWhP+tvLuP497CQS2g=
@@ -55,8 +51,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
 cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
 cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
 cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
-cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI=
-cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y=
+cloud.google.com/go/storage v1.29.0 h1:6weCgzRvMg7lzuUurI4697AqIRPU1SvzHhynwpW31jI=
+cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4=
 contrib.go.opencensus.io/exporter/stackdriver v0.13.1/go.mod h1:z2tyTZtPmQ2HvWH4cOmVDgtY+1lomfKdbLnkJvZdc8c=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
 github.com/Azure/azure-sdk-for-go v63.4.0+incompatible h1:fle3M5Q7vr8auaiPffKyUQmLbvYeqpw30bKU6PrWJFo=
@@ -69,30 +65,20 @@ github.com/Azure/azure-sdk-for-go/sdk/internal v0.9.2/go.mod h1:CdSJQNNzZhCkwDaV
 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0 h1:0nJeKDmB7a1a8RDMjTltahlPsaNlWjq/LpkZleSwINk=
 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0/go.mod h1:mbwxKc/fW+IkF0GG591MuXw0KuEQBDkeRoZ9vmVJPxg=
 github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
 github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
 github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
-github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA=
 github.com/Azure/go-autorest/autorest v0.11.27 h1:F3R3q42aWytozkV8ihzcgMO4OA4cuqr3bNlsEuF6//A=
 github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U=
-github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
-github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M=
 github.com/Azure/go-autorest/autorest/adal v0.9.18 h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ=
 github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ=
-github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
 github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
 github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
-github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
-github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
 github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
 github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw=
 github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU=
 github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
-github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
 github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=
 github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
-github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=
 github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
 github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
 github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 h1:WVsrXCnHlDDX8ls+tootqRE87/hL9S/g4ewig9RsD/c=
@@ -104,10 +90,8 @@ github.com/DataDog/datadog-go v4.0.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3
 github.com/DataDog/opencensus-go-exporter-datadog v0.0.0-20191210083620-6965a1cfed68/go.mod h1:gMGUEe16aZh0QN941HgDjwrdjU4iTthPoz2/AtDRADE=
 github.com/GoogleCloudPlatform/spark-on-k8s-operator v0.0.0-20200723154620-6f35a1152625 h1:cQyO5JQ2iuHnEcF3v24kdDMsgh04RjyFPDtuvD6PCE0=
 github.com/GoogleCloudPlatform/spark-on-k8s-operator v0.0.0-20200723154620-6f35a1152625/go.mod h1:6PnrZv6zUDkrNMw0mIoGRmGBR7i9LulhKPmxFq4rUiM=
-github.com/Jeffail/gabs/v2 v2.5.1/go.mod h1:xCn81vdHKxFUuWWAaD5jCTQDNPBMh5pPs9IJ+NcziBI=
+github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc=
 github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
-github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
-github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
 github.com/Masterminds/semver/v3 v3.0.3/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
 github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=
 github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
@@ -115,17 +99,13 @@ github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcy
 github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
 github.com/NYTimes/gizmo v1.3.6 h1:K+GRagPdAxojsT1TlTQlMkTeOmgfLxSdvuOhdki7GG0=
 github.com/NYTimes/gizmo v1.3.6/go.mod h1:8S8QVnITA40p/1jGsUMcPI8R9SSKkoKu+8WF13s9Uhw=
-github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
-github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
 github.com/NYTimes/logrotate v1.0.0/go.mod h1:GxNz1cSw1c6t99PXoZlw+nm90H6cyQyrH66pjVv7x88=
 github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk=
 github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
 github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
-github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
 github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
 github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 github.com/Selvatico/go-mocket v1.0.7 h1:sXuFMnMfVL9b/Os8rGXPgbOFbr4HJm8aHsulD/uMTUk=
 github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
@@ -134,37 +114,22 @@ github.com/Shopify/sarama v1.26.4 h1:+17TxUq/PJEAfZAll0T7XJjSgQWCpaQSoki/x5yN8o8
 github.com/Shopify/sarama v1.26.4/go.mod h1:NbSGBSSndYaIhRcBtY9V0U7AyH+x71bG668AuWys/yU=
 github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc=
 github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
-github.com/adammck/venv v0.0.0-20160819025605-8a9c907a37d3/go.mod h1:3zXR2a/VSQndtpShh783rUTaEA2mpqN2VqZclBARBc0=
-github.com/adammck/venv v0.0.0-20200610172036-e77789703e7c h1:RoL0r3mR3JSkLur8q8AD59cByJ+kRwJHODNimZBd7GI=
-github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
 github.com/ajg/form v0.0.0-20160822230020-523a5da1a92f/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=
 github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
-github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
 github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
 github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
-github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
 github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
-github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
-github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
 github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
-github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
 github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
 github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY=
 github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
-github.com/aws/amazon-sagemaker-operator-for-k8s v1.0.1-0.20210303003444-0fb33b1fd49d h1:O+ayl/Vp3bDEXReXItmYHzCnsz/LKusXdRNiJKVxjPs=
-github.com/aws/amazon-sagemaker-operator-for-k8s v1.0.1-0.20210303003444-0fb33b1fd49d/go.mod h1:mZUP7GJmjiWtf8v3FD1X/QdK08BqyeH/1Ejt0qhNzCs=
 github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
 github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
 github.com/aws/aws-sdk-go v1.31.3/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
-github.com/aws/aws-sdk-go v1.37.3/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
 github.com/aws/aws-sdk-go v1.44.2 h1:5VBk5r06bgxgRKVaUtm1/4NT/rtrnH2E4cnAYv5zgQc=
 github.com/aws/aws-sdk-go v1.44.2/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
 github.com/aws/aws-sdk-go-v2 v1.0.0/go.mod h1:smfAbmpW+tcRVuNUjo3MOArSZmW72t62rkCzc2i0TWM=
@@ -186,19 +151,14 @@ github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDy
 github.com/aws/smithy-go v1.0.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw=
 github.com/aws/smithy-go v1.1.0 h1:D6CSsM3gdxaGaqXnPgOBCeL6Mophqzu7KJOu7zW78sU=
 github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw=
-github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
-github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
-github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
+github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A=
+github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
 github.com/benlaurie/objecthash v0.0.0-20180202135721-d1e3d6079fc1 h1:VRtJdDi2lqc3MFwmouppm2jlm6icF+7H3WYKpLENMTo=
 github.com/benlaurie/objecthash v0.0.0-20180202135721-d1e3d6079fc1/go.mod h1:jvdWlw8vowVGnZqSDC7yhPd7AifQeQbRDkZcQXV2nRg=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
 github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
 github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
-github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
-github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
-github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
 github.com/bmatcuk/doublestar/v2 v2.0.3/go.mod h1:QMmcs3H2AUQICWhfzLXz+IYln8lRQmTZRptLie8RgRw=
 github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
 github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60=
@@ -208,12 +168,8 @@ github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QH
 github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
 github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
-github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
 github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
 github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
 github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927 h1:SKI1/fuSdodxmNNyVBR8d7X/HuLnRpvvFO0AgyQk764=
@@ -231,16 +187,11 @@ github.com/cloudevents/sdk-go/v2 v2.8.0/go.mod h1:GpCBmUj7DIRiDhVvsK5d6WCbgTWs8D
 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
 github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I=
 github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
 github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=
 github.com/cockroachdb/cockroach-go v0.0.0-20190925194419-606b3d062051/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=
 github.com/cockroachdb/cockroach-go v0.0.0-20200312223839-f565e4789405/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=
-github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
-github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
-github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA=
-github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI=
 github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
 github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0=
 github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
@@ -251,26 +202,18 @@ github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEka
 github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY=
 github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
 github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
-github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
 github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
-github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
 github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk=
 github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
 github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
 github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
-github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
-github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
 github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
 github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
-github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
 github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/cucumber/godog v0.8.1/go.mod h1:vSh3r/lM+psC1BPXvdkSEuNjmXfpVqrMGYAElF6hxnA=
 github.com/dask/dask-kubernetes/v2023 v2023.0.0-20230626103304-abd02cd17b26 h1:6RByIva89lKEvwIzNQSUNcu8NG1p1wwwC4mJfVk/kqw=
 github.com/dask/dask-kubernetes/v2023 v2023.0.0-20230626103304-abd02cd17b26/go.mod h1:OqIYr2QnxR3sQK2XahJIyWVcjz38LQ4GNcUzqezFpRg=
@@ -294,13 +237,10 @@ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8
 github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c=
 github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko=
 github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
-github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 github.com/docker/docker v17.12.0-ce-rc1.0.20201201034508-7d75c1d40d88+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
 github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
 github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
-github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/dustin/go-humanize v0.0.0-20180713052910-9f541cc9db5d/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
@@ -313,10 +253,7 @@ github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=
 github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
 github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0=
 github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU=
-github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
 github.com/elazarl/goproxy v0.0.0-20181003060214-f58a169a71a5/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
-github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
-github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
 github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
 github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
@@ -325,30 +262,24 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
 github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
 github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc=
-github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ=
-github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
-github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U=
+github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww=
+github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4=
 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
 github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
 github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
 github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
 github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
-github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ=
 github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
+github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
+github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
 github.com/flyteorg/stow v0.3.7 h1:Cx7j8/Ux6+toD5hp5fy++927V+yAcAttDeQAlUD/864=
 github.com/flyteorg/stow v0.3.7/go.mod h1:5dfBitPM004dwaZdoVylVjxFT4GWAgI0ghAndhNUzCo=
 github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
-github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
-github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
 github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
 github.com/frankban/quicktest v1.4.1/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ=
@@ -357,11 +288,8 @@ github.com/frankban/quicktest v1.10.0 h1:Gfh+GAJZOAoKZsIZeZbdn2JF10kN1XHNvjsvQK8
 github.com/frankban/quicktest v1.10.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y=
 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
-github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
-github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
-github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=
-github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
-github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
+github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
 github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
@@ -378,16 +306,10 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb
 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
 github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
-github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
-github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
-github.com/go-logr/logr v0.2.1/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
 github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
-github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk=
-github.com/go-logr/zapr v0.2.0/go.mod h1:qhKdvif7YF5GI9NWEpyxTSSBdGmzkNguibrdCNVPunU=
-github.com/go-logr/zapr v1.2.0 h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk=
-github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro=
+github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
+github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo=
 github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
 github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
 github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
@@ -401,35 +323,29 @@ github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA
 github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
 github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
 github.com/go-openapi/errors v0.20.0/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
-github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
 github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
 github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
 github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
 github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
 github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
 github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
-github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
 github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
 github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
 github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
 github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
-github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
-github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=
-github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
+github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
+github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
 github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
 github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
 github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
 github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
 github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI=
-github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk=
 github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY=
 github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
 github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
 github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
 github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo=
 github.com/go-openapi/runtime v0.19.26/go.mod h1:BvrQtn6iVb2QmiVXRsFAm6ZCAZBpbVKFfN6QWCp582M=
-github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
 github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
 github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
 github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
@@ -443,20 +359,17 @@ github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6
 github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
 github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
 github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
-github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
 github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
 github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
 github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
 github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
 github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
 github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
-github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
 github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
 github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
 github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
 github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
 github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo=
-github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
 github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8=
 github.com/go-redis/redis v6.15.7+incompatible h1:3skhDh95XQMpnqeqNftPkQD9jL9e5e36z/1SUm6dy1U=
 github.com/go-redis/redis v6.15.7+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
@@ -465,6 +378,7 @@ github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG
 github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
 github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M=
 github.com/go-test/deep v1.0.7/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8=
 github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
@@ -717,7 +631,6 @@ github.com/gobuffalo/x v0.0.0-20181003152136-452098b06085/go.mod h1:WevpGD+5YOre
 github.com/gobuffalo/x v0.0.0-20181007152206-913e47c59ca7/go.mod h1:9rDPXaB3kXdKWzMc4odGQQdG2e2DIEmANy5aSJ9yesY=
 github.com/goccy/go-json v0.4.8 h1:TfwOxfSp8hXH+ivoOk36RyDNmXATUETRdaNWDaZglf8=
 github.com/goccy/go-json v0.4.8/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
-github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 github.com/gofrs/uuid v3.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
 github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
 github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
@@ -728,24 +641,21 @@ github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFG
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
-github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
 github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
 github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
-github.com/golang-jwt/jwt/v4 v4.4.1 h1:pC5DB52sCeK48Wlb9oPcdhnjkz1TKt1D/P7WKJ0kUcQ=
-github.com/golang-jwt/jwt/v4 v4.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
+github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
+github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
 github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY=
 github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
 github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 github.com/golang/gddo v0.0.0-20180828051604-96d2a289f41e/go.mod h1:xEhNfoBDX1hzLm2Nf80qUvZ2sVwoMZ8d6IE2SrsQfh4=
 github.com/golang/gddo v0.0.0-20190904175337-72a348e765d2/go.mod h1:xEhNfoBDX1hzLm2Nf80qUvZ2sVwoMZ8d6IE2SrsQfh4=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
 github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE=
 github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ=
-github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -759,10 +669,8 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
 github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
-github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
 github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
 github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
-github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -779,8 +687,6 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
 github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
 github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
@@ -789,11 +695,8 @@ github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
 github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
-github.com/google/cel-go v0.10.1/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w=
-github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA=
-github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
-github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
+github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
+github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -809,7 +712,6 @@ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
 github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/go-jsonnet v0.16.0/go.mod h1:sOcuej3UW1vpPTZOr8L7RQimqai1a57bt5j22LzGZCw=
 github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
 github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
@@ -827,8 +729,7 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf
 github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -842,11 +743,7 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
 github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A=
 github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI=
-github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
-github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
-github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=
 github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
-github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
 github.com/gopherjs/gopherjs v0.0.0-20181004151105-1babbf986f6f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
@@ -863,62 +760,42 @@ github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyC
 github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
 github.com/gorilla/sessions v1.1.2/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=
 github.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=
-github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
 github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
 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/gotestyourself/gotestyourself v1.3.0/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY=
 github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY=
-github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
 github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
-github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
 github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s=
 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
 github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
-github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
 github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69 h1:7xsUJsB2NrdcttQPa7JLEaGzvdbk7KvfrjgHZXOQRo0=
 github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69/go.mod h1:YLEMZOtU+AZ7dhN9T/IpGhXVGly2bvkJQ+zxj3WeVQo=
-github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
-github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
-github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
 github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
 github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
-github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
-github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
-github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
 github.com/hashicorp/go-retryablehttp v0.6.8/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
-github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
-github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
-github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
-github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
 github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
 github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=
 github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
 github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
-github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
-github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
-github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
-github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
-github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
 github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg=
-github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
+github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 github.com/inhies/go-bytesize v0.0.0-20201103132853-d0aed0d254f8/go.mod h1:KrtyD5PFj++GKkFS/7/RRrfnRhAMGQwy75GLCHWrCNs=
 github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo=
 github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk=
@@ -1017,15 +894,10 @@ github.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqx
 github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
 github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
 github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
-github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
 github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
-github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
 github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
 github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
@@ -1033,7 +905,6 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X
 github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
-github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
 github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=
 github.com/karrick/godirwalk v1.7.7/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=
@@ -1065,8 +936,8 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
 github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
@@ -1108,14 +979,11 @@ github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czP
 github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
 github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
 github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
-github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
 github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
-github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
 github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
 github.com/markbates/deplist v1.0.4/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM=
@@ -1148,7 +1016,6 @@ github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope
 github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
 github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
-github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
 github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
 github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
 github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
@@ -1156,9 +1023,9 @@ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd
 github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
 github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
 github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
-github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
 github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
-github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
+github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
+github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
 github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
@@ -1169,28 +1036,19 @@ github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpe
 github.com/mattn/goveralls v0.0.6 h1:cr8Y0VMo/MnEZBjxNN/vh6G90SZ7IMb6lms1dzMoO+Y=
 github.com/mattn/goveralls v0.0.6/go.mod h1:h8b4ow6FxSPMQHF6o2ve3qsclnffZjYTNEKmLesRwqw=
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
-github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
+github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
+github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
 github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=
 github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc=
-github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
 github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
-github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
-github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
-github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.2.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
 github.com/moby/term v0.0.0-20200915141129-7f0af18e79f2/go.mod h1:TjQg8pa4iejrUrjiz0MCtMV38jdMNW4doKSiBrEvCQQ=
-github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -1205,37 +1063,27 @@ github.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGE
 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
 github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
 github.com/moul/http2curl v0.0.0-20170919181001-9ac6cf4d929b/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ=
-github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
 github.com/ncw/swift v1.0.53 h1:luHjjTNtekIEvHg5KdAFIBaH7bWfNkefwFnpDffSIks=
 github.com/ncw/swift v1.0.53/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
 github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
 github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U=
-github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
 github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
 github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
 github.com/oleiade/reflections v1.0.0/go.mod h1:RbATFBbKYkVdqmSFtx13Bb/tVhR0lgOBXunWTZKeL4w=
 github.com/oleiade/reflections v1.0.1 h1:D1XO3LVEYroYskEsoSiGItp9RUxG6jWnCVvrqH0HHQM=
 github.com/oleiade/reflections v1.0.1/go.mod h1:rdFxbxq4QXVZWj0F+e9jqjDkc7dbp97vkRixKo2JR60=
-github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
-github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.9.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
-github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
 github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
-github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY=
-github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
+github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU=
 github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
 github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
@@ -1243,9 +1091,7 @@ github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa
 github.com/onsi/gomega v1.6.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
-github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
-github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw=
+github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
 github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
 github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
 github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
@@ -1287,7 +1133,6 @@ github.com/ory/x v0.0.127/go.mod h1:FwUujfFuCj5d+xgLn4fGMYPnzriR5bdAIulFXMtnK0M=
 github.com/ory/x v0.0.214 h1:nz5ijvm5MVhYxWsQSuUrW1hj9F5QLZvPn/nLo5s06T4=
 github.com/ory/x v0.0.214/go.mod h1:aRl57gzyD4GF0HQCekovXhv0xTZgAgiht3o8eVhsm9Q=
 github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE=
-github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
 github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g=
 github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
 github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
@@ -1299,7 +1144,6 @@ github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhEC
 github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8 h1:dy81yyLYJDwMTifq24Oi/IslOslRrDSb3jwDggjz3Z0=
 github.com/pelletier/go-toml/v2 v2.0.0-beta.8/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
-github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE=
 github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
 github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
@@ -1319,40 +1163,30 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ
 github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
-github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
 github.com/pquerna/cachecontrol v0.0.0-20201205024021-ac21108117ac h1:jWKYCNlX4J5s8M0nHYkh7Y7c9gRVDEb3mq51j5J0F5M=
 github.com/pquerna/cachecontrol v0.0.0-20201205024021-ac21108117ac/go.mod h1:hoLfEwdY11HjRfKFH6KqnPsfxlo3BP6bJehpDv8t6sQ=
 github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
 github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
 github.com/prometheus/client_golang v0.9.4/go.mod h1:oCXIBxdI62A4cR6aTRJCgetEjecSIYzOEaeAn4iYEpM=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
-github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk=
-github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
+github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
+github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
 github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
 github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
+github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
 github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
 github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
-github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
-github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=
-github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
+github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
+github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
-github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
-github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
+github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg=
+github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
 github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
 github.com/ray-project/kuberay/ray-operator v0.0.0-20220728052838-eaa75fa6707c h1:eEqXhtlsUVt798HNUEbdQsMRZSjHSOF5Ilsywuhlgfc=
 github.com/ray-project/kuberay/ray-operator v0.0.0-20220728052838-eaa75fa6707c/go.mod h1:uLBlYqsCS2nsKiVlxJxI5EVgq8CrqNeHDP5uq3hde+c=
@@ -1371,6 +1205,7 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
 github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
 github.com/rogpeppe/go-internal v1.4.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
 github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
 github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
 github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
 github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
@@ -1379,11 +1214,9 @@ github.com/rubenv/sql-migrate v0.0.0-20190212093014-1007f53448d7/go.mod h1:WS0rl
 github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
 github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
 github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4=
 github.com/santhosh-tekuri/jsonschema/v2 v2.1.0/go.mod h1:yzJzKUGV4RbWqWIBBP4wSOBqavX5saE02yirLS0OTyg=
 github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
-github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
 github.com/seatgeek/logrus-gelf-formatter v0.0.0-20210219220335-367fa274be2c/go.mod h1:/THDZYi7F/BsVEcYzYPqdcWFQ+1C2InkawTKfLOAnzg=
 github.com/segmentio/analytics-go v3.0.1+incompatible/go.mod h1:C7CYBtQWk4vRk2RyLu0qOcbHJ18E3F1HV2C/8JvKN48=
 github.com/segmentio/analytics-go v3.1.0+incompatible/go.mod h1:C7CYBtQWk4vRk2RyLu0qOcbHJ18E3F1HV2C/8JvKN48=
@@ -1421,14 +1254,12 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
 github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo=
 github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
-github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
-github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
-github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
+github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
+github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
 github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
 github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
 github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
 github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
-github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
 github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE=
 github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA=
 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ=
@@ -1437,7 +1268,6 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B
 github.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
 github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
 github.com/spf13/afero v1.3.2/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
-github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
 github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=
 github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
 github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg=
@@ -1452,15 +1282,12 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL
 github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
 github.com/spf13/cobra v0.0.7/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
 github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
-github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
-github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
-github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
+github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
+github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
 github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
 github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
 github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
-github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
@@ -1469,12 +1296,10 @@ github.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaN
 github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
 github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
 github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
-github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
 github.com/spf13/viper v1.11.0 h1:7OX/1FS6n7jHD1zGrZTM7WtY13ZELRyosK4k93oPr44=
 github.com/spf13/viper v1.11.0/go.mod h1:djo0X/bA5+tYVoCn+C7cAYJGcVn/qYLFTG8gdUsX7Zk=
 github.com/sqs/goreturns v0.0.0-20181028201513-538ac6014518/go.mod h1:CKI4AZ4XmGV240rTHfO0hfE83S6/a3/Q1siZJ/vXf7A=
 github.com/square/go-jose/v3 v3.0.0-20200630053402-0a67ce9b0693/go.mod h1:6hSY48PjDm4UObWmGLyJE9DxYVKTgR9kbCspXXJEhcU=
-github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
 github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -1507,9 +1332,7 @@ github.com/tidwall/pretty v1.1.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhV
 github.com/tidwall/sjson v1.0.4/go.mod h1:bURseu1nuBkFpIES5cz6zBtjmYeOQmEESshn7VpF15Y=
 github.com/tidwall/sjson v1.1.5/go.mod h1:VuJzsZnTowhSxWdOgsAnb886i4AjEyTkk7tNtsL7EYE=
 github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
 github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g=
 github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
 github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
@@ -1521,11 +1344,9 @@ github.com/unionai/cron/v3 v3.0.2-0.20220915080349-5790c370e63a h1:pTbOzzOh94yt3
 github.com/unionai/cron/v3 v3.0.2-0.20220915080349-5790c370e63a/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
 github.com/unrolled/secure v0.0.0-20180918153822-f340ee86eb8b/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=
 github.com/unrolled/secure v0.0.0-20181005190816-ff9db2ff917f/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=
-github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
 github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
 github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
 github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
-github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
 github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
 github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
 github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
@@ -1538,7 +1359,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
 github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
 github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
 go.elastic.co/apm v1.8.0/go.mod h1:tCw6CkOJgkWnzEthFN9HUP1uL3Gjc/Ur6m7gRPLaoH0=
@@ -1546,22 +1366,8 @@ go.elastic.co/apm/module/apmhttp v1.8.0/go.mod h1:9LPFlEON51/lRbnWDfqAWErihIiAFD
 go.elastic.co/apm/module/apmot v1.8.0/go.mod h1:Q5Xzabte8G/fkvDjr1jlDuOSUt9hkVWNZEHh6ZNaTjI=
 go.elastic.co/fastjson v1.0.0/go.mod h1:PmeUOMMtLHQr9ZS9J9owrAVg0FkaZDRZJEFTTGHtchs=
 go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4=
-go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
-go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
-go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
-go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
-go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
-go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
-go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0=
-go.etcd.io/etcd/client/v3 v3.5.1/go.mod h1:OnjH4M8OnAotwaB2l9bVgZzRFKru7/ZMoS46OtKyd3Q=
-go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE=
-go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc=
-go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4=
 go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
-go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
 go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
@@ -1571,54 +1377,31 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
-go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
 go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
 go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
 go.opentelemetry.io/contrib v0.18.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
-go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E=
 go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.18.0/go.mod h1:iK1G0FgHurSJ/aYLg5LpnPI0pqdanM73S3dhyDp0Lk4=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4=
 go.opentelemetry.io/otel v0.18.0/go.mod h1:PT5zQj4lTsR1YeARt8YNKcFb88/c2IKoSABK9mX0r78=
-go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo=
-go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM=
 go.opentelemetry.io/otel/metric v0.18.0/go.mod h1:kEH2QtzAyBy3xDVQfGZKIcok4ZZFvd5xyKPfPcuK6pE=
-go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU=
 go.opentelemetry.io/otel/oteltest v0.18.0/go.mod h1:NyierCU3/G8DLTva7KRzGii2fdxdR89zXKH1bNWY7Bo=
-go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw=
-go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc=
-go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE=
-go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE=
 go.opentelemetry.io/otel/trace v0.18.0/go.mod h1:FzdUu3BPwZSZebfQ1vl5/tAa8LyMLXSJN57AXIt/iDk=
-go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
-go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
 go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
 go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
 go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
-go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
-go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
-go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
-go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
-go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
-go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=
+go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
 go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
 go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
 go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
-go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
-go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
-go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
+go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
+go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
-go.uber.org/zap v1.8.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
-go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
-go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
-go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
-go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
-go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
+go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c=
+go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk=
 golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20180830192347-182538f80094/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -1629,14 +1412,12 @@ golang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnf
 golang.org/x/crypto v0.0.0-20181024171144-74cb1d3d52f4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181025113841-85e1b3f9139a/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181106171534-e4dc69e5b2fd/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -1656,12 +1437,10 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
 golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200320181102-891825fb96df/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 golang.org/x/crypto v0.0.0-20201217014255-9d1352758620/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
@@ -1670,7 +1449,6 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck=
 golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
@@ -1704,7 +1482,6 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu
 golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
 golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
 golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
@@ -1716,9 +1493,7 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
 golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
-golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180816102801-aaf60122140d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1733,7 +1508,6 @@ golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73r
 golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1753,7 +1527,6 @@ golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLL
 golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20191003171128-d98b1b443823/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -1765,7 +1538,6 @@ golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/
 golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
@@ -1775,16 +1547,10 @@ golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwY
 golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
 golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
 golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
@@ -1799,12 +1565,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ
 golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g=
-golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
+golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
+golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1819,9 +1581,7 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
 golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
-golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180831094639-fa5fdf94c789/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1843,7 +1603,6 @@ golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5h
 golang.org/x/sys v0.0.0-20181206074257-70b957f3b65e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190116161447-11f53e031339/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1862,17 +1621,13 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191025021431-6c3a3bfe00ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191105231009-c1f44814a5cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200121082415-34d275377bf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1887,41 +1642,28 @@ golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
 golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
@@ -1929,25 +1671,20 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU=
 golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
-golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
 golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
-golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
 golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -1956,7 +1693,6 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm
 golang.org/x/tools v0.0.0-20181003024731-2f84ea8ef872/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181006002542-f60d9635b16a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181008205924-a2b3f7f249e9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181013182035-5e66757b835f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181017214349-06f26fdaaa28/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181024171208-a2dc47679d30/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -1978,7 +1714,6 @@ golang.org/x/tools v0.0.0-20190104182027-498d95493402/go.mod h1:n7NCudcB/nEzxVGm
 golang.org/x/tools v0.0.0-20190111214448-fc1d57b08d7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190118193359-16909d206f00/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
@@ -2005,14 +1740,11 @@ golang.org/x/tools v0.0.0-20190711191110-9a621aea19f8/go.mod h1:jcCCGcm9btYwXyDq
 golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191004055002-72853e10c5a3/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -2037,7 +1769,6 @@ golang.org/x/tools v0.0.0-20200308013534-11ec41452d41/go.mod h1:o4KQGtdN14AW+yjs
 golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
 golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
 golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@@ -2057,9 +1788,6 @@ golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4f
 golang.org/x/tools v0.0.0-20210114065538-d78b04bdf963/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
 golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
 golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=
 golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
 golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -2070,9 +1798,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
 golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
-gomodules.xyz/jsonpatch/v2 v2.0.1/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU=
-gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY=
-gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY=
+gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
+gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
 gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
 gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
 gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
@@ -2100,8 +1827,6 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513
 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
 google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
 google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
-google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
-google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
 google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE=
 google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
@@ -2150,24 +1875,18 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
 google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201102152239-715cce707fb0/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
-google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
-google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
-google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
-google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
 google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
@@ -2191,10 +1910,6 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv
 google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
 google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
 google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
 google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ=
 google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
 google.golang.org/grpc/examples v0.0.0-20210304020650-930c79186c99/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE=
@@ -2210,7 +1925,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
 google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
 google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 gopkg.in/DataDog/dd-trace-go.v1 v1.22.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg=
@@ -2224,7 +1938,6 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8
 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
 gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
 gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=
@@ -2252,7 +1965,6 @@ gopkg.in/jcmturner/gokrb5.v7 v7.5.0/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuv
 gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU=
 gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8=
 gopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw=
-gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
 gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
 gopkg.in/square/go-jose.v2 v2.1.9/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
 gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
@@ -2266,17 +1978,14 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
 gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
-gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
@@ -2296,7 +2005,6 @@ gorm.io/gorm v1.24.1-0.20221019064659-5dd2bb482755/go.mod h1:DVrVomtaYTbqs7gB/x2
 gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
 gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
 gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
-gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
@@ -2305,59 +2013,23 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0=
-k8s.io/api v0.18.2/go.mod h1:SJCWI7OLzhZSvbY7U8zwNl9UA4o1fizoug34OV/2r78=
-k8s.io/api v0.18.6/go.mod h1:eeyxr+cwCjMdLAmr2W3RyDI0VvTawSg/3RFFBEnmZGI=
-k8s.io/api v0.18.8/go.mod h1:d/CXqwWv+Z2XEG1LgceeDmHQwpUJhROPx16SlxJgERY=
-k8s.io/api v0.24.1 h1:BjCMRDcyEYz03joa3K1+rbshwh1Ay6oB53+iUx2H8UY=
-k8s.io/api v0.24.1/go.mod h1:JhoOvNiLXKTPQ60zh2g0ewpA+bnEYf5q44Flhquh4vQ=
-k8s.io/apiextensions-apiserver v0.18.2/go.mod h1:q3faSnRGmYimiocj6cHQ1I3WpLqmDgJFlKL37fC4ZvY=
-k8s.io/apiextensions-apiserver v0.18.6/go.mod h1:lv89S7fUysXjLZO7ke783xOwVTm6lKizADfvUM/SS/M=
-k8s.io/apiextensions-apiserver v0.24.1 h1:5yBh9+ueTq/kfnHQZa0MAo6uNcPrtxPMpNQgorBaKS0=
-k8s.io/apiextensions-apiserver v0.24.1/go.mod h1:A6MHfaLDGfjOc/We2nM7uewD5Oa/FnEbZ6cD7g2ca4Q=
-k8s.io/apimachinery v0.18.2/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA=
-k8s.io/apimachinery v0.18.6/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko=
-k8s.io/apimachinery v0.18.8/go.mod h1:6sQd+iHEqmOtALqOFjSWp2KZ9F0wlU/nWm0ZgsYWMig=
-k8s.io/apimachinery v0.24.1 h1:ShD4aDxTQKN5zNf8K1RQ2u98ELLdIW7jEnlO9uAMX/I=
-k8s.io/apimachinery v0.24.1/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM=
-k8s.io/apiserver v0.18.2/go.mod h1:Xbh066NqrZO8cbsoenCwyDJ1OSi8Ag8I2lezeHxzwzw=
-k8s.io/apiserver v0.18.6/go.mod h1:Zt2XvTHuaZjBz6EFYzpp+X4hTmgWGy8AthNVnTdm3Wg=
-k8s.io/apiserver v0.24.1/go.mod h1:dQWNMx15S8NqJMp0gpYfssyvhYnkilc1LpExd/dkLh0=
-k8s.io/client-go v0.18.2/go.mod h1:Xcm5wVGXX9HAA2JJ2sSBUn3tCJ+4SVlCbl2MNNv+CIU=
-k8s.io/client-go v0.18.6/go.mod h1:/fwtGLjYMS1MaM5oi+eXhKwG+1UHidUEXRh6cNsdO0Q=
-k8s.io/client-go v0.18.8/go.mod h1:HqFqMllQ5NnQJNwjro9k5zMyfhZlOwpuTLVrxjkYSxU=
-k8s.io/client-go v0.24.1 h1:w1hNdI9PFrzu3OlovVeTnf4oHDt+FJLd9Ndluvnb42E=
-k8s.io/client-go v0.24.1/go.mod h1:f1kIDqcEYmwXS/vTbbhopMUbhKp2JhOeVTfxgaCIlF8=
-k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
-k8s.io/code-generator v0.18.6/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c=
-k8s.io/code-generator v0.24.1 h1:zS+dvmUNaOcvsQ4faV9hXNjsKG9/pQaLnts1Wma4RM8=
-k8s.io/code-generator v0.24.1/go.mod h1:dpVhs00hTuTdTY6jvVxvTFCk6gSMrtfRydbhZwHI15w=
-k8s.io/component-base v0.18.2/go.mod h1:kqLlMuhJNHQ9lz8Z7V5bxUUtjFZnrypArGl58gmDfUM=
-k8s.io/component-base v0.18.6/go.mod h1:knSVsibPR5K6EW2XOjEHik6sdU5nCvKMrzMt2D4In14=
-k8s.io/component-base v0.24.1 h1:APv6W/YmfOWZfo+XJ1mZwep/f7g7Tpwvdbo9CQLDuts=
-k8s.io/component-base v0.24.1/go.mod h1:DW5vQGYVCog8WYpNob3PMmmsY8A3L9QZNg4j/dV3s38=
-k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
-k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
-k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
-k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
-k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
-k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
-k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
-k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
-k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
-k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
-k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
-k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
-k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk=
-k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg=
-k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg=
-k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
-k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=
-k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/api v0.28.2 h1:9mpl5mOb6vXZvqbQmankOfPIGiudghwCoLl1EYfUZbw=
+k8s.io/api v0.28.2/go.mod h1:RVnJBsjU8tcMq7C3iaRSGMeaKt2TWEUXcpIt/90fjEg=
+k8s.io/apiextensions-apiserver v0.28.0 h1:CszgmBL8CizEnj4sj7/PtLGey6Na3YgWyGCPONv7E9E=
+k8s.io/apiextensions-apiserver v0.28.0/go.mod h1:uRdYiwIuu0SyqJKriKmqEN2jThIJPhVmOWETm8ud1VE=
+k8s.io/apimachinery v0.28.2 h1:KCOJLrc6gu+wV1BYgwik4AF4vXOlVJPdiqn0yAWWwXQ=
+k8s.io/apimachinery v0.28.2/go.mod h1:RdzF87y/ngqk9H4z3EL2Rppv5jj95vGS/HaFXrLDApU=
+k8s.io/client-go v0.28.2 h1:DNoYI1vGq0slMBN/SWKMZMw0Rq+0EQW6/AK4v9+3VeY=
+k8s.io/client-go v0.28.2/go.mod h1:sMkApowspLuc7omj1FOSUxSoqjr+d5Q0Yc0LOFnYFJY=
+k8s.io/code-generator v0.28.0 h1:msdkRVJNVFgdiIJ8REl/d3cZsMB9HByFcWMmn13NyuE=
+k8s.io/component-base v0.28.1 h1:LA4AujMlK2mr0tZbQDZkjWbdhTV5bRyEyAFe0TJxlWg=
+k8s.io/component-base v0.28.1/go.mod h1:jI11OyhbX21Qtbav7JkhehyBsIRfnO8oEgoAR12ArIU=
+k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
+k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f h1:eeEUOoGYWhOz7EyXqhlR2zHKNw2mNJ9vzJmub6YN6kk=
+k8s.io/kube-openapi v0.0.0-20230905202853-d090da108d2f/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk=
+k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
 modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
 modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
 modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
@@ -2367,22 +2039,11 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8
 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.30/go.mod h1:fEO7lRTdivWO2qYVCVG7dEADOMo/MLDCVr8So2g88Uw=
-sigs.k8s.io/controller-runtime v0.6.2/go.mod h1:vhcq/rlnENJ09SIRp3EveTaZ0yqH526hjf9iJdbUJ/E=
-sigs.k8s.io/controller-runtime v0.12.1 h1:4BJY01xe9zKQti8oRjj/NeHKRXthf1YkYJAgLONFFoI=
-sigs.k8s.io/controller-runtime v0.12.1/go.mod h1:BKhxlA4l7FPK4AQcsuL4X6vZeWnKDXez/vp1Y8dxTU0=
-sigs.k8s.io/controller-tools v0.3.0/go.mod h1:enhtKGfxZD1GFEoMgP8Fdbu+uKQ/cq1/WGJhdVChfvI=
-sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY=
+sigs.k8s.io/controller-runtime v0.16.2 h1:mwXAVuEk3EQf478PQwQ48zGOXvW27UJc8NHktQVuIPU=
+sigs.k8s.io/controller-runtime v0.16.2/go.mod h1:vpMu3LpI5sYWtujJOa2uPK61nB5rbwlN7BAB8aSLvGU=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
-sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
-sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
-sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
 sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
 sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
diff --git a/rsts/deployment/plugins/aws/index.rst b/rsts/deployment/plugins/aws/index.rst
index 5a7206c27e..b2231ca574 100644
--- a/rsts/deployment/plugins/aws/index.rst
+++ b/rsts/deployment/plugins/aws/index.rst
@@ -28,15 +28,6 @@ Discover the process of setting up AWS plugins for Flyte.
     ^^^^^^^^^^^^
     Guide to setting up the AWS Athena plugin.
 
-    ---
-
-    .. link-button:: deployment-plugin-setup-aws-sagemaker
-       :type: ref
-       :text: AWS Sagemaker
-       :classes: btn-block stretched-link
-    ^^^^^^^^^^^^
-    Guide to setting up the AWS Sagemaker plugin.
-
 .. toctree::
     :maxdepth: 1
     :name: AWS plugin setup
@@ -44,4 +35,3 @@ Discover the process of setting up AWS plugins for Flyte.
 
     batch
     athena
-    sagemaker
\ No newline at end of file
diff --git a/rsts/deployment/plugins/aws/sagemaker.rst b/rsts/deployment/plugins/aws/sagemaker.rst
deleted file mode 100644
index 9401920901..0000000000
--- a/rsts/deployment/plugins/aws/sagemaker.rst
+++ /dev/null
@@ -1,95 +0,0 @@
-.. _deployment-plugin-setup-aws-sagemaker:
-
-Sagemaker Plugin
-================
-
-This guide provides an overview of setting up Sagemaker in your Flyte deployment.
-
-.. note::
-   
-   The Sagemaker plugin requires Flyte deployment in the AWS cloud;
-   it is not compatible with demo/GCP/Azure.
-
-Set up AWS Flyte cluster
-------------------------
-
-* Ensure you have a functional Flyte cluster running in `AWS <https://docs.flyte.org/en/latest/deployment/aws/index.html#deployment-aws>`__.
-* Verify that your AWS role is set up correctly for `SageMaker <https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html>`__.
-* Install the `AWS SageMaker k8s operator <https://github.com/aws/amazon-sagemaker-operator-for-k8s>`__ in your Kubernetes cluster.
-* Confirm that you have the correct kubeconfig and have selected the appropriate Kubernetes context.
-* Verify the presence of the correct Flytectl configuration at ``~/.flyte/config.yaml``.
-
-Specify the plugin configuration
---------------------------------
-
-.. tabs::
-
-  .. tab:: Flyte binary
-
-    Edit the relevant YAML file to specify the plugin.
-
-    .. code-block:: yaml
-      :emphasize-lines: 7,8
-
-      tasks:
-        task-plugins:
-          enabled-plugins:
-            - container
-            - sidecar
-            - k8s-array
-            - sagemaker_training
-            - sagemaker_hyperparameter_tuning
-          default-for-task-types:
-            - container: container
-            - container_array: k8s-array
-
-  .. tab:: Flyte core
-
-    Create a file named ``values-override.yaml`` and add the following configuration to it. 
-
-    .. code-block:: yaml
-
-        configmap:
-          enabled_plugins:
-            # -- Tasks specific configuration [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#GetConfig)
-            tasks:
-              # -- Plugins configuration, [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#TaskPluginConfig)
-              task-plugins:
-                # -- [Enabled Plugins](https://pkg.go.dev/github.com/flyteorg/flyteplugins/go/tasks/config#Config).
-                # plugins
-                enabled-plugins:
-                  - container
-                  - sidecar
-                  - k8s-array
-                  - sagemaker_training
-                  - sagemaker_hyperparameter_tuning
-                default-for-task-types:
-                  container: container
-                  sidecar: sidecar
-                  container_array: k8s-array
-
-Ensure that the propeller has the correct service account for Sagemaker.
-
-Upgrade the Flyte Helm release
-------------------------------
-
-.. tabs::
-
-  .. group-tab:: Flyte binary
-
-    .. code-block:: bash
-
-      helm upgrade <RELEASE_NAME> flyteorg/flyte-binary -n <YOUR_NAMESPACE> --values <YOUR_YAML_FILE>
-
-    Replace ``<RELEASE_NAME>`` with the name of your release (e.g., ``flyte-backend``),
-    ``<YOUR_NAMESPACE>`` with the name of your namespace (e.g., ``flyte``),
-    and ``<YOUR_YAML_FILE>`` with the name of your YAML file.
-
-  .. group-tab:: Flyte core
-
-    .. code-block:: bash
-
-      helm upgrade <RELEASE_NAME> flyte/flyte-core -n <YOUR_NAMESPACE> --values values-override.yaml
-
-    Replace ``<RELEASE_NAME>`` with the name of your release (e.g., ``flyte``)
-    and ``<YOUR_NAMESPACE>`` with the name of your namespace (e.g., ``flyte``).