diff --git a/.github/workflows/bump-tags.yml b/.github/workflows/bump-tags.yml index 2ea6cf0b5a..d50082c511 100644 --- a/.github/workflows/bump-tags.yml +++ b/.github/workflows/bump-tags.yml @@ -42,6 +42,7 @@ jobs: const components = [ "datacatalog", "flyteadmin", + "flyteartifacts", "flytecopilot", "flyteidl", "flyteplugins", diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 89f427f274..dd07673d2a 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -5,6 +5,7 @@ on: paths: - 'datacatalog/**' - 'flyteadmin/**' + - 'flyteartifacts/**' - 'flytecopilot/**' - 'flyteplugins/**' - 'flytepropeller/**' @@ -15,6 +16,7 @@ on: paths: - 'datacatalog/**' - 'flyteadmin/**' + - 'flyteartifacts/**' - 'flytecopilot/**' - 'flyteidl/**' - 'flyteplugins/**' @@ -80,6 +82,7 @@ jobs: component: - datacatalog - flyteadmin + - flyteartifacts - flytecopilot - flytepropeller name: Docker Build Images @@ -162,6 +165,7 @@ jobs: component: - datacatalog - flyteadmin + - flyteartifacts - flytecopilot - flytepropeller - flytescheduler diff --git a/Dockerfile.flyteartifacts b/Dockerfile.flyteartifacts new file mode 100644 index 0000000000..51303aad69 --- /dev/null +++ b/Dockerfile.flyteartifacts @@ -0,0 +1,42 @@ +FROM --platform=${BUILDPLATFORM} golang:1.19-alpine3.16 as builder + +ARG TARGETARCH +ENV GOARCH "${TARGETARCH}" +ENV GOOS linux + +RUN apk add git openssh-client make curl + +# Create the artifacts directory +RUN mkdir /artifacts + +WORKDIR /go/src/github.com/flyteorg/flyte/flyteartifacts/ + +COPY datacatalog ../datacatalog +COPY flyteadmin ../flyteadmin +COPY flyteartifacts . +COPY flytecopilot ../flytecopilot +COPY flyteidl ../flyteidl +COPY flyteplugins ../flyteplugins +COPY flytepropeller ../flytepropeller +COPY flytestdlib ../flytestdlib + +# This 'linux_compile' target should compile binaries to the /artifacts directory +# The main entrypoint should be compiled to /artifacts/flyteadmin +RUN make linux_compile + +# update the PATH to include the /artifacts directory +ENV PATH="/artifacts:${PATH}" + +# This will eventually move to centurylink/ca-certs:latest for minimum possible image size +FROM alpine:3.16 +LABEL org.opencontainers.image.source https://github.com/flyteorg/flyte/ + +COPY --from=builder /artifacts /bin + +# Ensure the latest CA certs are present to authenticate SSL connections. +RUN apk --update add ca-certificates + +RUN addgroup -S flyte && adduser -S flyte -G flyte +USER flyte + +CMD ["artifacts"] diff --git a/charts/flyte-sandbox/Chart.lock b/charts/flyte-sandbox/Chart.lock index e759b845a7..3b64136d9d 100644 --- a/charts/flyte-sandbox/Chart.lock +++ b/charts/flyte-sandbox/Chart.lock @@ -14,8 +14,5 @@ dependencies: - name: postgresql repository: https://charts.bitnami.com/bitnami version: 12.1.9 -- name: redis - repository: https://charts.bitnami.com/bitnami - version: 17.15.6 -digest: sha256:1bcc5f102768a19c19d444b3460dabd0f90847b2d4423134f0ce9c7aa0a256ea -generated: "2023-08-31T16:46:00.478623-07:00" +digest: sha256:e7155e540bbdb98f690eb12e2bd301a19d8b36833336f6991410cb44d8d9bb5e +generated: "2023-10-28T10:05:34.269916+08:00" diff --git a/charts/flyte-sandbox/Chart.yaml b/charts/flyte-sandbox/Chart.yaml index b66a93a0a5..cf60b48492 100644 --- a/charts/flyte-sandbox/Chart.yaml +++ b/charts/flyte-sandbox/Chart.yaml @@ -44,7 +44,3 @@ dependencies: version: 12.1.9 repository: https://charts.bitnami.com/bitnami condition: postgresql.enabled - - name: redis - version: 17.15.6 - repository: https://charts.bitnami.com/bitnami - condition: redis.enabled diff --git a/charts/flyte-sandbox/values.yaml b/charts/flyte-sandbox/values.yaml index be79a69f95..353d44012e 100644 --- a/charts/flyte-sandbox/values.yaml +++ b/charts/flyte-sandbox/values.yaml @@ -49,12 +49,10 @@ flyte-binary: memory: 0 cloudEvents: enable: true - transformToCloudEvents: true - type: redis - redis: - addr: "flyte-sandbox-redis-headless.flyte.svc.cluster.local:6379" + cloudEventVersion: v2 + type: sandbox artifacts: - host: artifact-service.flyte.svc.cluster.local + host: localhost port: 50051 insecure: true storage: @@ -159,21 +157,6 @@ postgresql: tag: sandbox pullPolicy: Never -redis: - enabled: true - image: - tag: sandbox - pullPolicy: Never - auth: - enabled: false - master: - service: - type: NodePort - nodePorts: - redis: 30004 - replica: - replicaCount: 0 - sandbox: # dev Routes requests to an instance of Flyte running locally on a developer's # development environment. This is only usable if the flyte-binary chart is disabled. diff --git a/cmd/single/config.go b/cmd/single/config.go index adbabe7ae5..9388ec62ce 100644 --- a/cmd/single/config.go +++ b/cmd/single/config.go @@ -13,6 +13,7 @@ type Config struct { Propeller Propeller `json:"propeller" pflag:",Configuration to disable propeller or any of its components."` Admin Admin `json:"admin" pflag:",Configuration to disable FlyteAdmin or any of its components"` DataCatalog DataCatalog `json:"dataCatalog" pflag:",Configuration to disable DataCatalog or any of its components"` + Artifact Artifacts `json:"artifact" pflag:",Configuration to disable Artifact or any of its components"` } type Propeller struct { @@ -20,6 +21,10 @@ type Propeller struct { DisableWebhook bool `json:"disableWebhook" pflag:",Disables webhook only"` } +type Artifacts struct { + Disabled bool `json:"disabled" pflag:",Disables flyteartifacts in the single binary mode"` +} + type Admin struct { Disabled bool `json:"disabled" pflag:",Disables flyteadmin in the single binary mode"` DisableScheduler bool `json:"disableScheduler" pflag:",Disables Native scheduler in the single binary mode"` diff --git a/cmd/single/start.go b/cmd/single/start.go index 5fc20b18d5..47234658a2 100644 --- a/cmd/single/start.go +++ b/cmd/single/start.go @@ -2,6 +2,10 @@ package single import ( "context" + sharedCmd "github.com/flyteorg/flyte/flyteartifacts/cmd/shared" + "github.com/flyteorg/flyte/flyteartifacts/pkg/configuration" + artifactsServer "github.com/flyteorg/flyte/flyteartifacts/pkg/server" + "github.com/flyteorg/flyte/flytestdlib/database" "net/http" datacatalogConfig "github.com/flyteorg/flyte/datacatalog/pkg/config" @@ -59,6 +63,40 @@ func startClusterResourceController(ctx context.Context) error { return nil } +func startArtifact(ctx context.Context, cfg Artifacts) error { + if cfg.Disabled { + logger.Infof(ctx, "Artifacts server is disabled. Skipping...") + return nil + } + // Roughly copies main/NewMigrateCmd + logger.Infof(ctx, "Artifacts: running database migrations if any...") + migs := artifactsServer.GetMigrations(ctx) + initializationSql := "create extension if not exists hstore;" + dbConfig := artifactsServer.GetDbConfig() + err := database.Migrate(context.Background(), dbConfig, migs, initializationSql) + if err != nil { + logger.Errorf(ctx, "Failed to run Artifacts database migrations. Error: %v", err) + return err + } + + g, childCtx := errgroup.WithContext(ctx) + + // Rough copy of NewServeCmd + g.Go(func() error { + cfg := configuration.GetApplicationConfig() + serverCfg := &cfg.ArtifactServerConfig + err := sharedCmd.ServeGateway(childCtx, "artifacts", serverCfg, artifactsServer.GrpcRegistrationHook, + artifactsServer.HttpRegistrationHook) + if err != nil { + logger.Errorf(childCtx, "Failed to start Artifacts server. Error: %v", err) + return err + } + return nil + }) + + return g.Wait() +} + func startAdmin(ctx context.Context, cfg Admin) error { logger.Infof(ctx, "Running Database Migrations...") if err := adminServer.Migrate(ctx); err != nil { @@ -192,6 +230,16 @@ var startCmd = &cobra.Command{ }) } + if !cfg.Artifact.Disabled { + g.Go(func() error { + err := startArtifact(childCtx, cfg.Artifact) + if err != nil { + logger.Panicf(childCtx, "Failed to start Artifacts server, err: %v", err) + } + return nil + }) + } + if !cfg.Propeller.Disabled { g.Go(func() error { err := startPropeller(childCtx, cfg.Propeller) diff --git a/datacatalog/go.mod b/datacatalog/go.mod index f33c31e8cb..3086ea0c1a 100644 --- a/datacatalog/go.mod +++ b/datacatalog/go.mod @@ -9,15 +9,15 @@ require ( github.com/gofrs/uuid v4.2.0+incompatible github.com/golang/glog v1.1.0 github.com/golang/protobuf v1.5.3 - github.com/jackc/pgconn v1.10.1 + github.com/jackc/pgconn v1.14.1 github.com/mitchellh/mapstructure v1.5.0 github.com/spf13/cobra v1.4.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 google.golang.org/grpc v1.56.1 - gorm.io/driver/postgres v1.2.3 - gorm.io/driver/sqlite v1.1.1 - gorm.io/gorm v1.22.4 + gorm.io/driver/postgres v1.5.3 + gorm.io/driver/sqlite v1.5.4 + gorm.io/gorm v1.25.4 ) require ( @@ -46,6 +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-gormigrate/gormigrate/v2 v2.1.1 // indirect github.com/go-logr/logr v0.4.0 // indirect github.com/golang-jwt/jwt/v4 v4.4.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -58,17 +59,16 @@ require ( 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 - github.com/jackc/pgproto3/v2 v2.2.0 // indirect - github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect - github.com/jackc/pgtype v1.9.0 // indirect - github.com/jackc/pgx/v4 v4.14.0 // indirect + github.com/jackc/pgproto3/v2 v2.3.2 // indirect + github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect + github.com/jackc/pgx/v5 v5.4.3 // indirect github.com/jinzhu/inflection v1.0.0 // indirect - github.com/jinzhu/now v1.1.4 // indirect + github.com/jinzhu/now v1.1.5 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/mattn/go-colorable v0.1.12 // indirect github.com/mattn/go-isatty v0.0.14 // indirect - github.com/mattn/go-sqlite3 v1.14.0 // indirect + github.com/mattn/go-sqlite3 v1.14.17 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/ncw/swift v1.0.53 // indirect github.com/pelletier/go-toml v1.9.4 // indirect @@ -87,10 +87,10 @@ 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/crypto v0.9.0 // indirect + golang.org/x/net v0.10.0 // indirect golang.org/x/oauth2 v0.7.0 // indirect - golang.org/x/sys v0.7.0 // indirect + golang.org/x/sys v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.1.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect diff --git a/datacatalog/go.sum b/datacatalog/go.sum index 672f959a95..e006977fb8 100644 --- a/datacatalog/go.sum +++ b/datacatalog/go.sum @@ -78,12 +78,9 @@ 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/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= @@ -93,7 +90,6 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy 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/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= @@ -116,7 +112,6 @@ 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/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEkaPc= github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY= @@ -155,6 +150,8 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME 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-gormigrate/gormigrate/v2 v2.1.1 h1:eGS0WTFRV30r103lU8JNXY27KbviRnqqIDobW3EV3iY= +github.com/go-gormigrate/gormigrate/v2 v2.1.1/go.mod h1:L7nJ620PFDKei9QOhJzqA8kRCk+E3UbV2f5gv+1ndLc= 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= @@ -173,7 +170,6 @@ github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8 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-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= @@ -283,9 +279,8 @@ github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= -github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= -github.com/jackc/pgconn v1.10.1 h1:DzdIHIjG1AxGwoEEqS+mGsURyjt4enSmqzACXvVzOT8= -github.com/jackc/pgconn v1.10.1/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= +github.com/jackc/pgconn v1.14.1 h1:smbxIaZA08n6YuxEX1sDyjV/qkbtUtkH20qLkR9MUR4= +github.com/jackc/pgconn v1.14.1/go.mod h1:9mBNlny0UvkgJdCDvdVHYSjI+8tD2rnKK69Wz8ti++E= github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= @@ -301,33 +296,25 @@ github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvW github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.2.0 h1:r7JypeP2D3onoQTCxWdTpCtJ4D+qpKr0TxvoyMhZ5ns= -github.com/jackc/pgproto3/v2 v2.2.0/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg= +github.com/jackc/pgproto3/v2 v2.3.2 h1:7eY55bdBeCz1F2fTzSz69QC+pG46jYq9/jtSPiJ5nn0= +github.com/jackc/pgproto3/v2 v2.3.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= -github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= -github.com/jackc/pgtype v1.9.0 h1:/SH1RxEtltvJgsDqp3TbiTFApD3mey3iygpuEGeuBXk= -github.com/jackc/pgtype v1.9.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= -github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= -github.com/jackc/pgx/v4 v4.14.0 h1:TgdrmgnM7VY72EuSQzBbBd4JA1RLqJolrw9nQVZABVc= -github.com/jackc/pgx/v4 v4.14.0/go.mod h1:jT3ibf/A0ZVCp89rtCIN0zCJxcE74ypROmHEZYsG/j8= +github.com/jackc/pgx/v5 v5.4.3 h1:cxFyXhxlvAifxnkKKdlxv8XqUf59tDlYjnV5YYfsJJY= +github.com/jackc/pgx/v5 v5.4.3/go.mod h1:Ig06C2Vu0t5qXC60W8sqIthScaEnFvojjj9dSljmHRA= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.2.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jinzhu/now v1.1.2/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jinzhu/now v1.1.3/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jinzhu/now v1.1.4 h1:tHnRBy1i5F2Dh8BAFxqFzxKqqvezXrL2OW1TnX+Mlas= -github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= 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= @@ -351,7 +338,7 @@ 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.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= 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= @@ -361,14 +348,11 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -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= github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -377,8 +361,8 @@ github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd 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-sqlite3 v1.14.0 h1:mLyGNKR8+Vv9CAU7PphKa2hkEqxxhn8i32J6FPj1/QA= -github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus= +github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM= +github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= 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= @@ -438,14 +422,13 @@ 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.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= 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= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= -github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= -github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= @@ -491,6 +474,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de 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.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= @@ -502,15 +486,9 @@ 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.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= 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/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= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/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-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= @@ -528,8 +506,9 @@ 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.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -563,7 +542,7 @@ 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/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= 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= @@ -605,8 +584,10 @@ 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.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -629,6 +610,7 @@ 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-20220722155255-886fb9371eb4/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= @@ -685,11 +667,15 @@ 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.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.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= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= 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= @@ -698,6 +684,7 @@ 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.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= 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-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -725,8 +712,6 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn 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-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= @@ -734,7 +719,6 @@ golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -762,6 +746,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.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -872,8 +857,8 @@ 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/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= @@ -892,14 +877,12 @@ 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.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/driver/postgres v1.2.3 h1:f4t0TmNMy9gh3TU2PX+EppoA6YsgFnyq8Ojtddb42To= -gorm.io/driver/postgres v1.2.3/go.mod h1:pJV6RgYQPG47aM1f0QeOzFH9HxQc8JcmAgjRCgS0wjs= -gorm.io/driver/sqlite v1.1.1 h1:qtWqNAEUyi7gYSUAJXeiAMz0lUOdakZF5ia9Fqnp5G4= -gorm.io/driver/sqlite v1.1.1/go.mod h1:hm2olEcl8Tmsc6eZyxYSeznnsDaMqamBvEXLNtBg4cI= -gorm.io/gorm v1.9.19/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= -gorm.io/gorm v1.22.3/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0= -gorm.io/gorm v1.22.4 h1:8aPcyEJhY0MAt8aY6Dc524Pn+pO29K+ydu+e/cXSpQM= -gorm.io/gorm v1.22.4/go.mod h1:1aeVC+pe9ZmvKZban/gW4QPra7PRoTEssyc922qCAkk= +gorm.io/driver/postgres v1.5.3 h1:qKGY5CPHOuj47K/VxbCXJfFvIUeqMSXXadqdCY+MbBU= +gorm.io/driver/postgres v1.5.3/go.mod h1:F+LtvlFhZT7UBiA81mC9W6Su3D4WUhSboc/36QZU0gk= +gorm.io/driver/sqlite v1.5.4 h1:IqXwXi8M/ZlPzH/947tn5uik3aYQslP9BVveoax0nV0= +gorm.io/driver/sqlite v1.5.4/go.mod h1:qxAuCol+2r6PannQDpOP1FP6ag3mKi4esLnB/jHed+4= +gorm.io/gorm v1.25.4 h1:iyNd8fNAe8W9dvtlgeRI5zSVZPsq3OpcTu37cYcpCmw= +gorm.io/gorm v1.25.4/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= 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= diff --git a/docker/sandbox-bundled/images/manifest.txt b/docker/sandbox-bundled/images/manifest.txt index d2b127ac89..04fb34627c 100644 --- a/docker/sandbox-bundled/images/manifest.txt +++ b/docker/sandbox-bundled/images/manifest.txt @@ -1,7 +1,6 @@ docker.io/bitnami/bitnami-shell:sandbox=bitnami/bitnami-shell:11-debian-11-r76 docker.io/bitnami/minio:sandbox=bitnami/minio:2023.1.25-debian-11-r0 docker.io/bitnami/postgresql:sandbox=bitnami/postgresql:15.1.0-debian-11-r20 -docker.io/bitnami/redis:sandbox=bitnami/redis:7.2.0-debian-11-r3 docker.io/envoyproxy/envoy:sandbox=envoyproxy/envoy:v1.23-latest docker.io/kubernetesui/dashboard:sandbox=kubernetesui/dashboard:v2.7.0 docker.io/library/registry:sandbox=registry:2.8.1 diff --git a/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml new file mode 100644 index 0000000000..cdcbf7b4f8 --- /dev/null +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -0,0 +1,1992 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: flyte +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-binary-v0.1.10 + name: flyte-sandbox + namespace: flyte +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + name: flyte-sandbox-kubernetes-dashboard + namespace: flyte +--- +apiVersion: v1 +automountServiceAccountToken: true +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: minio + helm.sh/chart: minio-12.1.1 + name: flyte-sandbox-minio + namespace: flyte +secrets: +- name: flyte-sandbox-minio +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/instance: flyteagent + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyteagent + helm.sh/chart: flyteagent-v0.1.10 + name: flyteagent + namespace: flyte +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + name: flyte-sandbox-kubernetes-dashboard + namespace: flyte +rules: +- apiGroups: + - "" + resourceNames: + - kubernetes-dashboard-key-holder + - kubernetes-dashboard-certs + - kubernetes-dashboard-csrf + resources: + - secrets + verbs: + - get + - update + - delete +- apiGroups: + - "" + resourceNames: + - kubernetes-dashboard-settings + resources: + - configmaps + verbs: + - get + - update +- apiGroups: + - "" + resourceNames: + - heapster + - dashboard-metrics-scraper + resources: + - services + verbs: + - proxy +- apiGroups: + - "" + resourceNames: + - heapster + - 'http:heapster:' + - 'https:heapster:' + - dashboard-metrics-scraper + - http:dashboard-metrics-scraper + resources: + - services/proxy + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-binary-v0.1.10 + name: flyte-sandbox-cluster-role + namespace: flyte +rules: +- apiGroups: + - "" + resources: + - namespaces + - resourcequotas + - secrets + verbs: + - create + - get + - list + - patch + - update +- apiGroups: + - "" + resources: + - pods + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - events + verbs: + - create + - delete + - patch + - update +- apiGroups: + - "" + resources: + - podtemplates + verbs: + - get + - list + - watch +- apiGroups: + - flyte.lyft.com + resources: + - flyteworkflows + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - post + - update + - watch +- apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - create + - get + - list +- apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - create + - get + - list + - patch + - update +- apiGroups: + - '*' + resources: + - '*' + verbs: + - '*' +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + name: flyte-sandbox-kubernetes-dashboard-readonly +rules: +- apiGroups: + - "" + resources: + - configmaps + - endpoints + - persistentvolumeclaims + - pods + - replicationcontrollers + - replicationcontrollers/scale + - serviceaccounts + - services + - nodes + - persistentvolumeclaims + - persistentvolumes + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - bindings + - events + - limitranges + - namespaces/status + - pods/log + - pods/status + - replicationcontrollers/status + - resourcequotas + - resourcequotas/status + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - watch +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - deployments/scale + - replicasets + - replicasets/scale + - statefulsets + verbs: + - get + - list + - watch +- apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - get + - list + - watch +- apiGroups: + - batch + resources: + - cronjobs + - jobs + verbs: + - get + - list + - watch +- apiGroups: + - extensions + resources: + - daemonsets + - deployments + - deployments/scale + - ingresses + - networkpolicies + - replicasets + - replicasets/scale + - replicationcontrollers/scale + verbs: + - get + - list + - watch +- apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - get + - list + - watch +- apiGroups: + - networking.k8s.io + resources: + - networkpolicies + - ingresses + verbs: + - get + - list + - watch +- apiGroups: + - storage.k8s.io + resources: + - storageclasses + - volumeattachments + verbs: + - get + - list + - watch +- apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + - clusterroles + - roles + - rolebindings + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + name: flyte-sandbox-kubernetes-dashboard + namespace: flyte +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: flyte-sandbox-kubernetes-dashboard +subjects: +- kind: ServiceAccount + name: flyte-sandbox-kubernetes-dashboard + namespace: flyte +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-binary-v0.1.10 + name: flyte-sandbox-cluster-role-binding + namespace: flyte +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: flyte-sandbox-cluster-role +subjects: +- kind: ServiceAccount + name: flyte-sandbox + namespace: flyte +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + name: flyte-sandbox-kubernetes-dashboard-readonly +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: flyte-sandbox-kubernetes-dashboard-readonly +subjects: +- kind: ServiceAccount + name: flyte-sandbox-kubernetes-dashboard + namespace: flyte +--- +apiVersion: v1 +data: + namespace.yaml: | + apiVersion: v1 + kind: Namespace + metadata: + name: '{{ namespace }}' +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-binary-v0.1.10 + name: flyte-sandbox-cluster-resource-templates + namespace: flyte +--- +apiVersion: v1 +data: + 000-core.yaml: | + admin: + endpoint: localhost:8089 + insecure: true + catalog-cache: + endpoint: localhost:8081 + insecure: true + type: datacatalog + cluster_resources: + standaloneDeployment: false + templatePath: /etc/flyte/cluster-resource-templates + logger: + show-source: true + level: 5 + propeller: + create-flyteworkflow-crd: true + webhook: + certDir: /var/run/flyte/certs + localCert: true + secretName: flyte-sandbox-webhook-secret + serviceName: flyte-sandbox-webhook + servicePort: 443 + flyte: + admin: + disableClusterResourceManager: false + disableScheduler: false + disabled: false + seedProjects: + - flytesnacks + dataCatalog: + disabled: false + propeller: + disableWebhook: false + disabled: false + 001-plugins.yaml: | + tasks: + task-plugins: + default-for-task-types: + container: container + container_array: k8s-array + sidecar: sidecar + enabled-plugins: + - container + - sidecar + - k8s-array + - agent-service + plugins: + logs: + kubernetes-enabled: true + kubernetes-template-uri: http://localhost:30080/kubernetes-dashboard/#/log/{{.namespace }}/{{ .podName }}/pod?namespace={{ .namespace }} + cloudwatch-enabled: false + stackdriver-enabled: false + k8s: + co-pilot: + image: "cr.flyte.org/flyteorg/flytecopilot:v1.9.4" + k8s-array: + logs: + config: + kubernetes-enabled: true + kubernetes-template-uri: http://localhost:30080/kubernetes-dashboard/#/log/{{.namespace }}/{{ .podName }}/pod?namespace={{ .namespace }} + cloudwatch-enabled: false + stackdriver-enabled: false + agent-service: + defaultAgent: + defaultTimeout: 10s + endpoint: dns:///flyteagent.flyte.svc.cluster.local:8000 + insecure: true + timeouts: + GetTask: 10s + supportedTaskTypes: + - default_task + 002-database.yaml: | + database: + postgres: + username: postgres + host: flyte-sandbox-postgresql + port: 5432 + dbname: flyte + options: "sslmode=disable" + 003-storage.yaml: | + propeller: + rawoutput-prefix: s3://my-s3-bucket/data + storage: + type: stow + stow: + kind: s3 + config: + region: us-east-1 + disable_ssl: true + v2_signing: true + endpoint: http://flyte-sandbox-minio.flyte:9000 + auth_type: accesskey + container: my-s3-bucket + 100-inline-config.yaml: | + artifacts: + host: localhost + insecure: true + port: 50051 + cloudEvents: + cloudEventVersion: v2 + enable: true + type: sandbox + plugins: + k8s: + default-env-vars: + - FLYTE_AWS_ENDPOINT: http://flyte-sandbox-minio.flyte:9000 + - FLYTE_AWS_ACCESS_KEY_ID: minio + - FLYTE_AWS_SECRET_ACCESS_KEY: miniostorage + storage: + signedURL: + stowConfigOverride: + endpoint: http://localhost:30002 + task_resources: + defaults: + cpu: 500m + ephemeralStorage: 0 + gpu: 0 + memory: 1Gi + limits: + cpu: 0 + ephemeralStorage: 0 + gpu: 0 + memory: 0 +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-binary-v0.1.10 + name: flyte-sandbox-config + namespace: flyte +--- +apiVersion: v1 +data: + config.yml: |- + health: + storagedriver: + enabled: true + interval: 10s + threshold: 3 + http: + addr: :5000 + debug: + addr: :5001 + prometheus: + enabled: false + path: /metrics + headers: + X-Content-Type-Options: + - nosniff + log: + fields: + service: registry + storage: + cache: + blobdescriptor: inmemory + version: 0.1 +kind: ConfigMap +metadata: + labels: + app: docker-registry + chart: docker-registry-2.2.2 + heritage: Helm + release: flyte-sandbox + name: flyte-sandbox-docker-registry-config + namespace: flyte +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: flyte-sandbox-extra-cluster-resource-templates + namespace: flyte +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: flyte-sandbox-extra-config + namespace: flyte +--- +apiVersion: v1 +data: + envoy.yaml: | + admin: + access_log_path: /dev/stdout + static_resources: + listeners: + - address: + socket_address: + address: 0.0.0.0 + port_value: 8000 + filter_chains: + - filters: + - name: envoy.filters.network.http_connection_manager + typed_config: + "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager + stat_prefix: ingress_http + codec_type: AUTO + upgrade_configs: + - upgrade_type: websocket + route_config: + name: local_route + virtual_hosts: + - name: backend + domains: + - "*" + routes: + - match: + path: "/" + redirect: + path_redirect: "/console/" + - match: + prefix: "/.well-known" + route: + cluster: flyte + - match: + prefix: "/__webpack_hmr" + route: + cluster: flyte + - match: + prefix: "/api" + route: + cluster: flyte + - match: + prefix: "/callback" + route: + cluster: flyte + - match: + prefix: "/config" + route: + cluster: flyte + - match: + prefix: "/console" + route: + cluster: flyte + - match: + prefix: "/healthcheck" + route: + cluster: flyte + - match: + prefix: "/login" + route: + cluster: flyte + - match: + prefix: "/logout" + route: + cluster: flyte + - match: + prefix: "/me" + route: + cluster: flyte + - match: + prefix: "/oauth2" + route: + cluster: flyte + - match: + prefix: "/v1" + route: + cluster: flyte + - match: + prefix: "/flyteidl.service.AdminService" + route: + cluster: flyte_grpc + - match: + prefix: "/flyteidl.service.AuthMetadataService" + route: + cluster: flyte_grpc + - match: + prefix: "/flyteidl.service.DataProxyService" + route: + cluster: flyte_grpc + - match: + prefix: "/flyteidl.service.IdentityService" + route: + cluster: flyte_grpc + - match: + prefix: "/grpc.health.v1.Health" + route: + cluster: flyte_grpc + - match: + prefix: "/flyteidl.service.SignalService" + route: + cluster: flyte_grpc + - match: + prefix: "/flyteidl.artifact.ArtifactRegistry" + route: + cluster: artifact + - match: + path: "/kubernetes-dashboard" + redirect: + path_redirect: "/kubernetes-dashboard/" + - match: + prefix: "/kubernetes-dashboard/" + route: + cluster: kubernetes-dashboard + prefix_rewrite: / + - match: + path: "/minio" + redirect: + path_redirect: "/minio/" + - match: + prefix: "/minio/" + route: + cluster: minio + prefix_rewrite: / + http_filters: + - name: envoy.filters.http.router + typed_config: + "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router + clusters: + - name: flyte + connect_timeout: 0.25s + type: STRICT_DNS + lb_policy: ROUND_ROBIN + load_assignment: + cluster_name: flyte + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: flyte-sandbox-http + port_value: 8088 + - name: flyte_grpc + connect_timeout: 0.25s + type: STRICT_DNS + lb_policy: ROUND_ROBIN + http2_protocol_options: {} + load_assignment: + cluster_name: flyte_grpc + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: flyte-sandbox-grpc + port_value: 8089 + - name: kubernetes-dashboard + connect_timeout: 0.25s + type: STRICT_DNS + lb_policy: ROUND_ROBIN + load_assignment: + cluster_name: kubernetes-dashboard + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: flyte-sandbox-kubernetes-dashboard + port_value: 80 + - name: minio + connect_timeout: 0.25s + type: STRICT_DNS + lb_policy: ROUND_ROBIN + load_assignment: + cluster_name: minio + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: flyte-sandbox-minio + port_value: 9001 + - name: artifact + connect_timeout: 0.25s + type: STRICT_DNS + lb_policy: ROUND_ROBIN + http2_protocol_options: {} + load_assignment: + cluster_name: artifact + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: artifact-service + port_value: 50051 +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-sandbox-0.1.0 + name: flyte-sandbox-proxy-config + namespace: flyte +--- +apiVersion: v1 +data: null +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + name: kubernetes-dashboard-settings + namespace: flyte +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-binary-v0.1.10 + name: flyte-sandbox-config-secret + namespace: flyte +stringData: + 012-database-secrets.yaml: | + database: + postgres: + password: "postgres" + 013-storage-secrets.yaml: | + storage: + stow: + config: + access_key_id: "minio" + secret_key: "miniostorage" +type: Opaque +--- +apiVersion: v1 +data: + haSharedSecret: bHpJN3NncmQzSGVzZkhpWQ== + proxyPassword: "" + proxyUsername: "" +kind: Secret +metadata: + labels: + app: docker-registry + chart: docker-registry-2.2.2 + heritage: Helm + release: flyte-sandbox + name: flyte-sandbox-docker-registry-secret + namespace: flyte +type: Opaque +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + name: flyte-sandbox-kubernetes-dashboard-certs + namespace: flyte +type: Opaque +--- +apiVersion: v1 +data: + root-password: bWluaW9zdG9yYWdl + root-user: bWluaW8= +kind: Secret +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: minio + helm.sh/chart: minio-12.1.1 + name: flyte-sandbox-minio + namespace: flyte +type: Opaque +--- +apiVersion: v1 +data: + postgres-password: cG9zdGdyZXM= +kind: Secret +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.9 + name: flyte-sandbox-postgresql + namespace: flyte +type: Opaque +--- +apiVersion: v1 +data: + username: User +kind: Secret +metadata: + name: flyteagent + namespace: flyte +type: Opaque +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + name: kubernetes-dashboard-csrf + namespace: flyte +type: Opaque +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + name: kubernetes-dashboard-key-holder + namespace: flyte +type: Opaque +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: artifact-service + name: artifact-service + namespace: flyte +spec: + ports: + - name: grpc + port: 50051 + targetPort: 50051 + selector: + app: artifact-service + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: docker-registry + chart: docker-registry-2.2.2 + heritage: Helm + release: flyte-sandbox + name: flyte-sandbox-docker-registry + namespace: flyte +spec: + ports: + - name: http-5000 + nodePort: 30000 + port: 5000 + protocol: TCP + targetPort: 5000 + selector: + app: docker-registry + release: flyte-sandbox + type: NodePort +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-binary-v0.1.10 + name: flyte-sandbox-grpc + namespace: flyte +spec: + ports: + - name: grpc + nodePort: null + port: 8089 + targetPort: grpc + selector: + app.kubernetes.io/component: flyte-binary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: flyte-sandbox + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-binary-v0.1.10 + name: flyte-sandbox-http + namespace: flyte +spec: + ports: + - name: http + nodePort: null + port: 8088 + targetPort: http + selector: + app.kubernetes.io/component: flyte-binary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: flyte-sandbox + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: kubernetes-dashboard + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + kubernetes.io/cluster-service: "true" + name: flyte-sandbox-kubernetes-dashboard + namespace: flyte +spec: + ports: + - name: http + port: 80 + targetPort: http + selector: + app.kubernetes.io/component: kubernetes-dashboard + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: kubernetes-dashboard + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: minio + helm.sh/chart: minio-12.1.1 + name: flyte-sandbox-minio + namespace: flyte +spec: + externalTrafficPolicy: Cluster + ports: + - name: minio-api + nodePort: 30002 + port: 9000 + targetPort: minio-api + - name: minio-console + port: 9001 + targetPort: minio-console + selector: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: minio + type: NodePort +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: primary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.9 + name: flyte-sandbox-postgresql + namespace: flyte +spec: + externalTrafficPolicy: Cluster + ports: + - name: tcp-postgresql + nodePort: 30001 + port: 5432 + targetPort: tcp-postgresql + selector: + app.kubernetes.io/component: primary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: postgresql + sessionAffinity: None + type: NodePort +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: primary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.9 + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + name: flyte-sandbox-postgresql-hl + namespace: flyte +spec: + clusterIP: None + ports: + - name: tcp-postgresql + port: 5432 + targetPort: tcp-postgresql + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: primary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: postgresql + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-sandbox-0.1.0 + name: flyte-sandbox-proxy + namespace: flyte +spec: + ports: + - name: http + nodePort: 30080 + port: 8000 + protocol: TCP + selector: + app.kubernetes.io/component: proxy + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: flyte-sandbox + type: NodePort +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-binary-v0.1.10 + name: flyte-sandbox-webhook + namespace: flyte +spec: + ports: + - name: webhook + port: 443 + targetPort: webhook + selector: + app.kubernetes.io/component: flyte-binary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: flyte-sandbox + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + projectcontour.io/upstream-protocol.h2c: grpc + labels: + app.kubernetes.io/instance: flyteagent + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyteagent + helm.sh/chart: flyteagent-v0.1.10 + name: flyteagent + namespace: flyte +spec: + ports: + - name: agent-grpc + port: 8000 + protocol: TCP + targetPort: agent-grpc + selector: + app.kubernetes.io/instance: flyteagent + app.kubernetes.io/name: flyteagent + type: ClusterIP +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-sandbox-0.1.0 + name: flyte-sandbox-db-storage + namespace: flyte +spec: + accessModes: + - ReadWriteOnce + capacity: + storage: 1Gi + hostPath: + path: /var/lib/flyte/storage/db + storageClassName: manual +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-sandbox-0.1.0 + name: flyte-sandbox-minio-storage + namespace: flyte +spec: + accessModes: + - ReadWriteOnce + capacity: + storage: 1Gi + hostPath: + path: /var/lib/flyte/storage/minio + storageClassName: manual +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-sandbox-0.1.0 + name: flyte-sandbox-db-storage + namespace: flyte +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: manual + volumeName: flyte-sandbox-db-storage +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-sandbox-0.1.0 + name: flyte-sandbox-minio-storage + namespace: flyte +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: manual + volumeName: flyte-sandbox-minio-storage +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: artifact-service + name: artifact-service + namespace: flyte +spec: + replicas: 1 + selector: + matchLabels: + app: artifact-service + template: + metadata: + labels: + app: artifact-service + spec: + containers: + - env: + - name: DATABASE_URL + value: postgresql://postgres:postgres@flyte-sandbox-postgresql.flyte:5432/postgres + - name: REDIS_HOST + value: flyte-sandbox-redis-headless.flyte.svc.cluster.local + - name: REDIS_PORT + value: "6379" + image: ghcr.io/unionai/artifacts:sandbox + livenessProbe: + initialDelaySeconds: 30 + tcpSocket: + port: grpc + name: main + ports: + - containerPort: 50051 + name: grpc + readinessProbe: + tcpSocket: + port: grpc +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-binary-v0.1.10 + name: flyte-sandbox + namespace: flyte +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/component: flyte-binary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: flyte-sandbox + strategy: + type: Recreate + template: + metadata: + annotations: + checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035 + checksum/configuration: 8d7c7929fda964a4ac1982becf5115c6074afbb8146eddd279352492ed6043cd + checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914 + labels: + app.kubernetes.io/component: flyte-binary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: flyte-sandbox + spec: + containers: + - args: + - start + - --config + - /etc/flyte/config.d/*.yaml + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: flyte-binary:sandbox + imagePullPolicy: Never + livenessProbe: + httpGet: + path: /healthcheck + port: http + name: flyte + ports: + - containerPort: 8088 + name: http + - containerPort: 8089 + name: grpc + - containerPort: 9443 + name: webhook + readinessProbe: + httpGet: + path: /healthcheck + port: http + volumeMounts: + - mountPath: /etc/flyte/cluster-resource-templates + name: cluster-resource-templates + - mountPath: /etc/flyte/config.d + name: config + - mountPath: /var/run/flyte + name: state + initContainers: + - args: + - | + until pg_isready \ + -h flyte-sandbox-postgresql \ + -p 5432 \ + -U postgres + do + echo waiting for database + sleep 0.1 + done + command: + - sh + - -ec + image: bitnami/postgresql:sandbox + imagePullPolicy: Never + name: wait-for-db + serviceAccountName: flyte-sandbox + volumes: + - name: cluster-resource-templates + projected: + sources: + - configMap: + name: flyte-sandbox-cluster-resource-templates + - configMap: + name: flyte-sandbox-extra-cluster-resource-templates + - name: config + projected: + sources: + - configMap: + name: flyte-sandbox-config + - secret: + name: flyte-sandbox-config-secret + - configMap: + name: flyte-sandbox-extra-config + - emptyDir: {} + name: state +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-sandbox-0.1.0 + name: flyte-sandbox-buildkit + namespace: flyte +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/component: buildkit + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: flyte-sandbox + template: + metadata: + labels: + app.kubernetes.io/component: buildkit + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: flyte-sandbox + spec: + containers: + - args: + - --addr + - unix:///run/buildkit/buildkitd.sock + - --addr + - tcp://0.0.0.0:30003 + image: moby/buildkit:sandbox + imagePullPolicy: Never + livenessProbe: + exec: + command: + - buildctl + - debug + - workers + initialDelaySeconds: 5 + periodSeconds: 30 + name: buildkit + ports: + - containerPort: 30003 + name: tcp + protocol: TCP + readinessProbe: + exec: + command: + - buildctl + - debug + - workers + initialDelaySeconds: 5 + periodSeconds: 30 + securityContext: + privileged: true + hostNetwork: true +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: docker-registry + chart: docker-registry-2.2.2 + heritage: Helm + release: flyte-sandbox + name: flyte-sandbox-docker-registry + namespace: flyte +spec: + minReadySeconds: 5 + replicas: 1 + selector: + matchLabels: + app: docker-registry + release: flyte-sandbox + template: + metadata: + annotations: + checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 + checksum/secret: 24d3ab901378068911558ada4baa51b1930a530c2e2baba642b785d17498480e + labels: + app: docker-registry + release: flyte-sandbox + spec: + containers: + - command: + - /bin/registry + - serve + - /etc/docker/registry/config.yml + env: + - name: REGISTRY_HTTP_SECRET + valueFrom: + secretKeyRef: + key: haSharedSecret + name: flyte-sandbox-docker-registry-secret + - name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY + value: /var/lib/registry + image: registry:sandbox + imagePullPolicy: Never + livenessProbe: + httpGet: + path: / + port: 5000 + name: docker-registry + ports: + - containerPort: 5000 + readinessProbe: + httpGet: + path: / + port: 5000 + resources: {} + volumeMounts: + - mountPath: /etc/docker/registry + name: flyte-sandbox-docker-registry-config + - mountPath: /var/lib/registry/ + name: data + securityContext: + fsGroup: 1000 + runAsUser: 1000 + volumes: + - configMap: + name: flyte-sandbox-docker-registry-config + name: flyte-sandbox-docker-registry-config + - emptyDir: {} + name: data +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: kubernetes-dashboard + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + name: flyte-sandbox-kubernetes-dashboard + namespace: flyte +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/component: kubernetes-dashboard + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: kubernetes-dashboard + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: null + labels: + app.kubernetes.io/component: kubernetes-dashboard + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kubernetes-dashboard + app.kubernetes.io/version: 2.7.0 + helm.sh/chart: kubernetes-dashboard-6.0.0 + spec: + containers: + - args: + - --namespace=flyte + - --metrics-provider=none + - --enable-insecure-login + - --enable-skip-login + image: kubernetesui/dashboard:sandbox + imagePullPolicy: Never + livenessProbe: + httpGet: + path: / + port: 9090 + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 30 + name: kubernetes-dashboard + ports: + - containerPort: 9090 + name: http + protocol: TCP + resources: + limits: + cpu: 2 + memory: 200Mi + requests: + cpu: 100m + memory: 200Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsGroup: 2001 + runAsUser: 1001 + volumeMounts: + - mountPath: /certs + name: kubernetes-dashboard-certs + - mountPath: /tmp + name: tmp-volume + securityContext: + seccompProfile: + type: RuntimeDefault + serviceAccountName: flyte-sandbox-kubernetes-dashboard + volumes: + - name: kubernetes-dashboard-certs + secret: + secretName: flyte-sandbox-kubernetes-dashboard-certs + - emptyDir: {} + name: tmp-volume +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: minio + helm.sh/chart: minio-12.1.1 + name: flyte-sandbox-minio + namespace: flyte +spec: + selector: + matchLabels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: minio + strategy: + type: Recreate + template: + metadata: + annotations: + checksum/credentials-secret: c199ac45f9d95d97966921c814d6c8b38cbf7416458e19cbe6d001a04c264448 + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: minio + helm.sh/chart: minio-12.1.1 + spec: + affinity: + nodeAffinity: null + podAffinity: null + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: minio + topologyKey: kubernetes.io/hostname + weight: 1 + containers: + - env: + - name: BITNAMI_DEBUG + value: "false" + - name: MINIO_SCHEME + value: http + - name: MINIO_FORCE_NEW_KEYS + value: "no" + - name: MINIO_ROOT_USER + valueFrom: + secretKeyRef: + key: root-user + name: flyte-sandbox-minio + - name: MINIO_ROOT_PASSWORD + valueFrom: + secretKeyRef: + key: root-password + name: flyte-sandbox-minio + - name: MINIO_DEFAULT_BUCKETS + value: my-s3-bucket + - name: MINIO_BROWSER + value: "on" + - name: MINIO_PROMETHEUS_AUTH_TYPE + value: public + - name: MINIO_CONSOLE_PORT_NUMBER + value: "9001" + - name: MINIO_BROWSER_REDIRECT_URL + value: http://localhost:30080/minio + envFrom: null + image: docker.io/bitnami/minio:sandbox + imagePullPolicy: Never + livenessProbe: + failureThreshold: 5 + httpGet: + path: /minio/health/live + port: minio-api + scheme: HTTP + initialDelaySeconds: 5 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 5 + name: minio + ports: + - containerPort: 9000 + name: minio-api + protocol: TCP + - containerPort: 9001 + name: minio-console + protocol: TCP + readinessProbe: + failureThreshold: 5 + initialDelaySeconds: 5 + periodSeconds: 5 + successThreshold: 1 + tcpSocket: + port: minio-api + timeoutSeconds: 1 + resources: + limits: {} + requests: {} + securityContext: + runAsNonRoot: true + runAsUser: 1001 + volumeMounts: + - mountPath: /data + name: data + initContainers: + - command: + - /bin/bash + - -ec + - | + chown -R 1001:1001 /data + image: docker.io/bitnami/bitnami-shell:sandbox + imagePullPolicy: Never + name: volume-permissions + resources: + limits: {} + requests: {} + securityContext: + runAsUser: 0 + volumeMounts: + - mountPath: /data + name: data + securityContext: + fsGroup: 1001 + serviceAccountName: flyte-sandbox-minio + volumes: + - name: data + persistentVolumeClaim: + claimName: flyte-sandbox-minio-storage +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyte-sandbox + app.kubernetes.io/version: 1.16.0 + helm.sh/chart: flyte-sandbox-0.1.0 + name: flyte-sandbox-proxy + namespace: flyte +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/component: proxy + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: flyte-sandbox + template: + metadata: + labels: + app.kubernetes.io/component: proxy + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: flyte-sandbox + spec: + containers: + - image: envoyproxy/envoy:sandbox + imagePullPolicy: Never + name: proxy + ports: + - containerPort: 8000 + name: http + volumeMounts: + - mountPath: /etc/envoy + name: config + volumes: + - configMap: + name: flyte-sandbox-proxy-config + name: config +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/instance: flyteagent + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyteagent + helm.sh/chart: flyteagent-v0.1.10 + name: flyteagent + namespace: flyte +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: flyteagent + app.kubernetes.io/name: flyteagent + template: + metadata: + annotations: null + labels: + app.kubernetes.io/instance: flyteagent + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: flyteagent + helm.sh/chart: flyteagent-v0.1.10 + spec: + containers: + - command: + - pyflyte + - serve + image: ghcr.io/flyteorg/flyteagent:1.9.1 + imagePullPolicy: IfNotPresent + name: flyteagent + ports: + - containerPort: 8000 + name: agent-grpc + resources: + limits: + cpu: 500m + ephemeral-storage: 200Mi + memory: 200Mi + requests: + cpu: 500m + ephemeral-storage: 200Mi + memory: 200Mi + volumeMounts: + - mountPath: /etc/secrets + name: flyteagent + serviceAccountName: flyteagent + volumes: + - name: flyteagent + secret: + secretName: flyteagent +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: primary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.9 + name: flyte-sandbox-postgresql + namespace: flyte +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/component: primary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: postgresql + serviceName: flyte-sandbox-postgresql-hl + template: + metadata: + annotations: null + labels: + app.kubernetes.io/component: primary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.9 + name: flyte-sandbox-postgresql + spec: + affinity: + nodeAffinity: null + podAffinity: null + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + app.kubernetes.io/component: primary + app.kubernetes.io/instance: flyte-sandbox + app.kubernetes.io/name: postgresql + topologyKey: kubernetes.io/hostname + weight: 1 + containers: + - env: + - name: BITNAMI_DEBUG + value: "false" + - name: POSTGRESQL_PORT_NUMBER + value: "5432" + - name: POSTGRESQL_VOLUME_DIR + value: /bitnami/postgresql + - name: PGDATA + value: /bitnami/postgresql/data + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + key: postgres-password + name: flyte-sandbox-postgresql + - name: POSTGRESQL_ENABLE_LDAP + value: "no" + - name: POSTGRESQL_ENABLE_TLS + value: "no" + - name: POSTGRESQL_LOG_HOSTNAME + value: "false" + - name: POSTGRESQL_LOG_CONNECTIONS + value: "false" + - name: POSTGRESQL_LOG_DISCONNECTIONS + value: "false" + - name: POSTGRESQL_PGAUDIT_LOG_CATALOG + value: "off" + - name: POSTGRESQL_CLIENT_MIN_MESSAGES + value: error + - name: POSTGRESQL_SHARED_PRELOAD_LIBRARIES + value: pgaudit + image: docker.io/bitnami/postgresql:sandbox + imagePullPolicy: Never + livenessProbe: + exec: + command: + - /bin/sh + - -c + - exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432 + failureThreshold: 6 + initialDelaySeconds: 30 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + name: postgresql + ports: + - containerPort: 5432 + name: tcp-postgresql + readinessProbe: + exec: + command: + - /bin/sh + - -c + - -e + - | + exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432 + [ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ] + failureThreshold: 6 + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + resources: + limits: {} + requests: + cpu: 250m + memory: 256Mi + securityContext: + runAsUser: 1001 + volumeMounts: + - mountPath: /bitnami/postgresql + name: data + hostIPC: false + hostNetwork: false + initContainers: + - command: + - /bin/sh + - -ec + - | + chown 1001:1001 /bitnami/postgresql + mkdir -p /bitnami/postgresql/data + chmod 700 /bitnami/postgresql/data + find /bitnami/postgresql -mindepth 1 -maxdepth 1 -not -name "conf" -not -name ".snapshot" -not -name "lost+found" | \ + xargs -r chown -R 1001:1001 + image: docker.io/bitnami/bitnami-shell:sandbox + imagePullPolicy: Never + name: init-chmod-data + resources: + limits: {} + requests: {} + securityContext: + runAsUser: 0 + volumeMounts: + - mountPath: /bitnami/postgresql + name: data + securityContext: + fsGroup: 1001 + serviceAccountName: default + volumes: + - name: data + persistentVolumeClaim: + claimName: flyte-sandbox-db-storage + updateStrategy: + rollingUpdate: {} + type: RollingUpdate diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index 84d7eb0351..336662e745 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -41,18 +41,6 @@ metadata: secrets: - name: flyte-sandbox-minio --- -apiVersion: v1 -automountServiceAccountToken: true -kind: ServiceAccount -metadata: - labels: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis - namespace: flyte ---- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: @@ -510,15 +498,13 @@ data: container: my-s3-bucket 100-inline-config.yaml: | artifacts: - host: artifact-service.flyte.svc.cluster.local + host: localhost insecure: true port: 50051 cloudEvents: + cloudEventVersion: v2 enable: true - redis: - addr: flyte-sandbox-redis-headless.flyte.svc.cluster.local:6379 - transformToCloudEvents: true - type: redis + type: sandbox plugins: k8s: default-env-vars: @@ -807,221 +793,6 @@ metadata: namespace: flyte --- apiVersion: v1 -data: - master.conf: |- - dir /data - # User-supplied master configuration: - rename-command FLUSHDB "" - rename-command FLUSHALL "" - # End of master configuration - redis.conf: |- - # User-supplied common configuration: - # Enable AOF https://redis.io/topics/persistence#append-only-file - appendonly yes - # Disable RDB persistence, AOF persistence already enabled. - save "" - # End of common configuration - replica.conf: |- - dir /data - # User-supplied replica configuration: - rename-command FLUSHDB "" - rename-command FLUSHALL "" - # End of replica configuration -kind: ConfigMap -metadata: - labels: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-configuration - namespace: flyte ---- -apiVersion: v1 -data: - ping_liveness_local.sh: |- - #!/bin/bash - - [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" - [[ -n "$REDIS_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_PASSWORD" - response=$( - timeout -s 15 $1 \ - redis-cli \ - -h localhost \ - -p $REDIS_PORT \ - ping - ) - if [ "$?" -eq "124" ]; then - echo "Timed out" - exit 1 - fi - responseFirstWord=$(echo $response | head -n1 | awk '{print $1;}') - if [ "$response" != "PONG" ] && [ "$responseFirstWord" != "LOADING" ] && [ "$responseFirstWord" != "MASTERDOWN" ]; then - echo "$response" - exit 1 - fi - ping_liveness_local_and_master.sh: |- - script_dir="$(dirname "$0")" - exit_status=0 - "$script_dir/ping_liveness_local.sh" $1 || exit_status=$? - "$script_dir/ping_liveness_master.sh" $1 || exit_status=$? - exit $exit_status - ping_liveness_master.sh: |- - #!/bin/bash - - [[ -f $REDIS_MASTER_PASSWORD_FILE ]] && export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")" - [[ -n "$REDIS_MASTER_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_MASTER_PASSWORD" - response=$( - timeout -s 15 $1 \ - redis-cli \ - -h $REDIS_MASTER_HOST \ - -p $REDIS_MASTER_PORT_NUMBER \ - ping - ) - if [ "$?" -eq "124" ]; then - echo "Timed out" - exit 1 - fi - responseFirstWord=$(echo $response | head -n1 | awk '{print $1;}') - if [ "$response" != "PONG" ] && [ "$responseFirstWord" != "LOADING" ]; then - echo "$response" - exit 1 - fi - ping_readiness_local.sh: |- - #!/bin/bash - - [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" - [[ -n "$REDIS_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_PASSWORD" - response=$( - timeout -s 15 $1 \ - redis-cli \ - -h localhost \ - -p $REDIS_PORT \ - ping - ) - if [ "$?" -eq "124" ]; then - echo "Timed out" - exit 1 - fi - if [ "$response" != "PONG" ]; then - echo "$response" - exit 1 - fi - ping_readiness_local_and_master.sh: |- - script_dir="$(dirname "$0")" - exit_status=0 - "$script_dir/ping_readiness_local.sh" $1 || exit_status=$? - "$script_dir/ping_readiness_master.sh" $1 || exit_status=$? - exit $exit_status - ping_readiness_master.sh: |- - #!/bin/bash - - [[ -f $REDIS_MASTER_PASSWORD_FILE ]] && export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")" - [[ -n "$REDIS_MASTER_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_MASTER_PASSWORD" - response=$( - timeout -s 15 $1 \ - redis-cli \ - -h $REDIS_MASTER_HOST \ - -p $REDIS_MASTER_PORT_NUMBER \ - ping - ) - if [ "$?" -eq "124" ]; then - echo "Timed out" - exit 1 - fi - if [ "$response" != "PONG" ]; then - echo "$response" - exit 1 - fi -kind: ConfigMap -metadata: - labels: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-health - namespace: flyte ---- -apiVersion: v1 -data: - start-master.sh: | - #!/bin/bash - - [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" - if [[ -f /opt/bitnami/redis/mounted-etc/master.conf ]];then - cp /opt/bitnami/redis/mounted-etc/master.conf /opt/bitnami/redis/etc/master.conf - fi - if [[ -f /opt/bitnami/redis/mounted-etc/redis.conf ]];then - cp /opt/bitnami/redis/mounted-etc/redis.conf /opt/bitnami/redis/etc/redis.conf - fi - ARGS=("--port" "${REDIS_PORT}") - ARGS+=("--protected-mode" "no") - ARGS+=("--include" "/opt/bitnami/redis/etc/redis.conf") - ARGS+=("--include" "/opt/bitnami/redis/etc/master.conf") - exec redis-server "${ARGS[@]}" - start-replica.sh: | - #!/bin/bash - - get_port() { - hostname="$1" - type="$2" - - port_var=$(echo "${hostname^^}_SERVICE_PORT_$type" | sed "s/-/_/g") - port=${!port_var} - - if [ -z "$port" ]; then - case $type in - "SENTINEL") - echo 26379 - ;; - "REDIS") - echo 6379 - ;; - esac - else - echo $port - fi - } - - get_full_hostname() { - hostname="$1" - full_hostname="${hostname}.${HEADLESS_SERVICE}" - echo "${full_hostname}" - } - - REDISPORT=$(get_port "$HOSTNAME" "REDIS") - HEADLESS_SERVICE="flyte-sandbox-redis-headless.flyte.svc.cluster.local" - - [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" - [[ -f $REDIS_MASTER_PASSWORD_FILE ]] && export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")" - if [[ -f /opt/bitnami/redis/mounted-etc/replica.conf ]];then - cp /opt/bitnami/redis/mounted-etc/replica.conf /opt/bitnami/redis/etc/replica.conf - fi - if [[ -f /opt/bitnami/redis/mounted-etc/redis.conf ]];then - cp /opt/bitnami/redis/mounted-etc/redis.conf /opt/bitnami/redis/etc/redis.conf - fi - - echo "" >> /opt/bitnami/redis/etc/replica.conf - echo "replica-announce-port $REDISPORT" >> /opt/bitnami/redis/etc/replica.conf - echo "replica-announce-ip $(get_full_hostname "$HOSTNAME")" >> /opt/bitnami/redis/etc/replica.conf - ARGS=("--port" "${REDIS_PORT}") - ARGS+=("--replicaof" "${REDIS_MASTER_HOST}" "${REDIS_MASTER_PORT_NUMBER}") - ARGS+=("--protected-mode" "no") - ARGS+=("--include" "/opt/bitnami/redis/etc/redis.conf") - ARGS+=("--include" "/opt/bitnami/redis/etc/replica.conf") - exec redis-server "${ARGS[@]}" -kind: ConfigMap -metadata: - labels: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-scripts - namespace: flyte ---- -apiVersion: v1 data: null kind: ConfigMap metadata: @@ -1060,7 +831,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: Tm9IU3lEa0NLZDB0blM5TQ== + haSharedSecret: dFhsdmt2TUFXM29MeWY1Qg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1350,78 +1121,6 @@ spec: --- apiVersion: v1 kind: Service -metadata: - labels: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-headless - namespace: flyte -spec: - clusterIP: None - ports: - - name: tcp-redis - port: 6379 - targetPort: redis - selector: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - type: ClusterIP ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-master - namespace: flyte -spec: - externalTrafficPolicy: Cluster - internalTrafficPolicy: Cluster - ports: - - name: tcp-redis - nodePort: 30004 - port: 6379 - targetPort: redis - selector: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - sessionAffinity: None - type: NodePort ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-replicas - namespace: flyte -spec: - internalTrafficPolicy: Cluster - ports: - - name: tcp-redis - nodePort: null - port: 6379 - targetPort: redis - selector: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - sessionAffinity: None - type: ClusterIP ---- -apiVersion: v1 -kind: Service metadata: labels: app.kubernetes.io/instance: flyte-sandbox @@ -1584,7 +1283,7 @@ spec: metadata: annotations: checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035 - checksum/configuration: c86a3f997d43ba1f7612d3f5e9675ef534131308a682edc09d06cf4f6e79be64 + checksum/configuration: 8d7c7929fda964a4ac1982becf5115c6074afbb8146eddd279352492ed6043cd checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914 labels: app.kubernetes.io/component: flyte-binary @@ -1747,7 +1446,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 877fe97609c6f425701bda477b1165c1d2fbc0939da9a118b87b0430a0c8e713 + checksum/secret: 27beb280f64955492d3f8a5849cf020195b3ebbaa196c7cae1370ea56a5c8909 labels: app: docker-registry release: flyte-sandbox @@ -2195,323 +1894,3 @@ spec: updateStrategy: rollingUpdate: {} type: RollingUpdate ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - labels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-master - namespace: flyte -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - serviceName: flyte-sandbox-redis-headless - template: - metadata: - annotations: - checksum/configmap: 86bcc953bb473748a3d3dc60b7c11f34e60c93519234d4c37f42e22ada559d47 - checksum/health: aff24913d801436ea469d8d374b2ddb3ec4c43ee7ab24663d5f8ff1a1b6991a9 - checksum/scripts: d8e7bccfb1b74138543285406c65b9316cacb0f2da164a6baa00faed05079b7f - checksum/secret: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a - labels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - spec: - affinity: - nodeAffinity: null - podAffinity: null - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - topologyKey: kubernetes.io/hostname - weight: 1 - automountServiceAccountToken: true - containers: - - args: - - -c - - /opt/bitnami/scripts/start-scripts/start-master.sh - command: - - /bin/bash - env: - - name: BITNAMI_DEBUG - value: "false" - - name: REDIS_REPLICATION_MODE - value: master - - name: ALLOW_EMPTY_PASSWORD - value: "yes" - - name: REDIS_TLS_ENABLED - value: "no" - - name: REDIS_PORT - value: "6379" - image: docker.io/bitnami/redis:sandbox - imagePullPolicy: Never - livenessProbe: - exec: - command: - - sh - - -c - - /health/ping_liveness_local.sh 5 - failureThreshold: 5 - initialDelaySeconds: 20 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 6 - name: redis - ports: - - containerPort: 6379 - name: redis - readinessProbe: - exec: - command: - - sh - - -c - - /health/ping_readiness_local.sh 1 - failureThreshold: 5 - initialDelaySeconds: 20 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 2 - resources: - limits: {} - requests: {} - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - runAsGroup: 0 - runAsNonRoot: true - runAsUser: 1001 - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /opt/bitnami/scripts/start-scripts - name: start-scripts - - mountPath: /health - name: health - - mountPath: /data - name: redis-data - - mountPath: /opt/bitnami/redis/mounted-etc - name: config - - mountPath: /opt/bitnami/redis/etc/ - name: redis-tmp-conf - - mountPath: /tmp - name: tmp - securityContext: - fsGroup: 1001 - serviceAccountName: flyte-sandbox-redis - terminationGracePeriodSeconds: 30 - volumes: - - configMap: - defaultMode: 493 - name: flyte-sandbox-redis-scripts - name: start-scripts - - configMap: - defaultMode: 493 - name: flyte-sandbox-redis-health - name: health - - configMap: - name: flyte-sandbox-redis-configuration - name: config - - emptyDir: {} - name: redis-tmp-conf - - emptyDir: {} - name: tmp - updateStrategy: - type: RollingUpdate - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - labels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - name: redis-data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 8Gi ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - labels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-replicas - namespace: flyte -spec: - replicas: 0 - selector: - matchLabels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - serviceName: flyte-sandbox-redis-headless - template: - metadata: - annotations: - checksum/configmap: 86bcc953bb473748a3d3dc60b7c11f34e60c93519234d4c37f42e22ada559d47 - checksum/health: aff24913d801436ea469d8d374b2ddb3ec4c43ee7ab24663d5f8ff1a1b6991a9 - checksum/scripts: d8e7bccfb1b74138543285406c65b9316cacb0f2da164a6baa00faed05079b7f - checksum/secret: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a - labels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - spec: - affinity: - nodeAffinity: null - podAffinity: null - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - topologyKey: kubernetes.io/hostname - weight: 1 - automountServiceAccountToken: true - containers: - - args: - - -c - - /opt/bitnami/scripts/start-scripts/start-replica.sh - command: - - /bin/bash - env: - - name: BITNAMI_DEBUG - value: "false" - - name: REDIS_REPLICATION_MODE - value: replica - - name: REDIS_MASTER_HOST - value: flyte-sandbox-redis-master-0.flyte-sandbox-redis-headless.flyte.svc.cluster.local - - name: REDIS_MASTER_PORT_NUMBER - value: "6379" - - name: ALLOW_EMPTY_PASSWORD - value: "yes" - - name: REDIS_TLS_ENABLED - value: "no" - - name: REDIS_PORT - value: "6379" - image: docker.io/bitnami/redis:sandbox - imagePullPolicy: Never - livenessProbe: - exec: - command: - - sh - - -c - - /health/ping_liveness_local_and_master.sh 5 - failureThreshold: 5 - initialDelaySeconds: 20 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 6 - name: redis - ports: - - containerPort: 6379 - name: redis - readinessProbe: - exec: - command: - - sh - - -c - - /health/ping_readiness_local_and_master.sh 1 - failureThreshold: 5 - initialDelaySeconds: 20 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 2 - resources: - limits: {} - requests: {} - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - runAsGroup: 0 - runAsNonRoot: true - runAsUser: 1001 - seccompProfile: - type: RuntimeDefault - startupProbe: - failureThreshold: 22 - initialDelaySeconds: 10 - periodSeconds: 10 - successThreshold: 1 - tcpSocket: - port: redis - timeoutSeconds: 5 - volumeMounts: - - mountPath: /opt/bitnami/scripts/start-scripts - name: start-scripts - - mountPath: /health - name: health - - mountPath: /data - name: redis-data - - mountPath: /opt/bitnami/redis/mounted-etc - name: config - - mountPath: /opt/bitnami/redis/etc - name: redis-tmp-conf - securityContext: - fsGroup: 1001 - serviceAccountName: flyte-sandbox-redis - terminationGracePeriodSeconds: 30 - volumes: - - configMap: - defaultMode: 493 - name: flyte-sandbox-redis-scripts - name: start-scripts - - configMap: - defaultMode: 493 - name: flyte-sandbox-redis-health - name: health - - configMap: - name: flyte-sandbox-redis-configuration - name: config - - emptyDir: {} - name: redis-tmp-conf - updateStrategy: - type: RollingUpdate - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - labels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - name: redis-data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 8Gi diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index 737e209351..1f0f3c51ea 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -29,18 +29,6 @@ metadata: secrets: - name: flyte-sandbox-minio --- -apiVersion: v1 -automountServiceAccountToken: true -kind: ServiceAccount -metadata: - labels: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis - namespace: flyte ---- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: @@ -515,221 +503,6 @@ metadata: namespace: flyte --- apiVersion: v1 -data: - master.conf: |- - dir /data - # User-supplied master configuration: - rename-command FLUSHDB "" - rename-command FLUSHALL "" - # End of master configuration - redis.conf: |- - # User-supplied common configuration: - # Enable AOF https://redis.io/topics/persistence#append-only-file - appendonly yes - # Disable RDB persistence, AOF persistence already enabled. - save "" - # End of common configuration - replica.conf: |- - dir /data - # User-supplied replica configuration: - rename-command FLUSHDB "" - rename-command FLUSHALL "" - # End of replica configuration -kind: ConfigMap -metadata: - labels: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-configuration - namespace: flyte ---- -apiVersion: v1 -data: - ping_liveness_local.sh: |- - #!/bin/bash - - [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" - [[ -n "$REDIS_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_PASSWORD" - response=$( - timeout -s 15 $1 \ - redis-cli \ - -h localhost \ - -p $REDIS_PORT \ - ping - ) - if [ "$?" -eq "124" ]; then - echo "Timed out" - exit 1 - fi - responseFirstWord=$(echo $response | head -n1 | awk '{print $1;}') - if [ "$response" != "PONG" ] && [ "$responseFirstWord" != "LOADING" ] && [ "$responseFirstWord" != "MASTERDOWN" ]; then - echo "$response" - exit 1 - fi - ping_liveness_local_and_master.sh: |- - script_dir="$(dirname "$0")" - exit_status=0 - "$script_dir/ping_liveness_local.sh" $1 || exit_status=$? - "$script_dir/ping_liveness_master.sh" $1 || exit_status=$? - exit $exit_status - ping_liveness_master.sh: |- - #!/bin/bash - - [[ -f $REDIS_MASTER_PASSWORD_FILE ]] && export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")" - [[ -n "$REDIS_MASTER_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_MASTER_PASSWORD" - response=$( - timeout -s 15 $1 \ - redis-cli \ - -h $REDIS_MASTER_HOST \ - -p $REDIS_MASTER_PORT_NUMBER \ - ping - ) - if [ "$?" -eq "124" ]; then - echo "Timed out" - exit 1 - fi - responseFirstWord=$(echo $response | head -n1 | awk '{print $1;}') - if [ "$response" != "PONG" ] && [ "$responseFirstWord" != "LOADING" ]; then - echo "$response" - exit 1 - fi - ping_readiness_local.sh: |- - #!/bin/bash - - [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" - [[ -n "$REDIS_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_PASSWORD" - response=$( - timeout -s 15 $1 \ - redis-cli \ - -h localhost \ - -p $REDIS_PORT \ - ping - ) - if [ "$?" -eq "124" ]; then - echo "Timed out" - exit 1 - fi - if [ "$response" != "PONG" ]; then - echo "$response" - exit 1 - fi - ping_readiness_local_and_master.sh: |- - script_dir="$(dirname "$0")" - exit_status=0 - "$script_dir/ping_readiness_local.sh" $1 || exit_status=$? - "$script_dir/ping_readiness_master.sh" $1 || exit_status=$? - exit $exit_status - ping_readiness_master.sh: |- - #!/bin/bash - - [[ -f $REDIS_MASTER_PASSWORD_FILE ]] && export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")" - [[ -n "$REDIS_MASTER_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_MASTER_PASSWORD" - response=$( - timeout -s 15 $1 \ - redis-cli \ - -h $REDIS_MASTER_HOST \ - -p $REDIS_MASTER_PORT_NUMBER \ - ping - ) - if [ "$?" -eq "124" ]; then - echo "Timed out" - exit 1 - fi - if [ "$response" != "PONG" ]; then - echo "$response" - exit 1 - fi -kind: ConfigMap -metadata: - labels: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-health - namespace: flyte ---- -apiVersion: v1 -data: - start-master.sh: | - #!/bin/bash - - [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" - if [[ -f /opt/bitnami/redis/mounted-etc/master.conf ]];then - cp /opt/bitnami/redis/mounted-etc/master.conf /opt/bitnami/redis/etc/master.conf - fi - if [[ -f /opt/bitnami/redis/mounted-etc/redis.conf ]];then - cp /opt/bitnami/redis/mounted-etc/redis.conf /opt/bitnami/redis/etc/redis.conf - fi - ARGS=("--port" "${REDIS_PORT}") - ARGS+=("--protected-mode" "no") - ARGS+=("--include" "/opt/bitnami/redis/etc/redis.conf") - ARGS+=("--include" "/opt/bitnami/redis/etc/master.conf") - exec redis-server "${ARGS[@]}" - start-replica.sh: | - #!/bin/bash - - get_port() { - hostname="$1" - type="$2" - - port_var=$(echo "${hostname^^}_SERVICE_PORT_$type" | sed "s/-/_/g") - port=${!port_var} - - if [ -z "$port" ]; then - case $type in - "SENTINEL") - echo 26379 - ;; - "REDIS") - echo 6379 - ;; - esac - else - echo $port - fi - } - - get_full_hostname() { - hostname="$1" - full_hostname="${hostname}.${HEADLESS_SERVICE}" - echo "${full_hostname}" - } - - REDISPORT=$(get_port "$HOSTNAME" "REDIS") - HEADLESS_SERVICE="flyte-sandbox-redis-headless.flyte.svc.cluster.local" - - [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" - [[ -f $REDIS_MASTER_PASSWORD_FILE ]] && export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")" - if [[ -f /opt/bitnami/redis/mounted-etc/replica.conf ]];then - cp /opt/bitnami/redis/mounted-etc/replica.conf /opt/bitnami/redis/etc/replica.conf - fi - if [[ -f /opt/bitnami/redis/mounted-etc/redis.conf ]];then - cp /opt/bitnami/redis/mounted-etc/redis.conf /opt/bitnami/redis/etc/redis.conf - fi - - echo "" >> /opt/bitnami/redis/etc/replica.conf - echo "replica-announce-port $REDISPORT" >> /opt/bitnami/redis/etc/replica.conf - echo "replica-announce-ip $(get_full_hostname "$HOSTNAME")" >> /opt/bitnami/redis/etc/replica.conf - ARGS=("--port" "${REDIS_PORT}") - ARGS+=("--replicaof" "${REDIS_MASTER_HOST}" "${REDIS_MASTER_PORT_NUMBER}") - ARGS+=("--protected-mode" "no") - ARGS+=("--include" "/opt/bitnami/redis/etc/redis.conf") - ARGS+=("--include" "/opt/bitnami/redis/etc/replica.conf") - exec redis-server "${ARGS[@]}" -kind: ConfigMap -metadata: - labels: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-scripts - namespace: flyte ---- -apiVersion: v1 data: null kind: ConfigMap metadata: @@ -744,7 +517,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: VTJWMndkSk15emRBZ3F0eg== + haSharedSecret: NHdBdUNTRkFPVzV0RlY5Zw== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1036,78 +809,6 @@ spec: type: NodePort --- apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-headless - namespace: flyte -spec: - clusterIP: None - ports: - - name: tcp-redis - port: 6379 - targetPort: redis - selector: - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - type: ClusterIP ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-master - namespace: flyte -spec: - externalTrafficPolicy: Cluster - internalTrafficPolicy: Cluster - ports: - - name: tcp-redis - nodePort: 30004 - port: 6379 - targetPort: redis - selector: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - sessionAffinity: None - type: NodePort ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-replicas - namespace: flyte -spec: - internalTrafficPolicy: Cluster - ports: - - name: tcp-redis - nodePort: null - port: 6379 - targetPort: redis - selector: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - sessionAffinity: None - type: ClusterIP ---- -apiVersion: v1 kind: PersistentVolume metadata: labels: @@ -1304,7 +1005,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: f0e226e3dc585d5f35bb7081b38d51f46a2c9f90802717e69fb70ee70e18178c + checksum/secret: ae9a1315b23289912279d91f720e96a0766e6502378f25c551260b27f39a64d1 labels: app: docker-registry release: flyte-sandbox @@ -1752,323 +1453,3 @@ spec: updateStrategy: rollingUpdate: {} type: RollingUpdate ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - labels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-master - namespace: flyte -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - serviceName: flyte-sandbox-redis-headless - template: - metadata: - annotations: - checksum/configmap: 86bcc953bb473748a3d3dc60b7c11f34e60c93519234d4c37f42e22ada559d47 - checksum/health: aff24913d801436ea469d8d374b2ddb3ec4c43ee7ab24663d5f8ff1a1b6991a9 - checksum/scripts: d8e7bccfb1b74138543285406c65b9316cacb0f2da164a6baa00faed05079b7f - checksum/secret: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a - labels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - spec: - affinity: - nodeAffinity: null - podAffinity: null - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - topologyKey: kubernetes.io/hostname - weight: 1 - automountServiceAccountToken: true - containers: - - args: - - -c - - /opt/bitnami/scripts/start-scripts/start-master.sh - command: - - /bin/bash - env: - - name: BITNAMI_DEBUG - value: "false" - - name: REDIS_REPLICATION_MODE - value: master - - name: ALLOW_EMPTY_PASSWORD - value: "yes" - - name: REDIS_TLS_ENABLED - value: "no" - - name: REDIS_PORT - value: "6379" - image: docker.io/bitnami/redis:sandbox - imagePullPolicy: Never - livenessProbe: - exec: - command: - - sh - - -c - - /health/ping_liveness_local.sh 5 - failureThreshold: 5 - initialDelaySeconds: 20 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 6 - name: redis - ports: - - containerPort: 6379 - name: redis - readinessProbe: - exec: - command: - - sh - - -c - - /health/ping_readiness_local.sh 1 - failureThreshold: 5 - initialDelaySeconds: 20 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 2 - resources: - limits: {} - requests: {} - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - runAsGroup: 0 - runAsNonRoot: true - runAsUser: 1001 - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /opt/bitnami/scripts/start-scripts - name: start-scripts - - mountPath: /health - name: health - - mountPath: /data - name: redis-data - - mountPath: /opt/bitnami/redis/mounted-etc - name: config - - mountPath: /opt/bitnami/redis/etc/ - name: redis-tmp-conf - - mountPath: /tmp - name: tmp - securityContext: - fsGroup: 1001 - serviceAccountName: flyte-sandbox-redis - terminationGracePeriodSeconds: 30 - volumes: - - configMap: - defaultMode: 493 - name: flyte-sandbox-redis-scripts - name: start-scripts - - configMap: - defaultMode: 493 - name: flyte-sandbox-redis-health - name: health - - configMap: - name: flyte-sandbox-redis-configuration - name: config - - emptyDir: {} - name: redis-tmp-conf - - emptyDir: {} - name: tmp - updateStrategy: - type: RollingUpdate - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - labels: - app.kubernetes.io/component: master - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - name: redis-data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 8Gi ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - labels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - name: flyte-sandbox-redis-replicas - namespace: flyte -spec: - replicas: 0 - selector: - matchLabels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - serviceName: flyte-sandbox-redis-headless - template: - metadata: - annotations: - checksum/configmap: 86bcc953bb473748a3d3dc60b7c11f34e60c93519234d4c37f42e22ada559d47 - checksum/health: aff24913d801436ea469d8d374b2ddb3ec4c43ee7ab24663d5f8ff1a1b6991a9 - checksum/scripts: d8e7bccfb1b74138543285406c65b9316cacb0f2da164a6baa00faed05079b7f - checksum/secret: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a - labels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: redis - helm.sh/chart: redis-17.15.6 - spec: - affinity: - nodeAffinity: null - podAffinity: null - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - topologyKey: kubernetes.io/hostname - weight: 1 - automountServiceAccountToken: true - containers: - - args: - - -c - - /opt/bitnami/scripts/start-scripts/start-replica.sh - command: - - /bin/bash - env: - - name: BITNAMI_DEBUG - value: "false" - - name: REDIS_REPLICATION_MODE - value: replica - - name: REDIS_MASTER_HOST - value: flyte-sandbox-redis-master-0.flyte-sandbox-redis-headless.flyte.svc.cluster.local - - name: REDIS_MASTER_PORT_NUMBER - value: "6379" - - name: ALLOW_EMPTY_PASSWORD - value: "yes" - - name: REDIS_TLS_ENABLED - value: "no" - - name: REDIS_PORT - value: "6379" - image: docker.io/bitnami/redis:sandbox - imagePullPolicy: Never - livenessProbe: - exec: - command: - - sh - - -c - - /health/ping_liveness_local_and_master.sh 5 - failureThreshold: 5 - initialDelaySeconds: 20 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 6 - name: redis - ports: - - containerPort: 6379 - name: redis - readinessProbe: - exec: - command: - - sh - - -c - - /health/ping_readiness_local_and_master.sh 1 - failureThreshold: 5 - initialDelaySeconds: 20 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 2 - resources: - limits: {} - requests: {} - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - runAsGroup: 0 - runAsNonRoot: true - runAsUser: 1001 - seccompProfile: - type: RuntimeDefault - startupProbe: - failureThreshold: 22 - initialDelaySeconds: 10 - periodSeconds: 10 - successThreshold: 1 - tcpSocket: - port: redis - timeoutSeconds: 5 - volumeMounts: - - mountPath: /opt/bitnami/scripts/start-scripts - name: start-scripts - - mountPath: /health - name: health - - mountPath: /data - name: redis-data - - mountPath: /opt/bitnami/redis/mounted-etc - name: config - - mountPath: /opt/bitnami/redis/etc - name: redis-tmp-conf - securityContext: - fsGroup: 1001 - serviceAccountName: flyte-sandbox-redis - terminationGracePeriodSeconds: 30 - volumes: - - configMap: - defaultMode: 493 - name: flyte-sandbox-redis-scripts - name: start-scripts - - configMap: - defaultMode: 493 - name: flyte-sandbox-redis-health - name: health - - configMap: - name: flyte-sandbox-redis-configuration - name: config - - emptyDir: {} - name: redis-tmp-conf - updateStrategy: - type: RollingUpdate - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - labels: - app.kubernetes.io/component: replica - app.kubernetes.io/instance: flyte-sandbox - app.kubernetes.io/name: redis - name: redis-data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 8Gi diff --git a/flyte-single-binary-local.yaml b/flyte-single-binary-local.yaml index 808dfb8a7c..fe5b76c46c 100644 --- a/flyte-single-binary-local.yaml +++ b/flyte-single-binary-local.yaml @@ -1,5 +1,7 @@ # This is a sample configuration file for running single-binary Flyte locally against # a sandbox. +# gatepr: revert the local dir to reflect home. +# paths were changed to personal to ensure settings didn't get lost. admin: endpoint: localhost:8089 insecure: true @@ -15,7 +17,7 @@ cluster_resources: logger: show-source: true - level: 6 + level: 3 propeller: create-flyteworkflow-crd: true @@ -80,14 +82,28 @@ database: # options: "sslmode=disable" cloudEvents: enable: true - transformToCloudEvents: true - type: redis - redis: - addr: "localhost:30004" + cloudEventVersion: v2 + type: sandbox +# For admin to find artifacts service artifacts: host: localhost - port: 50051 + port: 30080 insecure: true +# For artifact service itself +artifactsServer: + artifactBlobStoreConfig: + type: stow + stow: + kind: s3 + config: + disable_ssl: true + v2_signing: true + endpoint: http://localhost:30002 + auth_type: accesskey + access_key_id: minio + secret_key: miniostorage +artifactsProcessor: + cloudProvider: Sandbox storage: type: stow stow: diff --git a/flyteadmin/cmd/entrypoints/root.go b/flyteadmin/cmd/entrypoints/root.go index 04775b47ee..2ce5f27efe 100644 --- a/flyteadmin/cmd/entrypoints/root.go +++ b/flyteadmin/cmd/entrypoints/root.go @@ -76,7 +76,7 @@ func init() { func initConfig(flags *pflag.FlagSet) error { configAccessor = viper.NewAccessor(config.Options{ - SearchPaths: []string{cfgFile, ".", "/etc/flyte/config", "$GOPATH/src/github.com/flyteorg/flyteadmin"}, + SearchPaths: []string{cfgFile, ".", "/etc/flyte/config", "$GOPATH/src/github.com/flyteorg/flyte/flyteadmin"}, StrictMode: false, }) diff --git a/flyteadmin/cmd/scheduler/entrypoints/root.go b/flyteadmin/cmd/scheduler/entrypoints/root.go index 1f37a11df9..b26ee9215e 100644 --- a/flyteadmin/cmd/scheduler/entrypoints/root.go +++ b/flyteadmin/cmd/scheduler/entrypoints/root.go @@ -64,7 +64,7 @@ func init() { func initConfig(flags *pflag.FlagSet) error { configAccessor = viper.NewAccessor(config.Options{ - SearchPaths: []string{cfgFile, ".", "/etc/flyte/config", "$GOPATH/src/github.com/flyteorg/flyteadmin"}, + SearchPaths: []string{cfgFile, ".", "/etc/flyte/config", "$GOPATH/src/github.com/flyteorg/flyte/flyteadmin"}, StrictMode: false, }) diff --git a/flyteadmin/dataproxy/service.go b/flyteadmin/dataproxy/service.go index 049bd14b1e..24530193ca 100644 --- a/flyteadmin/dataproxy/service.go +++ b/flyteadmin/dataproxy/service.go @@ -13,6 +13,7 @@ import ( "time" "github.com/flyteorg/flyte/flyteadmin/pkg/common" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" "github.com/flyteorg/flyte/flytestdlib/logger" @@ -138,10 +139,32 @@ func (s Service) CreateUploadLocation(ctx context.Context, req *service.CreateUp return nil, errors.NewFlyteAdminErrorf(codes.Internal, "failed to create a signed url. Error: %v", err) } + // The artifact returned here has no relevant entry in the admin database, so call the artifact service synchronously + // to persist the information. + artifactCreate := &artifact.CreateArtifactRequest{ + ArtifactKey: &core.ArtifactKey{ + Project: req.Project, + Domain: req.Domain, + }, + Spec: req.GetArtifactSpec(), + } + fmt.Printf("Will call artifact service with request: %v\n", artifactCreate) + // artifact := artifact_service.CreateArtifact + return &service.CreateUploadLocationResponse{ SignedUrl: resp.URL.String(), NativeUrl: storagePath.String(), ExpiresAt: timestamppb.New(time.Now().Add(req.ExpiresIn.AsDuration())), + // replace with created artifact + Artifact: &artifact.Artifact{ + ArtifactId: &core.ArtifactID{ + ArtifactKey: &core.ArtifactKey{ + Project: req.Project, + Domain: req.Domain, + }, + }, + Spec: req.GetArtifactSpec(), + }, }, nil } diff --git a/flyteadmin/flyteadmin_config.yaml b/flyteadmin/flyteadmin_config.yaml index e3d19f7326..6840b406cd 100644 --- a/flyteadmin/flyteadmin_config.yaml +++ b/flyteadmin/flyteadmin_config.yaml @@ -60,6 +60,10 @@ flyteadmin: - "metadata" - "admin" useOffloadedWorkflowClosure: false +artifacts: + host: localhost + port: 50051 + insecure: true database: postgres: port: 30001 @@ -112,6 +116,10 @@ externalEvents: eventsPublisher: topicName: "bar" eventTypes: all +cloudEvents: + enable: true + cloudEventVersion: v2 + type: sandbox Logger: show-source: true level: 5 diff --git a/flyteadmin/go.mod b/flyteadmin/go.mod index 72806a06af..e1dc289f58 100644 --- a/flyteadmin/go.mod +++ b/flyteadmin/go.mod @@ -17,9 +17,10 @@ require ( github.com/flyteorg/flyte/flyteplugins v0.0.0-00010101000000-000000000000 github.com/flyteorg/flyte/flytepropeller v0.0.0-00010101000000-000000000000 github.com/flyteorg/flyte/flytestdlib v0.0.0-00010101000000-000000000000 + github.com/flyteorg/flyteidl v1.5.21 github.com/flyteorg/stow v0.3.7 github.com/ghodss/yaml v1.0.0 - github.com/go-gormigrate/gormigrate/v2 v2.0.0 + github.com/go-gormigrate/gormigrate/v2 v2.1.1 github.com/gogo/protobuf v1.3.2 github.com/golang-jwt/jwt/v4 v4.4.1 github.com/golang/glog v1.1.0 @@ -32,7 +33,7 @@ require ( github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69 - github.com/jackc/pgconn v1.13.0 + github.com/jackc/pgconn v1.14.1 github.com/lestrrat-go/jwx v1.1.6 github.com/magiconair/properties v1.8.6 github.com/mitchellh/mapstructure v1.5.0 @@ -41,6 +42,7 @@ require ( 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/redis/go-redis/v9 v9.0.5 github.com/robfig/cron/v3 v3.0.0 github.com/sendgrid/sendgrid-go v3.10.0+incompatible github.com/spf13/cobra v1.4.0 @@ -53,9 +55,9 @@ require ( 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 + gorm.io/driver/postgres v1.5.3 + gorm.io/driver/sqlite v1.5.4 + gorm.io/gorm v1.25.4 k8s.io/api v0.24.1 k8s.io/apimachinery v0.24.1 k8s.io/client-go v0.24.1 @@ -88,6 +90,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0 // indirect github.com/dgraph-io/ristretto v0.0.3 // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/eapache/go-resiliency v1.2.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect github.com/eapache/queue v1.1.0 // indirect @@ -117,10 +120,9 @@ require ( 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 - github.com/jackc/pgproto3/v2 v2.3.1 // indirect - github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect - github.com/jackc/pgtype v1.12.0 // indirect - github.com/jackc/pgx/v4 v4.17.2 // indirect + github.com/jackc/pgproto3/v2 v2.3.2 // indirect + github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect + github.com/jackc/pgx/v5 v5.4.3 // indirect github.com/jcmturner/gofork v1.0.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect @@ -133,7 +135,6 @@ require ( github.com/lestrrat-go/httpcc v1.0.0 // indirect github.com/lestrrat-go/iter v1.0.1 // indirect github.com/lestrrat-go/option v1.0.0 // indirect - 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 diff --git a/flyteadmin/go.sum b/flyteadmin/go.sum index 7604bb29ec..c093e1c1a0 100644 --- a/flyteadmin/go.sum +++ b/flyteadmin/go.sum @@ -96,10 +96,7 @@ github.com/DataDog/datadog-go v3.4.1+incompatible/go.mod h1:LButxg5PwREeZtORoXG3 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/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= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/NYTimes/gizmo v1.3.6 h1:K+GRagPdAxojsT1TlTQlMkTeOmgfLxSdvuOhdki7GG0= @@ -110,7 +107,6 @@ github.com/NYTimes/logrotate v1.0.0/go.mod h1:GxNz1cSw1c6t99PXoZlw+nm90H6cyQyrH6 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.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-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= @@ -129,7 +125,6 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy 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= @@ -165,6 +160,8 @@ github.com/bmatcuk/doublestar/v2 v2.0.3/go.mod h1:QMmcs3H2AUQICWhfzLXz+IYln8lRQm 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= github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60= +github.com/bsm/ginkgo/v2 v2.7.0 h1:ItPMPH90RbmZJt5GtkcNvIRuGEdwlBItdNVoyzaNQao= +github.com/bsm/gomega v1.26.0 h1:LhQm+AFcgV2M0WyKroMASzAzCAJVpAxQXv4SaI9a69Y= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= 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= @@ -193,7 +190,6 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX 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= @@ -236,8 +232,6 @@ github.com/decred/dcrd/chaincfg/chainhash v1.0.2/go.mod h1:BpbrGgrPTr3YJYRN3Bm+D github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0 h1:sgNeV1VRMDzs6rzyPpxyM0jp317hnwiq58Filgag2xw= github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0/go.mod h1:J70FGZSbzsjecRTiTzER+3f1KZLNaXkuv+yeFTKoxM8= -github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc h1:VRRKCwnzqk8QCaRC4os14xoKDdbHqqlJtJA0oc1ZAjg= -github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= github.com/dgraph-io/ristretto v0.0.1/go.mod h1:T40EBc7CJke8TkpiYfGGKAeFjSaxuFXhuXRyumBd6RE= github.com/dgraph-io/ristretto v0.0.2/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.0.3 h1:jh22xisGBjrEVnRZ1DVTpBVQm0Xndu8sMl0CWDzSIBI= @@ -245,6 +239,8 @@ github.com/dgraph-io/ristretto v0.0.3/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70d github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= 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= @@ -291,6 +287,8 @@ github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga 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/flyteorg/flyteidl v1.5.21 h1:zP1byUlNFqstTe7Io1DiiNgNf+mZAVmGZM04oIUA5kU= +github.com/flyteorg/flyteidl v1.5.21/go.mod h1:EtE/muM2lHHgBabjYcxqe9TWeJSL0kXwbI0RgVwI4Og= 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= @@ -317,8 +315,8 @@ github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy 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-gormigrate/gormigrate/v2 v2.0.0 h1:e2A3Uznk4viUC4UuemuVgsNnvYZyOA8B3awlYk3UioU= -github.com/go-gormigrate/gormigrate/v2 v2.0.0/go.mod h1:YuVJ+D/dNt4HWrThTBnjgZuRbt7AuwINeg4q52ZE3Jw= +github.com/go-gormigrate/gormigrate/v2 v2.1.1 h1:eGS0WTFRV30r103lU8JNXY27KbviRnqqIDobW3EV3iY= +github.com/go-gormigrate/gormigrate/v2 v2.1.1/go.mod h1:L7nJ620PFDKei9QOhJzqA8kRCk+E3UbV2f5gv+1ndLc= 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= @@ -658,7 +656,6 @@ github.com/goccy/go-json v0.4.8/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGF 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= 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/gofrs/uuid/v3 v3.1.2/go.mod h1:xPwMqoocQ1L5G6pXX5BcE7N5jlzn2o19oqAKxwZW/kI= @@ -674,8 +671,6 @@ github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzw 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-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= @@ -857,16 +852,12 @@ github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9 github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= github.com/jackc/pgconn v1.3.2/go.mod h1:LvCquS3HbBKwgl7KbX9KyqEIumJAbm1UMcTvGaIf3bM= -github.com/jackc/pgconn v1.4.0/go.mod h1:Y2O3ZDF0q4mMacyWV3AstPJpeHXWGEetiFttmq5lahk= github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= -github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= github.com/jackc/pgconn v1.6.0/go.mod h1:yeseQo4xhQbgyJs2c87RAXOH2i624N0Fh1KSPJya7qo= -github.com/jackc/pgconn v1.6.4/go.mod h1:w2pne1C2tZgP+TvjqLpOigGzNqjBgQW9dUw/4Chex78= github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= -github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= -github.com/jackc/pgconn v1.13.0 h1:3L1XMNV2Zvca/8BYhzcRFS70Lr0WlDg16Di6SFGAbys= -github.com/jackc/pgconn v1.13.0/go.mod h1:AnowpAqO4CMIIJNZl2VJp+KrkAZciAkhEl0W0JIobpI= +github.com/jackc/pgconn v1.14.1 h1:smbxIaZA08n6YuxEX1sDyjV/qkbtUtkH20qLkR9MUR4= +github.com/jackc/pgconn v1.14.1/go.mod h1:9mBNlny0UvkgJdCDvdVHYSjI+8tD2rnKK69Wz8ti++E= github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= @@ -884,42 +875,29 @@ github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwX github.com/jackc/pgproto3/v2 v2.0.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.3.1 h1:nwj7qwf0S+Q7ISFfBndqeLwSwxs+4DPsbRFjECT1Y4Y= -github.com/jackc/pgproto3/v2 v2.3.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.3.2 h1:7eY55bdBeCz1F2fTzSz69QC+pG46jYq9/jtSPiJ5nn0= +github.com/jackc/pgproto3/v2 v2.3.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= -github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg= github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= github.com/jackc/pgtype v1.2.0/go.mod h1:5m2OfMh1wTK7x+Fk952IDmI4nw3nPrvtQdM0ZT4WpC0= github.com/jackc/pgtype v1.3.0/go.mod h1:b0JqxHvPmljG+HQ5IsvQ0yqeSi4nGcDTVjFoiLDb0Ik= -github.com/jackc/pgtype v1.3.1-0.20200510190516-8cd94a14c75a/go.mod h1:vaogEUkALtxZMCH411K+tKzNpwzCKU+AnPzBKZ+I+Po= -github.com/jackc/pgtype v1.3.1-0.20200606141011-f6355165a91c/go.mod h1:cvk9Bgu/VzJ9/lxTO5R5sf80p0DiucVtN7ZxvaC4GmQ= -github.com/jackc/pgtype v1.4.2/go.mod h1:JCULISAZBFGrHaOXIIFiyfzW5VY0GRitRr8NeJsrdig= -github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= -github.com/jackc/pgtype v1.12.0 h1:Dlq8Qvcch7kiehm8wPGIW0W3KsCCHJnRacKW0UM8n5w= -github.com/jackc/pgtype v1.12.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jackc/pgx v3.6.2+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= github.com/jackc/pgx/v4 v4.4.1/go.mod h1:6iSW+JznC0YT+SgBn7rNxoEBsBgSmnC5FwyCekOGUiE= -github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXgo+kA= github.com/jackc/pgx/v4 v4.6.0/go.mod h1:vPh43ZzxijXUVJ+t/EmXBtFmbFVO72cuneCT9oAlxAg= -github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o= -github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg= -github.com/jackc/pgx/v4 v4.8.1/go.mod h1:4HOLxrl8wToZJReD04/yB20GDwf4KBYETvlHciCnwW0= -github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= -github.com/jackc/pgx/v4 v4.17.2 h1:0Ut0rpeKwvIVbMQ1KbMBU4h6wxehBI535LK6Flheh8E= -github.com/jackc/pgx/v4 v4.17.2/go.mod h1:lcxIZN44yMIrWI78a5CpucdD14hX0SBDbNRvjDBItsw= +github.com/jackc/pgx/v5 v5.4.3 h1:cxFyXhxlvAifxnkKKdlxv8XqUf59tDlYjnV5YYfsJJY= +github.com/jackc/pgx/v5 v5.4.3/go.mod h1:Ig06C2Vu0t5qXC60W8sqIthScaEnFvojjj9dSljmHRA= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.3.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jandelgado/gcov2lcov v1.0.4-0.20210120124023-b83752c6dc08/go.mod h1:NnSxK6TMlg1oGDBfGelGbjgorT5/L3cchlbtgFYZSss= github.com/jcmturner/gofork v0.0.0-20190328161633-dc7c13fece03/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= @@ -928,7 +906,6 @@ github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJS github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= @@ -942,7 +919,6 @@ github.com/jmoiron/sqlx v0.0.0-20180614180643-0dae4fefe7c0/go.mod h1:IiEW3SEiiEr github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -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= @@ -991,8 +967,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.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= 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= @@ -1020,9 +996,6 @@ github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.4 h1:SO9z7FRPzA03QhHKJrH5BXA6HU1rS4V2nIVrrNC1iYk= -github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/luna-duclos/instrumentedsql v0.0.0-20181127104832-b7d587d28109/go.mod h1:PWUIzhtavmOR965zfawVsHXbEuU1G29BPZ/CB3C7jXk= github.com/luna-duclos/instrumentedsql v1.1.2/go.mod h1:4LGbEqDnopzNAiyxPPDXhLspyunZxgPTMJBKtC6U0BQ= github.com/luna-duclos/instrumentedsql v1.1.3/go.mod h1:9J1njvFds+zN7y85EDhN9XNQLANWwZt2ULeIC8yMNYs= @@ -1082,7 +1055,6 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k 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= -github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= @@ -1273,6 +1245,8 @@ github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqn github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/redis/go-redis/v9 v9.0.5 h1:CuQcn5HIEeK7BgElubPP8CGtE0KakrnbBSTLjathl5o= +github.com/redis/go-redis/v9 v9.0.5/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk= github.com/remyoudompheng/bigfft v0.0.0-20190728182440-6a916e37a237/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rhnvrm/simples3 v0.5.0/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -1284,6 +1258,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.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= 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= @@ -1313,9 +1288,6 @@ github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLS github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= -github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= -github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= @@ -1447,6 +1419,7 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de 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/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= 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= @@ -1499,23 +1472,17 @@ go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16g 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/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/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= @@ -1539,7 +1506,6 @@ golang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/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= golang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= @@ -1570,7 +1536,7 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y 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.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1616,8 +1582,8 @@ 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.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= 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= golang.org/x/net v0.0.0-20180816102801-aaf60122140d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1684,6 +1650,8 @@ golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qx 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.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1714,6 +1682,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-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.0.0-20220722155255-886fb9371eb4/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-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1816,11 +1785,15 @@ golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBc 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-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/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= 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.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= 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-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1832,6 +1805,7 @@ 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.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= 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-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1899,7 +1873,6 @@ golang.org/x/tools v0.0.0-20191004055002-72853e10c5a3/go.mod h1:b+2E5dAYhXwXZwtn 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= @@ -1910,7 +1883,6 @@ golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191224055732-dd894d0a8a40/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1949,6 +1921,7 @@ 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.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= 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= @@ -2165,21 +2138,15 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C 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= -gorm.io/driver/mysql v1.0.1/go.mod h1:KtqSthtg55lFp3S5kUXqlGaelnWpKitn4k1xZTnoiPw= gorm.io/driver/mysql v1.4.4 h1:MX0K9Qvy0Na4o7qSC/YI7XxqUw5KDw01umqgID+svdQ= gorm.io/driver/mysql v1.4.4/go.mod h1:BCg8cKI+R0j/rZRQxeKis/forqRwRSYOR8OM3Wo6hOM= -gorm.io/driver/postgres v1.0.0/go.mod h1:wtMFcOzmuA5QigNsgEIb7O5lhvH1tHAF1RbWmLWV4to= -gorm.io/driver/postgres v1.4.5 h1:mTeXTTtHAgnS9PgmhN2YeUbazYpLhUI1doLnw42XUZc= -gorm.io/driver/postgres v1.4.5/go.mod h1:GKNQYSJ14qvWkvPwXljMGehpKrhlDNsqYRr5HnYGncg= -gorm.io/driver/sqlite v1.1.1 h1:qtWqNAEUyi7gYSUAJXeiAMz0lUOdakZF5ia9Fqnp5G4= -gorm.io/driver/sqlite v1.1.1/go.mod h1:hm2olEcl8Tmsc6eZyxYSeznnsDaMqamBvEXLNtBg4cI= -gorm.io/driver/sqlserver v1.0.2 h1:FzxAlw0/7hntMzSiNfotpYCo9Lz8dqWQGdmCGqIiFGo= -gorm.io/driver/sqlserver v1.0.2/go.mod h1:gb0Y9QePGgqjzrVyTQUZeh9zkd5v0iz71cM1B4ZycEY= -gorm.io/gorm v1.9.19/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= -gorm.io/gorm v1.20.0/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= +gorm.io/driver/postgres v1.5.3 h1:qKGY5CPHOuj47K/VxbCXJfFvIUeqMSXXadqdCY+MbBU= +gorm.io/driver/postgres v1.5.3/go.mod h1:F+LtvlFhZT7UBiA81mC9W6Su3D4WUhSboc/36QZU0gk= +gorm.io/driver/sqlite v1.5.4 h1:IqXwXi8M/ZlPzH/947tn5uik3aYQslP9BVveoax0nV0= +gorm.io/driver/sqlite v1.5.4/go.mod h1:qxAuCol+2r6PannQDpOP1FP6ag3mKi4esLnB/jHed+4= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= -gorm.io/gorm v1.24.1-0.20221019064659-5dd2bb482755 h1:7AdrbfcvKnzejfqP5g37fdSZOXH/JvaPIzBIHTOqXKk= -gorm.io/gorm v1.24.1-0.20221019064659-5dd2bb482755/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= +gorm.io/gorm v1.25.4 h1:iyNd8fNAe8W9dvtlgeRI5zSVZPsq3OpcTu37cYcpCmw= +gorm.io/gorm v1.25.4/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= 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= diff --git a/flyteadmin/pkg/artifacts/artifact_client.go b/flyteadmin/pkg/artifacts/artifact_client.go new file mode 100644 index 0000000000..e71536a9b5 --- /dev/null +++ b/flyteadmin/pkg/artifacts/artifact_client.go @@ -0,0 +1,42 @@ +package artifacts + +import ( + "context" + "crypto/tls" + "fmt" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" + "github.com/flyteorg/flyte/flytestdlib/logger" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials" +) + +func NewArtifactConnection(_ context.Context, cfg *Config, opts ...grpc.DialOption) (*grpc.ClientConn, error) { + if opts == nil { + // Initialize opts list to the potential number of options we will add. Initialization optimizes memory + // allocation. + opts = make([]grpc.DialOption, 0, 5) + } + + if cfg.Insecure { + opts = append(opts, grpc.WithInsecure()) + } else { + tlsConfig := &tls.Config{} //nolint + creds := credentials.NewTLS(tlsConfig) + opts = append(opts, grpc.WithTransportCredentials(creds)) + } + + return grpc.Dial(fmt.Sprintf("%s:%d", cfg.Host, cfg.Port), opts...) +} + +func InitializeArtifactClient(ctx context.Context, cfg *Config, opts ...grpc.DialOption) artifact.ArtifactRegistryClient { + if cfg == nil { + logger.Warningf(ctx, "Artifact config is not set, skipping creation of client...") + return nil + } + conn, err := NewArtifactConnection(ctx, cfg, opts...) + if err != nil { + logger.Panicf(ctx, "failed to initialize Artifact connection. Err: %s", err.Error()) + panic(err) + } + return artifact.NewArtifactRegistryClient(conn) +} diff --git a/flyteadmin/pkg/artifacts/config.go b/flyteadmin/pkg/artifacts/config.go new file mode 100644 index 0000000000..2cb5be9cc8 --- /dev/null +++ b/flyteadmin/pkg/artifacts/config.go @@ -0,0 +1,9 @@ +package artifacts + +// gatepr: add proper config bits for this +// eduardo to consider moving to idl clients. +type Config struct { + Host string `json:"host"` + Port int `json:"port"` + Insecure bool `json:"insecure"` +} diff --git a/flyteadmin/pkg/artifacts/registry.go b/flyteadmin/pkg/artifacts/registry.go new file mode 100644 index 0000000000..b58030ff75 --- /dev/null +++ b/flyteadmin/pkg/artifacts/registry.go @@ -0,0 +1,79 @@ +package artifacts + +import ( + "fmt" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + "github.com/flyteorg/flyte/flytestdlib/logger" + "google.golang.org/grpc" + + "context" +) + +// ArtifactRegistry contains a client to talk to an Artifact service and has helper methods +type ArtifactRegistry struct { + client artifact.ArtifactRegistryClient +} + +func (a *ArtifactRegistry) RegisterArtifactProducer(ctx context.Context, id *core.Identifier, ti core.TypedInterface) { + if a.client == nil { + logger.Debugf(ctx, "Artifact client not configured, skipping registration for task [%+v]", id) + return + } + ap := &artifact.ArtifactProducer{ + EntityId: id, + Outputs: ti.Outputs, + } + _, err := a.client.RegisterProducer(ctx, &artifact.RegisterProducerRequest{ + Producers: []*artifact.ArtifactProducer{ap}, + }) + if err != nil { + logger.Errorf(ctx, "Failed to register artifact producer for task [%+v] with err: %v", id, err) + } + logger.Debugf(ctx, "Registered artifact producer [%+v]", id) +} + +func (a *ArtifactRegistry) RegisterArtifactConsumer(ctx context.Context, id *core.Identifier, pm core.ParameterMap) { + if a.client == nil { + logger.Debugf(ctx, "Artifact client not configured, skipping registration for consumer [%+v]", id) + return + } + ac := &artifact.ArtifactConsumer{ + EntityId: id, + Inputs: &pm, + } + _, err := a.client.RegisterConsumer(ctx, &artifact.RegisterConsumerRequest{ + Consumers: []*artifact.ArtifactConsumer{ac}, + }) + if err != nil { + logger.Errorf(ctx, "Failed to register artifact consumer for entity [%+v] with err: %v", id, err) + } + logger.Debugf(ctx, "Registered artifact consumer [%+v]", id) +} + +func (a *ArtifactRegistry) RegisterTrigger(ctx context.Context, plan *admin.LaunchPlan) error { + if a.client == nil { + logger.Debugf(ctx, "Artifact client not configured, skipping trigger [%+v]", plan) + return fmt.Errorf("artifact client not configured") + } + _, err := a.client.CreateTrigger(ctx, &artifact.CreateTriggerRequest{ + TriggerLaunchPlan: plan, + }) + if err != nil { + logger.Errorf(ctx, "Failed to register trigger for [%+v] with err: %v", plan.Id, err) + return err + } + logger.Debugf(ctx, "Registered trigger for [%+v]", plan.Id) + return nil +} + +func (a *ArtifactRegistry) GetClient() artifact.ArtifactRegistryClient { + return a.client +} + +func NewArtifactRegistry(ctx context.Context, config *Config, opts ...grpc.DialOption) ArtifactRegistry { + return ArtifactRegistry{ + client: InitializeArtifactClient(ctx, config, opts...), + } +} diff --git a/flyteadmin/pkg/async/cloudevent/factory.go b/flyteadmin/pkg/async/cloudevent/factory.go index 976aa34532..423ff4e7eb 100644 --- a/flyteadmin/pkg/async/cloudevent/factory.go +++ b/flyteadmin/pkg/async/cloudevent/factory.go @@ -2,8 +2,13 @@ package cloudevent import ( "context" + "github.com/flyteorg/flyte/flytestdlib/sandbox_utils" "time" + dataInterfaces "github.com/flyteorg/flyte/flyteadmin/pkg/data/interfaces" + repositoryInterfaces "github.com/flyteorg/flyte/flyteadmin/pkg/repositories/interfaces" + "github.com/flyteorg/flyte/flytestdlib/storage" + "github.com/NYTimes/gizmo/pubsub" gizmoAWS "github.com/NYTimes/gizmo/pubsub/aws" gizmoGCP "github.com/NYTimes/gizmo/pubsub/gcp" @@ -20,18 +25,21 @@ import ( "github.com/flyteorg/flyte/flytestdlib/promutils" ) -func NewCloudEventsPublisher(ctx context.Context, config runtimeInterfaces.CloudEventsConfig, scope promutils.Scope) interfaces.Publisher { - if !config.Enable { +func NewCloudEventsPublisher(ctx context.Context, db repositoryInterfaces.Repository, storageClient *storage.DataStore, urlData dataInterfaces.RemoteURLInterface, cloudEventsConfig runtimeInterfaces.CloudEventsConfig, remoteDataConfig runtimeInterfaces.RemoteDataConfig, scope promutils.Scope) interfaces.Publisher { + if !cloudEventsConfig.Enable { + logger.Infof(ctx, "CloudEvents are disabled, config is [+%v]", cloudEventsConfig) return implementations.NewNoopPublish() } - reconnectAttempts := config.ReconnectAttempts - reconnectDelay := time.Duration(config.ReconnectDelaySeconds) * time.Second - switch config.Type { + reconnectAttempts := cloudEventsConfig.ReconnectAttempts + reconnectDelay := time.Duration(cloudEventsConfig.ReconnectDelaySeconds) * time.Second + + var sender interfaces.Sender + switch cloudEventsConfig.Type { case common.AWS: snsConfig := gizmoAWS.SNSConfig{ - Topic: config.EventsPublisherConfig.TopicName, + Topic: cloudEventsConfig.EventsPublisherConfig.TopicName, } - snsConfig.Region = config.AWSConfig.Region + snsConfig.Region = cloudEventsConfig.AWSConfig.Region var publisher pubsub.Publisher var err error @@ -44,12 +52,13 @@ func NewCloudEventsPublisher(ctx context.Context, config runtimeInterfaces.Cloud if err != nil { panic(err) } - return cloudEventImplementations.NewCloudEventsPublisher(&cloudEventImplementations.PubSubSender{Pub: publisher}, scope, config.EventsPublisherConfig.EventTypes) + sender = &cloudEventImplementations.PubSubSender{Pub: publisher} + case common.GCP: pubsubConfig := gizmoGCP.Config{ - Topic: config.EventsPublisherConfig.TopicName, + Topic: cloudEventsConfig.EventsPublisherConfig.TopicName, } - pubsubConfig.ProjectID = config.GCPConfig.ProjectID + pubsubConfig.ProjectID = cloudEventsConfig.GCPConfig.ProjectID var publisher pubsub.MultiPublisher var err error err = async.Retry(reconnectAttempts, reconnectDelay, func() error { @@ -60,30 +69,45 @@ func NewCloudEventsPublisher(ctx context.Context, config runtimeInterfaces.Cloud if err != nil { panic(err) } - return cloudEventImplementations.NewCloudEventsPublisher(&cloudEventImplementations.PubSubSender{Pub: publisher}, scope, config.EventsPublisherConfig.EventTypes) + sender = &cloudEventImplementations.PubSubSender{Pub: publisher} + case cloudEventImplementations.Kafka: saramaConfig := sarama.NewConfig() var err error - saramaConfig.Version, err = sarama.ParseKafkaVersion(config.KafkaConfig.Version) + saramaConfig.Version, err = sarama.ParseKafkaVersion(cloudEventsConfig.KafkaConfig.Version) if err != nil { logger.Fatalf(ctx, "failed to parse kafka version, %v", err) panic(err) } - sender, err := kafka_sarama.NewSender(config.KafkaConfig.Brokers, saramaConfig, config.EventsPublisherConfig.TopicName) + kafkaSender, err := kafka_sarama.NewSender(cloudEventsConfig.KafkaConfig.Brokers, saramaConfig, cloudEventsConfig.EventsPublisherConfig.TopicName) if err != nil { panic(err) } - client, err := cloudevents.NewClient(sender, cloudevents.WithTimeNow(), cloudevents.WithUUIDs()) + client, err := cloudevents.NewClient(kafkaSender, cloudevents.WithTimeNow(), cloudevents.WithUUIDs()) if err != nil { logger.Fatalf(ctx, "failed to create kafka client, %v", err) panic(err) } - return cloudEventImplementations.NewCloudEventsPublisher(&cloudEventImplementations.KafkaSender{Client: client}, scope, config.EventsPublisherConfig.EventTypes) + sender = &cloudEventImplementations.KafkaSender{Client: client} + + case common.Sandbox: + var publisher pubsub.Publisher + publisher = sandbox_utils.NewCloudEventsPublisher() + sender = &cloudEventImplementations.PubSubSender{ + Pub: publisher, + } + case common.Local: fallthrough default: logger.Infof(ctx, - "Using default noop cloud events publisher implementation for config type [%s]", config.Type) + "Using default noop cloud events publisher implementation for config type [%s]", cloudEventsConfig.Type) return implementations.NewNoopPublish() } + + if cloudEventsConfig.CloudEventVersion == runtimeInterfaces.CloudEventVersionv2 { + return cloudEventImplementations.NewCloudEventsWrappedPublisher(db, sender, scope, storageClient, urlData, remoteDataConfig) + } else { + return cloudEventImplementations.NewCloudEventsPublisher(sender, scope, cloudEventsConfig.EventsPublisherConfig.EventTypes) + } } diff --git a/flyteadmin/pkg/async/cloudevent/implementations/cloudevent_publisher.go b/flyteadmin/pkg/async/cloudevent/implementations/cloudevent_publisher.go index 8eafefffc0..cba75d4141 100644 --- a/flyteadmin/pkg/async/cloudevent/implementations/cloudevent_publisher.go +++ b/flyteadmin/pkg/async/cloudevent/implementations/cloudevent_publisher.go @@ -4,9 +4,19 @@ import ( "bytes" "context" "fmt" + "github.com/flyteorg/flyte/flyteadmin/pkg/common" "reflect" "time" + dataInterfaces "github.com/flyteorg/flyte/flyteadmin/pkg/data/interfaces" + "github.com/flyteorg/flyte/flyteadmin/pkg/manager/impl/util" + repositoryInterfaces "github.com/flyteorg/flyte/flyteadmin/pkg/repositories/interfaces" + "github.com/flyteorg/flyte/flyteadmin/pkg/repositories/transformers" + runtimeInterfaces "github.com/flyteorg/flyte/flyteadmin/pkg/runtime/interfaces" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/event" + "github.com/flyteorg/flyte/flytestdlib/storage" + "github.com/golang/protobuf/jsonpb" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin" @@ -25,7 +35,7 @@ import ( ) const ( - cloudEventSource = "https://github.com/flyteorg/flyteadmin" + cloudEventSource = "https://github.com/flyteorg/flyte/flyteadmin" cloudEventTypePrefix = "com.flyte.resource" jsonSchemaURLKey = "jsonschemaurl" jsonSchemaURL = "https://github.com/flyteorg/flyteidl/blob/v0.24.14/jsonschema/workflow_execution.json" @@ -107,20 +117,318 @@ func (p *Publisher) shouldPublishEvent(notificationType string) bool { return p.events.Has(notificationType) } +type CloudEventWrappedPublisher struct { + db repositoryInterfaces.Repository + sender interfaces.Sender + systemMetrics implementations.EventPublisherSystemMetrics + storageClient *storage.DataStore + urlData dataInterfaces.RemoteURLInterface + remoteDataConfig runtimeInterfaces.RemoteDataConfig +} + +func (c *CloudEventWrappedPublisher) TransformWorkflowExecutionEvent(ctx context.Context, rawEvent *event.WorkflowExecutionEvent) (*event.CloudEventWorkflowExecution, error) { + + // Basic error checking + if rawEvent == nil { + return nil, fmt.Errorf("nothing to publish, WorkflowExecution event is nil") + } + if rawEvent.ExecutionId == nil { + logger.Warningf(ctx, "nil execution id in event [%+v]", rawEvent) + return nil, fmt.Errorf("nil execution id in event [%+v]", rawEvent) + } + + // For now, don't append any additional information unless succeeded + if rawEvent.Phase != core.WorkflowExecution_SUCCEEDED { + return &event.CloudEventWorkflowExecution{ + RawEvent: rawEvent, + OutputData: nil, + OutputInterface: nil, + }, nil + } + + // TODO: Make this one call to the DB instead of two. + executionModel, err := c.db.ExecutionRepo().Get(ctx, repositoryInterfaces.Identifier{ + Project: rawEvent.ExecutionId.Project, + Domain: rawEvent.ExecutionId.Domain, + Name: rawEvent.ExecutionId.Name, + }) + ex, err := transformers.FromExecutionModel(ctx, executionModel, transformers.DefaultExecutionTransformerOptions) + if ex.Closure.WorkflowId == nil { + logger.Warningf(ctx, "workflow id is nil for execution [%+v]", ex) + return nil, fmt.Errorf("workflow id is nil for execution [%+v]", ex) + } + workflowModel, err := c.db.WorkflowRepo().Get(ctx, repositoryInterfaces.Identifier{ + Project: ex.Closure.WorkflowId.Project, + Domain: ex.Closure.WorkflowId.Domain, + Name: ex.Closure.WorkflowId.Name, + Version: ex.Closure.WorkflowId.Version, + }) + var workflowInterface core.TypedInterface + if workflowModel.TypedInterface != nil && len(workflowModel.TypedInterface) > 0 { + err = proto.Unmarshal(workflowModel.TypedInterface, &workflowInterface) + if err != nil { + return nil, fmt.Errorf( + "artifact eventing - failed to unmarshal TypedInterface for workflow [%+v] with err: %v", + workflowModel.ID, err) + } + } + + // Get inputs to the workflow execution + var inputs *core.LiteralMap + inputs, _, err = util.GetInputs(ctx, c.urlData, &c.remoteDataConfig, + c.storageClient, executionModel.InputsURI.String()) + if err != nil { + logger.Warningf(ctx, "Error fetching input literal map %s", executionModel.InputsURI.String()) + } + // The spec is used to retrieve metadata fields + spec := &admin.ExecutionSpec{} + err = proto.Unmarshal(executionModel.Spec, spec) + if err != nil { + fmt.Printf("there was an error with spec %v %v", err, executionModel.Spec) + } + + // Get outputs from the workflow execution + var outputs *core.LiteralMap + if rawEvent.GetOutputData() != nil { + outputs = rawEvent.GetOutputData() + } else if len(rawEvent.GetOutputUri()) > 0 { + // GetInputs actually fetches the data, even though this is an output + outputs, _, err = util.GetInputs(ctx, c.urlData, &c.remoteDataConfig, c.storageClient, rawEvent.GetOutputUri()) + if err != nil { + // gatepr: metric this + logger.Warningf(ctx, "Error fetching output literal map %v", rawEvent) + return nil, err + } + } + + return &event.CloudEventWorkflowExecution{ + RawEvent: rawEvent, + OutputData: outputs, + OutputInterface: &workflowInterface, + InputData: inputs, + ScheduledAt: spec.GetMetadata().GetScheduledAt(), + ArtifactIds: spec.GetMetadata().GetArtifactIds(), + ParentNodeExecution: spec.GetMetadata().GetParentNodeExecution(), + ReferenceExecution: spec.GetMetadata().GetReferenceExecution(), + LaunchPlanId: spec.LaunchPlan, + }, nil +} + +func (c *CloudEventWrappedPublisher) TransformNodeExecutionEvent(ctx context.Context, rawEvent *event.NodeExecutionEvent) (*event.CloudEventNodeExecution, error) { + return &event.CloudEventNodeExecution{ + RawEvent: rawEvent, + }, nil +} + +func (c *CloudEventWrappedPublisher) TransformTaskExecutionEvent(ctx context.Context, rawEvent *event.TaskExecutionEvent) (*event.CloudEventTaskExecution, error) { + + if rawEvent == nil { + return nil, fmt.Errorf("nothing to publish, TaskExecution event is nil") + } + + // For now, don't append any additional information unless succeeded + if rawEvent.Phase != core.TaskExecution_SUCCEEDED { + return &event.CloudEventTaskExecution{ + RawEvent: rawEvent, + OutputData: nil, + OutputInterface: nil, + }, nil + } + + // This gets the parent workflow execution metadata + executionModel, err := c.db.ExecutionRepo().Get(ctx, repositoryInterfaces.Identifier{ + Project: rawEvent.ParentNodeExecutionId.ExecutionId.Project, + Domain: rawEvent.ParentNodeExecutionId.ExecutionId.Domain, + Name: rawEvent.ParentNodeExecutionId.ExecutionId.Name, + }) + if err != nil { + logger.Infof(ctx, "couldn't find execution [%+v] to save termination cause", rawEvent.ParentNodeExecutionId) + return nil, err + } + + spec := &admin.ExecutionSpec{} + err = proto.Unmarshal(executionModel.Spec, spec) + if err != nil { + fmt.Printf("there was an error with spec %v %v", err, executionModel.Spec) + } + + taskModel, err := c.db.TaskRepo().Get(ctx, repositoryInterfaces.Identifier{ + Project: rawEvent.TaskId.Project, + Domain: rawEvent.TaskId.Domain, + Name: rawEvent.TaskId.Name, + Version: rawEvent.TaskId.Version, + }) + if err != nil { + // TODO: metric this + logger.Debugf(ctx, "Failed to get task with task id [%+v] with err %v", rawEvent.TaskId, err) + return nil, err + } + task, err := transformers.FromTaskModel(taskModel) + + var inputs *core.LiteralMap + if rawEvent.GetInputData() != nil { + inputs = rawEvent.GetInputData() + } else if len(rawEvent.GetInputUri()) > 0 { + inputs, _, err = util.GetInputs(ctx, c.urlData, &c.remoteDataConfig, + c.storageClient, rawEvent.GetInputUri()) + if err != nil { + fmt.Printf("Error fetching input literal map %v", rawEvent) + } + } else { + logger.Infof(ctx, "Task execution for node exec [%+v] has no input data", rawEvent.ParentNodeExecutionId) + } + + var outputs *core.LiteralMap + if rawEvent.GetOutputData() != nil { + outputs = rawEvent.GetOutputData() + } else if len(rawEvent.GetOutputUri()) > 0 { + // GetInputs actually fetches the data, even though this is an output + outputs, _, err = util.GetInputs(ctx, c.urlData, &c.remoteDataConfig, + c.storageClient, rawEvent.GetOutputUri()) + if err != nil { + fmt.Printf("Error fetching output literal map %v", rawEvent) + return nil, err + } + } + if outputs == nil { + // todo: remove + fmt.Printf("No output data found for task execution %v\n", rawEvent) + } + + return &event.CloudEventTaskExecution{ + RawEvent: rawEvent, + OutputData: outputs, + OutputInterface: task.Closure.CompiledTask.Template.Interface, + InputData: inputs, + ScheduledAt: spec.GetMetadata().GetScheduledAt(), + ArtifactIds: spec.GetMetadata().GetArtifactIds(), + ParentNodeExecution: spec.GetMetadata().GetParentNodeExecution(), + ReferenceExecution: spec.GetMetadata().GetReferenceExecution(), + LaunchPlanId: spec.LaunchPlan, + }, nil +} + +func (c *CloudEventWrappedPublisher) Publish(ctx context.Context, notificationType string, msg proto.Message) error { + c.systemMetrics.PublishTotal.Inc() + logger.Debugf(ctx, "Publishing the following message [%+v]", msg) + + var err error + var executionID string + var phase string + var eventTime time.Time + var finalMsg proto.Message + // this is a modified notification type. will be used for both event type and publishing topic. + var topic string + var eventID string + var eventSource = cloudEventSource + + switch msgType := msg.(type) { + case *admin.WorkflowExecutionEventRequest: + topic = "cloudevents.WorkflowExecution" + e := msgType.Event + executionID = e.ExecutionId.String() + phase = e.Phase.String() + eventTime = e.OccurredAt.AsTime() + + dummyNodeExecutionID := core.NodeExecutionIdentifier{ + NodeId: "end-node", + ExecutionId: e.ExecutionId, + } + // This forms part of the key in the Artifact store, + // but it should probably be entirely derived by that service instead. + eventSource = common.FlyteURLKeyFromNodeExecutionID(dummyNodeExecutionID) + finalMsg, err = c.TransformWorkflowExecutionEvent(ctx, e) + if err != nil { + logger.Errorf(ctx, "Failed to transform workflow execution event with error: %v", err) + return err + } + eventID = fmt.Sprintf("%v.%v", executionID, phase) + + case *admin.TaskExecutionEventRequest: + topic = "cloudevents.TaskExecution" + e := msgType.Event + executionID = e.TaskId.String() + phase = e.Phase.String() + eventTime = e.OccurredAt.AsTime() + eventID = fmt.Sprintf("%v.%v", executionID, phase) + + if e.ParentNodeExecutionId == nil { + return fmt.Errorf("parent node execution id is nil for task execution [%+v]", e) + } + eventSource = common.FlyteURLKeyFromNodeExecutionIDRetry(*e.ParentNodeExecutionId, + int(e.RetryAttempt)) + finalMsg, err = c.TransformTaskExecutionEvent(ctx, e) + case *admin.NodeExecutionEventRequest: + topic = "cloudevents.NodeExecution" + e := msgType.Event + executionID = msgType.Event.Id.String() + phase = e.Phase.String() + eventTime = e.OccurredAt.AsTime() + eventID = fmt.Sprintf("%v.%v", executionID, phase) + finalMsg, err = c.TransformNodeExecutionEvent(ctx, e) + case *event.CloudEventExecutionStart: + topic = "cloudevents.ExecutionStart" + executionID = msgType.ExecutionId.String() + eventID = fmt.Sprintf("%v", executionID) + eventTime = time.Now() + // CloudEventExecutionStart don't have a nested event + finalMsg = msgType + default: + return fmt.Errorf("unsupported event types [%+v]", reflect.TypeOf(msg)) + } + + // Explicitly jsonpb marshal the proto. Otherwise, event.SetData will use json.Marshal which doesn't work well + // with proto oneof fields. + marshaler := jsonpb.Marshaler{} + buf := bytes.NewBuffer([]byte{}) + err = marshaler.Marshal(buf, finalMsg) + if err != nil { + c.systemMetrics.PublishError.Inc() + logger.Errorf(ctx, "Failed to jsonpb marshal [%v] with error: %v", msg, err) + return fmt.Errorf("failed to jsonpb marshal [%v] with error: %w", msg, err) + } + + cloudEvt := cloudevents.NewEvent() + // CloudEvent specification: https://github.com/cloudevents/spec/blob/v1.0/spec.md#required-attributes + cloudEvt.SetType(fmt.Sprintf("%v.%v", cloudEventTypePrefix, topic)) + // According to the spec, the combination of source and id should be unique. + // Artifact service's uniqueness is project/domain/suffix. project/domain are available from the execution id. + // so set the suffix as the source. Can ignore ID since Artifact will only listen to succeeded events. + cloudEvt.SetSource(eventSource) + cloudEvt.SetID(eventID) + cloudEvt.SetTime(eventTime) + // TODO: Fill this in after we can get auto-generation in buf. + cloudEvt.SetExtension(jsonSchemaURLKey, "") + + if err := cloudEvt.SetData(cloudevents.ApplicationJSON, buf.Bytes()); err != nil { + c.systemMetrics.PublishError.Inc() + logger.Errorf(ctx, "Failed to encode message [%v] with error: %v", msg, err) + return err + } + + if err := c.sender.Send(ctx, topic, cloudEvt); err != nil { + c.systemMetrics.PublishError.Inc() + logger.Errorf(ctx, "Failed to send message [%v] with error: %v", msg, err) + return err + } + c.systemMetrics.PublishSuccess.Inc() + return nil +} + func NewCloudEventsPublisher(sender interfaces.Sender, scope promutils.Scope, eventTypes []string) interfaces.Publisher { eventSet := sets.NewString() - for _, event := range eventTypes { - if event == implementations.AllTypes || event == implementations.AllTypesShort { + for _, eventType := range eventTypes { + if eventType == implementations.AllTypes || eventType == implementations.AllTypesShort { for _, e := range implementations.SupportedEvents { eventSet = eventSet.Insert(e) } break } - if e, found := implementations.SupportedEvents[event]; found { + if e, found := implementations.SupportedEvents[eventType]; found { eventSet = eventSet.Insert(e) } else { - panic(fmt.Errorf("unsupported event type [%s] in the config", event)) + panic(fmt.Errorf("unsupported event type [%s] in the config", eventType)) } } @@ -130,3 +438,16 @@ func NewCloudEventsPublisher(sender interfaces.Sender, scope promutils.Scope, ev events: eventSet, } } + +func NewCloudEventsWrappedPublisher( + db repositoryInterfaces.Repository, sender interfaces.Sender, scope promutils.Scope, storageClient *storage.DataStore, urlData dataInterfaces.RemoteURLInterface, remoteDataConfig runtimeInterfaces.RemoteDataConfig) interfaces.Publisher { + + return &CloudEventWrappedPublisher{ + db: db, + sender: sender, + systemMetrics: implementations.NewEventPublisherSystemMetrics(scope.NewSubScope("cloudevents_publisher")), + storageClient: storageClient, + urlData: urlData, + remoteDataConfig: remoteDataConfig, + } +} diff --git a/flyteadmin/pkg/async/cloudevent/implementations/sender.go b/flyteadmin/pkg/async/cloudevent/implementations/sender.go index 263e4cfd56..71d6a09a84 100644 --- a/flyteadmin/pkg/async/cloudevent/implementations/sender.go +++ b/flyteadmin/pkg/async/cloudevent/implementations/sender.go @@ -3,10 +3,10 @@ package implementations import ( "context" "fmt" + pbcloudevents "github.com/cloudevents/sdk-go/binding/format/protobuf/v2" "github.com/NYTimes/gizmo/pubsub" "github.com/Shopify/sarama" - pbcloudevents "github.com/cloudevents/sdk-go/binding/format/protobuf/v2" "github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2" cloudevents "github.com/cloudevents/sdk-go/v2" "github.com/flyteorg/flyte/flytestdlib/logger" diff --git a/flyteadmin/pkg/common/flyte_url.go b/flyteadmin/pkg/common/flyte_url.go index 195963535e..49ba984cd5 100644 --- a/flyteadmin/pkg/common/flyte_url.go +++ b/flyteadmin/pkg/common/flyte_url.go @@ -139,6 +139,23 @@ func FlyteURLsFromNodeExecutionID(nodeExecutionID core.NodeExecutionIdentifier, return res } +// FlyteURLKeyFromNodeExecutionID is a modified version of the function above. +// This constructs a fully unique prefix, and when post-pended with the output name, forms a fully unique name for +// the artifact service (including the project/domain of course, which the artifact service will add). +func FlyteURLKeyFromNodeExecutionID(nodeExecutionID core.NodeExecutionIdentifier) string { + res := fmt.Sprintf("%s/%s", nodeExecutionID.ExecutionId.Name, nodeExecutionID.NodeId) + + return res +} + +// FlyteURLKeyFromNodeExecutionIDRetry is a modified version of the function above. +// See the uniqueness comment above. +func FlyteURLKeyFromNodeExecutionIDRetry(nodeExecutionID core.NodeExecutionIdentifier, retry int) string { + res := fmt.Sprintf("%s/%s/%s", nodeExecutionID.ExecutionId.Name, nodeExecutionID.NodeId, strconv.Itoa(retry)) + + return res +} + func FlyteURLsFromTaskExecutionID(taskExecutionID core.TaskExecutionIdentifier, deck bool) *admin.FlyteURLs { base := fmt.Sprintf("flyte://v1/%s/%s/%s/%s/%s", taskExecutionID.NodeExecutionId.ExecutionId.Project, taskExecutionID.NodeExecutionId.ExecutionId.Domain, taskExecutionID.NodeExecutionId.ExecutionId.Name, taskExecutionID.NodeExecutionId.NodeId, strconv.Itoa(int(taskExecutionID.RetryAttempt))) diff --git a/flyteadmin/pkg/manager/impl/execution_manager.go b/flyteadmin/pkg/manager/impl/execution_manager.go index e5515f886b..85cd87c349 100644 --- a/flyteadmin/pkg/manager/impl/execution_manager.go +++ b/flyteadmin/pkg/manager/impl/execution_manager.go @@ -3,11 +3,15 @@ package impl import ( "context" "fmt" + "github.com/flyteorg/flyte/flyteadmin/pkg/artifacts" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/event" "strconv" "time" "github.com/benbjohnson/clock" + "github.com/flyteorg/flyte/flyteadmin/pkg/common" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/flytek8s" "github.com/flyteorg/flyte/flytestdlib/contextutils" @@ -26,7 +30,6 @@ import ( eventWriter "github.com/flyteorg/flyte/flyteadmin/pkg/async/events/interfaces" "github.com/flyteorg/flyte/flyteadmin/pkg/async/notifications" notificationInterfaces "github.com/flyteorg/flyte/flyteadmin/pkg/async/notifications/interfaces" - "github.com/flyteorg/flyte/flyteadmin/pkg/common" dataInterfaces "github.com/flyteorg/flyte/flyteadmin/pkg/data/interfaces" "github.com/flyteorg/flyte/flyteadmin/pkg/errors" "github.com/flyteorg/flyte/flyteadmin/pkg/manager/impl/executions" @@ -91,6 +94,7 @@ type ExecutionManager struct { cloudEventPublisher notificationInterfaces.Publisher dbEventWriter eventWriter.WorkflowExecutionEventWriter pluginRegistry *plugins.Registry + artifactRegistry artifacts.ArtifactRegistry } func getExecutionContext(ctx context.Context, id *core.WorkflowExecutionIdentifier) context.Context { @@ -701,9 +705,257 @@ func resolveSecurityCtx(ctx context.Context, executionConfigSecurityCtx *core.Se } } +// ExtractArtifactKeys pulls out artifact keys from Literals for lineage +func (m *ExecutionManager) ExtractArtifactKeys(input *core.Literal) []string { + var artifactKeys []string + + if input == nil { + return artifactKeys + } + if input.GetMetadata() != nil { + if artifactKey, ok := input.GetMetadata()["_ua"]; ok { + artifactKeys = append(artifactKeys, artifactKey) + } + } + if input.GetCollection() != nil { + // TODO: Make recursive + for _, v := range input.GetCollection().Literals { + mapKeys := m.ExtractArtifactKeys(v) + artifactKeys = append(artifactKeys, mapKeys...) + } + } else if input.GetMap() != nil { + for _, v := range input.GetMap().Literals { + mapKeys := m.ExtractArtifactKeys(v) + artifactKeys = append(artifactKeys, mapKeys...) + } + } + return artifactKeys +} + +// getStringFromInput should be called when a tag or partition value is a binding to an input. the input is looked up +// from the input map and the binding, and an error is returned if the input key is not in the map. +func (m *ExecutionManager) getStringFromInput(ctx context.Context, inputBinding core.InputBindingData, inputs map[string]*core.Literal) (string, error) { + + inputName := inputBinding.GetVar() + if inputName == "" { + return "", errors.NewFlyteAdminErrorf(codes.InvalidArgument, "input binding var is empty") + } + if inputVal, ok := inputs[inputName]; ok { + if inputVal.GetScalar() == nil || inputVal.GetScalar().GetPrimitive() == nil { + return "", errors.NewFlyteAdminErrorf(codes.InvalidArgument, "invalid input value [%+v]", inputVal) + } + var strVal = "" + p := inputVal.GetScalar().GetPrimitive() + switch p.GetValue().(type) { + case *core.Primitive_Integer: + strVal = fmt.Sprintf("%s", p.GetStringValue()) + case *core.Primitive_Datetime: + t := time.Unix(p.GetDatetime().Seconds, int64(p.GetDatetime().Nanos)) + strVal = t.Format("2006-01-02") + case *core.Primitive_StringValue: + strVal = fmt.Sprintf("%s", p.GetStringValue()) + case *core.Primitive_FloatValue: + strVal = fmt.Sprintf("%.2f", p.GetFloatValue()) + case *core.Primitive_Boolean: + strVal = fmt.Sprintf("%t", p.GetBoolean()) + default: + strVal = fmt.Sprintf("%s", p.GetValue()) + } + + logger.Debugf(ctx, "String templating returning [%s] for [%+v]", strVal, inputVal) + return strVal, nil + } + return "", errors.NewFlyteAdminErrorf(codes.InvalidArgument, "input binding var [%s] not found", inputName) +} + +func (m *ExecutionManager) getLabelValue(ctx context.Context, l *core.LabelValue, inputs map[string]*core.Literal) (string, error) { + if l == nil { + return "", errors.NewFlyteAdminErrorf(codes.InvalidArgument, "label value is nil") + } + if l.GetInputBinding() != nil { + return m.getStringFromInput(ctx, *l.GetInputBinding(), inputs) + } + if l.GetStaticValue() != "" { + return l.GetStaticValue(), nil + } + return "", errors.NewFlyteAdminErrorf(codes.InvalidArgument, "label value is empty") +} + +func (m *ExecutionManager) fillInTemplateArgs(ctx context.Context, query core.ArtifactQuery, inputs map[string]*core.Literal) (core.ArtifactQuery, error) { + if query.GetUri() != "" { + // If a query string, then just pass it through, nothing to fill in. + return query, nil + } else if query.GetArtifactTag() != nil { + t := query.GetArtifactTag() + ak := t.GetArtifactKey() + if ak == nil { + return query, errors.NewFlyteAdminErrorf(codes.InvalidArgument, "tag doesn't have key") + } + var project, domain string + if ak.GetProject() == "" { + project = contextutils.Value(ctx, contextutils.ProjectKey) + } else { + project = ak.GetProject() + } + if ak.GetDomain() == "" { + domain = contextutils.Value(ctx, contextutils.DomainKey) + } else { + domain = ak.GetDomain() + } + strValue, err := m.getLabelValue(ctx, t.GetValue(), inputs) + if err != nil { + logger.Errorf(ctx, "Failed to template input string [%s] [%v]", t.GetValue(), err) + return query, err + } + + return core.ArtifactQuery{ + Identifier: &core.ArtifactQuery_ArtifactTag{ + ArtifactTag: &core.ArtifactTag{ + ArtifactKey: &core.ArtifactKey{ + Project: project, + Domain: domain, + Name: ak.GetName(), + }, + Value: &core.LabelValue{ + Value: &core.LabelValue_StaticValue{ + StaticValue: strValue, + }, + }, + }, + }, + }, nil + + } else if query.GetArtifactId() != nil { + artifactID := query.GetArtifactId() + ak := artifactID.GetArtifactKey() + if ak == nil { + return query, errors.NewFlyteAdminErrorf(codes.InvalidArgument, "id doesn't have key") + } + var project, domain string + if ak.GetProject() == "" { + project = contextutils.Value(ctx, contextutils.ProjectKey) + } else { + project = ak.GetProject() + } + if ak.GetDomain() == "" { + domain = contextutils.Value(ctx, contextutils.DomainKey) + } else { + domain = ak.GetDomain() + } + + var partitions map[string]*core.LabelValue + + if artifactID.GetPartitions() != nil && artifactID.GetPartitions().GetValue() != nil { + partitions = make(map[string]*core.LabelValue, len(artifactID.GetPartitions().Value)) + for k, v := range artifactID.GetPartitions().GetValue() { + newValue, err := m.getLabelValue(ctx, v, inputs) + if err != nil { + logger.Errorf(ctx, "Failed to resolve partition input string [%s] [%+v] [%v]", k, v, err) + return query, err + } + partitions[k] = &core.LabelValue{Value: &core.LabelValue_StaticValue{StaticValue: newValue}} + } + } + return core.ArtifactQuery{ + Identifier: &core.ArtifactQuery_ArtifactId{ + ArtifactId: &core.ArtifactID{ + ArtifactKey: &core.ArtifactKey{ + Project: project, + Domain: domain, + Name: ak.GetName(), + }, + Dimensions: &core.ArtifactID_Partitions{ + Partitions: &core.Partitions{ + Value: partitions, + }, + }, + }, + }, + }, nil + } + return query, errors.NewFlyteAdminErrorf(codes.InvalidArgument, "query doesn't have uri, tag, or id") +} + +// ResolveParameterMapArtifacts will go through the parameter map, and resolve any artifact queries. +func (m *ExecutionManager) ResolveParameterMapArtifacts(ctx context.Context, inputs *core.ParameterMap, inputsForQueryTemplating map[string]*core.Literal) (*core.ParameterMap, map[string]*core.ArtifactID, error) { + + // only top level replace for now. Need to make this recursive + var artifactIDs = make(map[string]*core.ArtifactID) + if inputs == nil { + return nil, artifactIDs, nil + } + outputs := map[string]*core.Parameter{} + + for k, v := range inputs.Parameters { + if inputsForQueryTemplating != nil { + if _, ok := inputsForQueryTemplating[k]; ok { + // Mark these as required as they're already provided by the other two LiteralMaps + outputs[k] = &core.Parameter{ + Var: v.Var, + Behavior: &core.Parameter_Required{Required: true}, + } + continue + } + } + if v.GetArtifactQuery() != nil { + // This case handles when an Artifact query is specified as a default value. + if m.artifactRegistry.GetClient() == nil { + return nil, nil, errors.NewFlyteAdminErrorf(codes.Internal, "artifact client is not initialized, can't resolve queries") + } + filledInQuery, err := m.fillInTemplateArgs(ctx, *v.GetArtifactQuery(), inputsForQueryTemplating) + if err != nil { + logger.Errorf(ctx, "Failed to fill in template args for [%s] [%v]", k, err) + return nil, nil, err + } + req := &artifact.GetArtifactRequest{ + Query: &filledInQuery, + Details: false, + } + + resp, err := m.artifactRegistry.GetClient().GetArtifact(ctx, req) + if err != nil { + return nil, nil, err + } + artifactIDs[k] = resp.Artifact.GetArtifactId() + logger.Debugf(ctx, "Resolved query for [%s] to [%+v]", k, resp.Artifact.ArtifactId) + outputs[k] = &core.Parameter{ + Var: v.Var, + Behavior: &core.Parameter_Default{Default: resp.Artifact.Spec.Value}, + } + } else if v.GetArtifactId() != nil { + // This case is for when someone hard-codes a known ArtifactID as a default value. + req := &artifact.GetArtifactRequest{ + Query: &core.ArtifactQuery{ + Identifier: &core.ArtifactQuery_ArtifactId{ + ArtifactId: v.GetArtifactId(), + }, + }, + Details: false, + } + resp, err := m.artifactRegistry.GetClient().GetArtifact(ctx, req) + if err != nil { + return nil, nil, err + } + artifactIDs[k] = v.GetArtifactId() + logger.Debugf(ctx, "Using specified artifactID for [%+v] for [%s]", v.GetArtifactId(), k) + outputs[k] = &core.Parameter{ + Var: v.Var, + Behavior: &core.Parameter_Default{Default: resp.Artifact.Spec.Value}, + } + } else { + outputs[k] = v + } + } + pm := &core.ParameterMap{Parameters: outputs} + return pm, artifactIDs, nil +} + func (m *ExecutionManager) launchExecutionAndPrepareModel( ctx context.Context, request admin.ExecutionCreateRequest, requestedAt time.Time) ( context.Context, *models.Execution, error) { + + ctxPD := contextutils.WithProjectDomain(ctx, request.Project, request.Domain) + err := validation.ValidateExecutionRequest(ctx, request, m.db, m.config.ApplicationConfiguration()) if err != nil { logger.Debugf(ctx, "Failed to validate ExecutionCreateRequest %+v with err %v", request, err) @@ -711,7 +963,9 @@ func (m *ExecutionManager) launchExecutionAndPrepareModel( } if request.Spec.LaunchPlan.ResourceType == core.ResourceType_TASK { logger.Debugf(ctx, "Launching single task execution with [%+v]", request.Spec.LaunchPlan) - return m.launchSingleTaskExecution(ctx, request, requestedAt) + // When tasks can have defaults this will need to handle Artifacts as well. + ctx, model, err := m.launchSingleTaskExecution(ctx, request, requestedAt) + return ctx, model, err } launchPlanModel, err := util.GetLaunchPlanModel(ctx, m.db, *request.Spec.LaunchPlan) @@ -724,16 +978,61 @@ func (m *ExecutionManager) launchExecutionAndPrepareModel( logger.Debugf(ctx, "Failed to transform launch plan model %+v with err %v", launchPlanModel, err) return nil, nil, err } + + // Literals may have an artifact key in the metadata field. This is something the artifact service should have + // added. Pull these back out so we can keep track of them for lineage purposes. Use a dummy wrapper object for + // easier recursion. + requestInputMap := &core.Literal{ + Value: &core.Literal_Map{Map: request.Inputs}, + } + fixedInputMap := &core.Literal{ + Value: &core.Literal_Map{Map: launchPlan.Spec.FixedInputs}, + } + requestInputArtifactKeys := m.ExtractArtifactKeys(requestInputMap) + fixedInputArtifactKeys := m.ExtractArtifactKeys(fixedInputMap) + requestInputArtifactKeys = append(requestInputArtifactKeys, fixedInputArtifactKeys...) + + // Put together the inputs that we've already resolved so that the artifact querying bit can fill them in. + // This is to support artifact queries that depend on other inputs using the {{ .inputs.var }} construct. + var inputsForQueryTemplating = make(map[string]*core.Literal) + if request.Inputs != nil { + for k, v := range request.Inputs.Literals { + inputsForQueryTemplating[k] = v + } + } + for k, v := range launchPlan.Spec.FixedInputs.Literals { + inputsForQueryTemplating[k] = v + } + logger.Debugf(ctx, "Inputs for query templating: [%+v]", inputsForQueryTemplating) + + // Resolve artifact queries + // Within the launch plan, the artifact will be in the Parameter map, and can come in form of an ArtifactID, + // or as an ArtifactQuery. + // Also send in the inputsForQueryTemplating for two reasons, so we don't run queries for things we don't need to + // and so we can fill in template args. + // ArtifactIDs are also returned for lineage purposes. + resolvedExpectedInputs, usedArtifactIDs, err := m.ResolveParameterMapArtifacts(ctxPD, launchPlan.Closure.ExpectedInputs, inputsForQueryTemplating) + if err != nil { + logger.Errorf(ctx, "Error looking up launch plan closure parameter map: %v", err) + return nil, nil, err + } + + logger.Debugf(ctx, "Resolved launch plan closure expected inputs from [%+v] to [%+v]", launchPlan.Closure.ExpectedInputs, resolvedExpectedInputs) + logger.Debugf(ctx, "Found artifact keys: %v", requestInputArtifactKeys) + logger.Debugf(ctx, "Found artifact IDs: %v", usedArtifactIDs) + + // Artifacts retrieved will need to be stored somewhere to ensure that we can re-emit events if necessary + // in the future, and also to make sure that relaunch and recover can use it if necessary. executionInputs, err := validation.CheckAndFetchInputsForExecution( request.Inputs, launchPlan.Spec.FixedInputs, - launchPlan.Closure.ExpectedInputs, + resolvedExpectedInputs, ) if err != nil { logger.Debugf(ctx, "Failed to CheckAndFetchInputsForExecution with request.Inputs: %+v"+ "fixed inputs: %+v and expected inputs: %+v with err %v", - request.Inputs, launchPlan.Spec.FixedInputs, launchPlan.Closure.ExpectedInputs, err) + request.Inputs, launchPlan.Spec.FixedInputs, resolvedExpectedInputs, err) return nil, nil, err } @@ -767,6 +1066,13 @@ func (m *ExecutionManager) launchExecutionAndPrepareModel( requestSpec.Metadata = &admin.ExecutionMetadata{} } requestSpec.Metadata.Principal = getUser(ctx) + // Construct a list of the values and save to request spec metadata. + // Avoids going through the model creation step. + artifactIDs := make([]*core.ArtifactID, 0, len(usedArtifactIDs)) + for _, value := range usedArtifactIDs { + artifactIDs = append(artifactIDs, value) + } + requestSpec.Metadata.ArtifactIds = artifactIDs // Get the node and parent execution (if any) that launched this execution var parentNodeExecutionID uint @@ -884,6 +1190,8 @@ func (m *ExecutionManager) launchExecutionAndPrepareModel( notificationsSettings = make([]*admin.Notification, 0) } + m.publishExecutionStart(ctx, workflowExecutionID, request.Spec.LaunchPlan, workflow.Id, requestInputArtifactKeys, requestSpec.Metadata.ArtifactIds) + executionModel, err := transformers.CreateExecutionModel(transformers.CreateExecutionModelInput{ WorkflowExecutionID: workflowExecutionID, RequestSpec: requestSpec, @@ -912,6 +1220,29 @@ func (m *ExecutionManager) launchExecutionAndPrepareModel( return ctx, executionModel, nil } +// publishExecutionStart is an event that Admin publishes for artifact lineage. +func (m *ExecutionManager) publishExecutionStart(ctx context.Context, executionID core.WorkflowExecutionIdentifier, + launchPlanID *core.Identifier, workflowID *core.Identifier, inputArtifactKeys []string, usedArtifactIDs []*core.ArtifactID) { + if len(inputArtifactKeys) > 0 || len(usedArtifactIDs) > 0 { + logger.Debugf(ctx, "Sending execution start event for execution [%+v] with input artifact keys [%+v] and used artifact ids [%+v]", executionID, inputArtifactKeys, usedArtifactIDs) + + request := event.CloudEventExecutionStart{ + ExecutionId: &executionID, + LaunchPlanId: launchPlanID, + WorkflowId: workflowID, + ArtifactIds: usedArtifactIDs, + ArtifactKeys: inputArtifactKeys, + } + go func() { + ceCtx := context.TODO() + if err := m.cloudEventPublisher.Publish(ceCtx, proto.MessageName(&request), &request); err != nil { + m.systemMetrics.PublishEventError.Inc() + logger.Infof(ctx, "error publishing cloud event [%+v] with err: [%v]", request, err) + } + }() + } +} + // Inserts an execution model into the database store and emits platform metrics. func (m *ExecutionManager) createExecutionModel( ctx context.Context, executionModel *models.Execution) (*core.WorkflowExecutionIdentifier, error) { @@ -936,7 +1267,8 @@ func (m *ExecutionManager) createExecutionModel( func (m *ExecutionManager) CreateExecution( ctx context.Context, request admin.ExecutionCreateRequest, requestedAt time.Time) ( *admin.ExecutionCreateResponse, error) { - // Prior to flyteidl v0.15.0, Inputs was held in ExecutionSpec. Ensure older clients continue to work. + + // Prior to flyteidl v0.15.0, Inputs was held in ExecutionSpec. Ensure older clients continue to work. if request.Inputs == nil || len(request.Inputs.Literals) == 0 { request.Inputs = request.GetSpec().GetInputs() } @@ -1293,7 +1625,8 @@ func (m *ExecutionManager) CreateWorkflowEvent(ctx context.Context, request admi } go func() { - if err := m.cloudEventPublisher.Publish(ctx, proto.MessageName(&request), &request); err != nil { + ceCtx := context.TODO() + if err := m.cloudEventPublisher.Publish(ceCtx, proto.MessageName(&request), &request); err != nil { m.systemMetrics.PublishEventError.Inc() logger.Infof(ctx, "error publishing cloud event [%+v] with err: [%v]", request.RequestId, err) } @@ -1629,7 +1962,8 @@ func NewExecutionManager(db repositoryInterfaces.Repository, pluginRegistry *plu publisher notificationInterfaces.Publisher, urlData dataInterfaces.RemoteURLInterface, workflowManager interfaces.WorkflowInterface, namedEntityManager interfaces.NamedEntityInterface, eventPublisher notificationInterfaces.Publisher, cloudEventPublisher cloudeventInterfaces.Publisher, - eventWriter eventWriter.WorkflowExecutionEventWriter) interfaces.ExecutionInterface { + eventWriter eventWriter.WorkflowExecutionEventWriter, artifactRegistry artifacts.ArtifactRegistry) interfaces.ExecutionInterface { + queueAllocator := executions.NewQueueAllocator(config, db) systemMetrics := newExecutionSystemMetrics(systemScope) @@ -1662,6 +1996,7 @@ func NewExecutionManager(db repositoryInterfaces.Repository, pluginRegistry *plu cloudEventPublisher: cloudEventPublisher, dbEventWriter: eventWriter, pluginRegistry: pluginRegistry, + artifactRegistry: artifactRegistry, } } diff --git a/flyteadmin/pkg/manager/impl/launch_plan_manager.go b/flyteadmin/pkg/manager/impl/launch_plan_manager.go index 2ed875d970..7944c804f3 100644 --- a/flyteadmin/pkg/manager/impl/launch_plan_manager.go +++ b/flyteadmin/pkg/manager/impl/launch_plan_manager.go @@ -3,6 +3,7 @@ package impl import ( "bytes" "context" + "github.com/flyteorg/flyte/flyteadmin/pkg/artifacts" "strconv" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin" @@ -34,10 +35,11 @@ type launchPlanMetrics struct { } type LaunchPlanManager struct { - db repoInterfaces.Repository - config runtimeInterfaces.Configuration - scheduler scheduleInterfaces.EventScheduler - metrics launchPlanMetrics + db repoInterfaces.Repository + config runtimeInterfaces.Configuration + scheduler scheduleInterfaces.EventScheduler + metrics launchPlanMetrics + artifactRegistry artifacts.ArtifactRegistry } func getLaunchPlanContext(ctx context.Context, identifier *core.Identifier) context.Context { @@ -85,6 +87,16 @@ func (m *LaunchPlanManager) CreateLaunchPlan( return nil, err } + // The presence of this field indicates that this is a trigger launch plan + // Return true and send this request over to the artifact registry instead + if launchPlan.Spec.GetEntityMetadata() != nil && launchPlan.Spec.GetEntityMetadata().GetLaunchConditions() != nil { + err := m.artifactRegistry.RegisterTrigger(ctx, &launchPlan) + if err != nil { + return nil, err + } + return &admin.LaunchPlanCreateResponse{}, nil + } + existingLaunchPlanModel, err := util.GetLaunchPlanModel(ctx, m.db, *request.Id) if err == nil { if bytes.Equal(existingLaunchPlanModel.Digest, launchPlanDigest) { @@ -111,6 +123,15 @@ func (m *LaunchPlanManager) CreateLaunchPlan( } m.metrics.SpecSizeBytes.Observe(float64(len(launchPlanModel.Spec))) m.metrics.ClosureSizeBytes.Observe(float64(len(launchPlanModel.Closure))) + go func() { + ceCtx := context.TODO() + if launchPlan.Spec.DefaultInputs == nil { + logger.Debugf(ceCtx, "Insufficient fields to submit launchplan interface %v", launchPlan.Id) + return + } + m.artifactRegistry.RegisterArtifactConsumer(ceCtx, launchPlan.Id, *launchPlan.Spec.DefaultInputs) + }() + return &admin.LaunchPlanCreateResponse{}, nil } @@ -544,7 +565,8 @@ func NewLaunchPlanManager( db repoInterfaces.Repository, config runtimeInterfaces.Configuration, scheduler scheduleInterfaces.EventScheduler, - scope promutils.Scope) interfaces.LaunchPlanInterface { + scope promutils.Scope, + artifactRegistry artifacts.ArtifactRegistry) interfaces.LaunchPlanInterface { metrics := launchPlanMetrics{ Scope: scope, @@ -554,9 +576,10 @@ func NewLaunchPlanManager( ClosureSizeBytes: scope.MustNewSummary("closure_size_bytes", "size in bytes of serialized launch plan closure"), } return &LaunchPlanManager{ - db: db, - config: config, - scheduler: scheduler, - metrics: metrics, + db: db, + config: config, + scheduler: scheduler, + metrics: metrics, + artifactRegistry: artifactRegistry, } } diff --git a/flyteadmin/pkg/manager/impl/node_execution_manager.go b/flyteadmin/pkg/manager/impl/node_execution_manager.go index cc5cbbccc3..4b058aefb8 100644 --- a/flyteadmin/pkg/manager/impl/node_execution_manager.go +++ b/flyteadmin/pkg/manager/impl/node_execution_manager.go @@ -288,7 +288,8 @@ func (m *NodeExecutionManager) CreateNodeEvent(ctx context.Context, request admi } go func() { - if err := m.cloudEventPublisher.Publish(ctx, proto.MessageName(&request), &request); err != nil { + ceCtx := context.TODO() + if err := m.cloudEventPublisher.Publish(ceCtx, proto.MessageName(&request), &request); err != nil { logger.Infof(ctx, "error publishing cloud event [%+v] with err: [%v]", request.RequestId, err) } }() diff --git a/flyteadmin/pkg/manager/impl/task_execution_manager.go b/flyteadmin/pkg/manager/impl/task_execution_manager.go index 92c2c7842c..0e6b527ccb 100644 --- a/flyteadmin/pkg/manager/impl/task_execution_manager.go +++ b/flyteadmin/pkg/manager/impl/task_execution_manager.go @@ -126,13 +126,18 @@ func (m *TaskExecutionManager) updateTaskExecutionModelState( func (m *TaskExecutionManager) CreateTaskExecutionEvent(ctx context.Context, request admin.TaskExecutionEventRequest) ( *admin.TaskExecutionEventResponse, error) { + + logger.Warningf(ctx, "HERE!!!123") + if err := validation.ValidateTaskExecutionRequest(request, m.config.ApplicationConfiguration().GetRemoteDataConfig().MaxSizeInBytes); err != nil { return nil, err } + logger.Warningf(ctx, "HERE!!!123-1") if err := validation.ValidateClusterForExecutionID(ctx, m.db, request.Event.ParentNodeExecutionId.ExecutionId, request.Event.ProducerId); err != nil { return nil, err } + logger.Warningf(ctx, "HERE!!!123-2") // Get the parent node execution, if none found a MissingEntityError will be returned nodeExecutionID := request.Event.ParentNodeExecutionId @@ -204,9 +209,12 @@ func (m *TaskExecutionManager) CreateTaskExecutionEvent(ctx context.Context, req logger.Infof(ctx, "error publishing event [%+v] with err: [%v]", request.RequestId, err) } + logger.Warningf(ctx, "HERE!!!123-3") go func() { - if err := m.cloudEventsPublisher.Publish(ctx, proto.MessageName(&request), &request); err != nil { - logger.Infof(ctx, "error publishing cloud event [%+v] with err: [%v]", request.RequestId, err) + ceCtx := context.Background() + logger.Warningf(ctx, "HERE!!!123-4") + if err := m.cloudEventsPublisher.Publish(ceCtx, proto.MessageName(&request), &request); err != nil { + logger.Errorf(ctx, "error publishing cloud event [%+v] with err: [%v]", request.RequestId, err) } }() diff --git a/flyteadmin/pkg/manager/impl/task_manager.go b/flyteadmin/pkg/manager/impl/task_manager.go index 1d1be46bb4..205ac43d6e 100644 --- a/flyteadmin/pkg/manager/impl/task_manager.go +++ b/flyteadmin/pkg/manager/impl/task_manager.go @@ -6,6 +6,7 @@ import ( "strconv" "time" + "github.com/flyteorg/flyte/flyteadmin/pkg/artifacts" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" "github.com/flyteorg/flyte/flytestdlib/contextutils" @@ -36,11 +37,12 @@ type taskMetrics struct { } type TaskManager struct { - db repoInterfaces.Repository - config runtimeInterfaces.Configuration - compiler workflowengine.Compiler - metrics taskMetrics - resourceManager interfaces.ResourceInterface + db repoInterfaces.Repository + config runtimeInterfaces.Configuration + compiler workflowengine.Compiler + metrics taskMetrics + resourceManager interfaces.ResourceInterface + artifactRegistry artifacts.ArtifactRegistry } func getTaskContext(ctx context.Context, identifier *core.Identifier) context.Context { @@ -130,6 +132,14 @@ func (t *TaskManager) CreateTask( contextWithRuntimeMeta, common.RuntimeVersionKey, finalizedRequest.Spec.Template.Metadata.Runtime.Version) t.metrics.Registered.Inc(contextWithRuntimeMeta) } + go func() { + ceCtx := context.TODO() + if finalizedRequest.Spec.Template.Interface == nil { + logger.Debugf(ceCtx, "Task [%+v] has no interface, skipping registration", finalizedRequest.Id) + return + } + t.artifactRegistry.RegisterArtifactProducer(ceCtx, finalizedRequest.Id, *finalizedRequest.Spec.Template.Interface) + }() return &admin.TaskCreateResponse{}, nil } @@ -261,7 +271,9 @@ func (t *TaskManager) ListUniqueTaskIdentifiers(ctx context.Context, request adm func NewTaskManager( db repoInterfaces.Repository, config runtimeInterfaces.Configuration, compiler workflowengine.Compiler, - scope promutils.Scope) interfaces.TaskInterface { + scope promutils.Scope, + artifactRegistry artifacts.ArtifactRegistry) interfaces.TaskInterface { + metrics := taskMetrics{ Scope: scope, ClosureSizeBytes: scope.MustNewSummary("closure_size_bytes", "size in bytes of serialized task closure"), @@ -269,10 +281,11 @@ func NewTaskManager( } resourceManager := resources.NewResourceManager(db, config.ApplicationConfiguration()) return &TaskManager{ - db: db, - config: config, - compiler: compiler, - metrics: metrics, - resourceManager: resourceManager, + db: db, + config: config, + compiler: compiler, + metrics: metrics, + resourceManager: resourceManager, + artifactRegistry: artifactRegistry, } } diff --git a/flyteadmin/pkg/manager/impl/validation/validation.go b/flyteadmin/pkg/manager/impl/validation/validation.go index 08ab29196d..348530114b 100644 --- a/flyteadmin/pkg/manager/impl/validation/validation.go +++ b/flyteadmin/pkg/manager/impl/validation/validation.go @@ -256,7 +256,7 @@ func validateParameterMap(inputMap *core.ParameterMap, fieldName string) error { "The Variable component of the Parameter %s in %s either is missing, or has a missing Type", name, fieldName) } - if defaultInput.GetDefault() == nil && !defaultInput.GetRequired() { + if defaultInput.GetDefault() == nil && defaultInput.GetArtifactQuery() == nil && !defaultInput.GetRequired() { return errors.NewFlyteAdminErrorf(codes.InvalidArgument, "Invalid variable %s in %s - variable has neither default, nor is required. "+ "One must be specified", name, fieldName) diff --git a/flyteadmin/pkg/manager/impl/workflow_manager.go b/flyteadmin/pkg/manager/impl/workflow_manager.go index 712e050e95..ce3ec00845 100644 --- a/flyteadmin/pkg/manager/impl/workflow_manager.go +++ b/flyteadmin/pkg/manager/impl/workflow_manager.go @@ -3,6 +3,7 @@ package impl import ( "bytes" "context" + "github.com/flyteorg/flyte/flyteadmin/pkg/artifacts" "strconv" "time" @@ -39,12 +40,13 @@ type workflowMetrics struct { } type WorkflowManager struct { - db repoInterfaces.Repository - config runtimeInterfaces.Configuration - compiler workflowengineInterfaces.Compiler - storageClient *storage.DataStore - storagePrefix []string - metrics workflowMetrics + db repoInterfaces.Repository + config runtimeInterfaces.Configuration + compiler workflowengineInterfaces.Compiler + storageClient *storage.DataStore + storagePrefix []string + metrics workflowMetrics + artifactRegistry artifacts.ArtifactRegistry } func getWorkflowContext(ctx context.Context, identifier *core.Identifier) context.Context { @@ -217,6 +219,17 @@ func (w *WorkflowManager) CreateWorkflow( } w.metrics.TypedInterfaceSizeBytes.Observe(float64(len(workflowModel.TypedInterface))) + // Send the interface definition to Artifact service, this is so that it can statically pick up one dimension of + // lineage information + go func() { + ceCtx := context.TODO() + if workflowClosure.CompiledWorkflow == nil || workflowClosure.CompiledWorkflow.Primary == nil { + logger.Debugf(ceCtx, "Insufficient fields to submit workflow interface %v", finalizedRequest.Id) + return + } + w.artifactRegistry.RegisterArtifactProducer(ceCtx, finalizedRequest.Id, *workflowClosure.CompiledWorkflow.Primary.Template.Interface) + }() + return &admin.WorkflowCreateResponse{}, nil } @@ -234,7 +247,7 @@ func (w *WorkflowManager) GetWorkflow(ctx context.Context, request admin.ObjectG return workflow, nil } -// Returns workflows *without* a populated workflow closure. +// ListWorkflows returns workflows *without* a populated workflow closure. func (w *WorkflowManager) ListWorkflows( ctx context.Context, request admin.ResourceListRequest) (*admin.WorkflowList, error) { // Check required fields @@ -348,7 +361,9 @@ func NewWorkflowManager( compiler workflowengineInterfaces.Compiler, storageClient *storage.DataStore, storagePrefix []string, - scope promutils.Scope) interfaces.WorkflowInterface { + scope promutils.Scope, + artifactRegistry artifacts.ArtifactRegistry) interfaces.WorkflowInterface { + metrics := workflowMetrics{ Scope: scope, CompilationFailures: scope.MustNewCounter( @@ -357,11 +372,12 @@ func NewWorkflowManager( "size in bytes of serialized workflow TypedInterface"), } return &WorkflowManager{ - db: db, - config: config, - compiler: compiler, - storageClient: storageClient, - storagePrefix: storagePrefix, - metrics: metrics, + db: db, + config: config, + compiler: compiler, + storageClient: storageClient, + storagePrefix: storagePrefix, + metrics: metrics, + artifactRegistry: artifactRegistry, } } diff --git a/flyteadmin/pkg/rpc/adminservice/base.go b/flyteadmin/pkg/rpc/adminservice/base.go index 168e24560d..946d0bd42d 100644 --- a/flyteadmin/pkg/rpc/adminservice/base.go +++ b/flyteadmin/pkg/rpc/adminservice/base.go @@ -3,6 +3,7 @@ package adminservice import ( "context" "fmt" + "github.com/flyteorg/flyte/flyteadmin/pkg/artifacts" "runtime/debug" "github.com/flyteorg/flyte/flyteadmin/plugins" @@ -14,18 +15,16 @@ import ( eventWriter "github.com/flyteorg/flyte/flyteadmin/pkg/async/events/implementations" - "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service" - - "github.com/flyteorg/flyte/flyteadmin/pkg/manager/impl/resources" - "github.com/flyteorg/flyte/flyteadmin/pkg/async/notifications" "github.com/flyteorg/flyte/flyteadmin/pkg/async/schedule" "github.com/flyteorg/flyte/flyteadmin/pkg/data" executionCluster "github.com/flyteorg/flyte/flyteadmin/pkg/executioncluster/impl" manager "github.com/flyteorg/flyte/flyteadmin/pkg/manager/impl" + "github.com/flyteorg/flyte/flyteadmin/pkg/manager/impl/resources" "github.com/flyteorg/flyte/flyteadmin/pkg/manager/interfaces" "github.com/flyteorg/flyte/flyteadmin/pkg/repositories" workflowengineImpl "github.com/flyteorg/flyte/flyteadmin/pkg/workflowengine/impl" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service" "github.com/flyteorg/flyte/flytestdlib/logger" "github.com/flyteorg/flyte/flytestdlib/promutils" "github.com/flyteorg/flyte/flytestdlib/storage" @@ -47,6 +46,7 @@ type AdminService struct { DescriptionEntityManager interfaces.DescriptionEntityInterface MetricsManager interfaces.MetricsInterface Metrics AdminMetrics + Artifacts artifacts.ArtifactRegistry } // Intercepts all admin requests to handle panics during execution. @@ -101,7 +101,6 @@ func NewAdminServer(ctx context.Context, pluginRegistry *plugins.Registry, confi publisher := notifications.NewNotificationsPublisher(*configuration.ApplicationConfiguration().GetNotificationsConfig(), adminScope) processor := notifications.NewNotificationsProcessor(*configuration.ApplicationConfiguration().GetNotificationsConfig(), adminScope) eventPublisher := notifications.NewEventsPublisher(*configuration.ApplicationConfiguration().GetExternalEventsConfig(), adminScope) - cloudEventPublisher := cloudevent.NewCloudEventsPublisher(ctx, *configuration.ApplicationConfiguration().GetCloudEventsConfig(), adminScope) go func() { logger.Info(ctx, "Started processing notifications.") processor.StartProcessing() @@ -116,8 +115,11 @@ func NewAdminServer(ctx context.Context, pluginRegistry *plugins.Registry, confi }) eventScheduler := workflowScheduler.GetEventScheduler() + + artifactRegistry := artifacts.NewArtifactRegistry(ctx, configuration.ApplicationConfiguration().GetArtifactsConfig()) + launchPlanManager := manager.NewLaunchPlanManager( - repo, configuration, eventScheduler, adminScope.NewSubScope("launch_plan_manager")) + repo, configuration, eventScheduler, adminScope.NewSubScope("launch_plan_manager"), artifactRegistry) // Configure admin-specific remote data handler (separate from storage) remoteDataConfig := configuration.ApplicationConfiguration().GetRemoteDataConfig() @@ -130,9 +132,11 @@ func NewAdminServer(ctx context.Context, pluginRegistry *plugins.Registry, confi RemoteDataStoreClient: dataStorageClient, }).GetRemoteURLInterface() + cloudEventPublisher := cloudevent.NewCloudEventsPublisher(ctx, repo, dataStorageClient, urlData, *configuration.ApplicationConfiguration().GetCloudEventsConfig(), *configuration.ApplicationConfiguration().GetRemoteDataConfig(), adminScope) + workflowManager := manager.NewWorkflowManager( repo, configuration, workflowengineImpl.NewCompiler(), dataStorageClient, applicationConfiguration.GetMetadataStoragePrefix(), - adminScope.NewSubScope("workflow_manager")) + adminScope.NewSubScope("workflow_manager"), artifactRegistry) namedEntityManager := manager.NewNamedEntityManager(repo, configuration, adminScope.NewSubScope("named_entity_manager")) descriptionEntityManager := manager.NewDescriptionEntityManager(repo, configuration, adminScope.NewSubScope("description_entity_manager")) @@ -143,7 +147,7 @@ func NewAdminServer(ctx context.Context, pluginRegistry *plugins.Registry, confi executionManager := manager.NewExecutionManager(repo, pluginRegistry, configuration, dataStorageClient, adminScope.NewSubScope("execution_manager"), adminScope.NewSubScope("user_execution_metrics"), - publisher, urlData, workflowManager, namedEntityManager, eventPublisher, cloudEventPublisher, executionEventWriter) + publisher, urlData, workflowManager, namedEntityManager, eventPublisher, cloudEventPublisher, executionEventWriter, artifactRegistry) versionManager := manager.NewVersionManager() scheduledWorkflowExecutor := workflowScheduler.GetWorkflowExecutor(executionManager, launchPlanManager) @@ -166,7 +170,7 @@ func NewAdminServer(ctx context.Context, pluginRegistry *plugins.Registry, confi logger.Info(ctx, "Initializing a new AdminService") return &AdminService{ TaskManager: manager.NewTaskManager(repo, configuration, workflowengineImpl.NewCompiler(), - adminScope.NewSubScope("task_manager")), + adminScope.NewSubScope("task_manager"), artifactRegistry), WorkflowManager: workflowManager, LaunchPlanManager: launchPlanManager, ExecutionManager: executionManager, @@ -179,6 +183,7 @@ func NewAdminServer(ctx context.Context, pluginRegistry *plugins.Registry, confi ResourceManager: resources.NewResourceManager(repo, configuration.ApplicationConfiguration()), MetricsManager: manager.NewMetricsManager(workflowManager, executionManager, nodeExecutionManager, taskExecutionManager, adminScope.NewSubScope("metrics_manager")), - Metrics: InitMetrics(adminScope), + Metrics: InitMetrics(adminScope), + Artifacts: artifactRegistry, } } diff --git a/flyteadmin/pkg/runtime/application_config_provider.go b/flyteadmin/pkg/runtime/application_config_provider.go index a16c27e694..58cbdcdffb 100644 --- a/flyteadmin/pkg/runtime/application_config_provider.go +++ b/flyteadmin/pkg/runtime/application_config_provider.go @@ -1,6 +1,7 @@ package runtime import ( + artifactsClient "github.com/flyteorg/flyte/flyteadmin/pkg/artifacts" "github.com/flyteorg/flyte/flyteadmin/pkg/common" "github.com/flyteorg/flyte/flyteadmin/pkg/runtime/interfaces" "github.com/flyteorg/flyte/flytestdlib/config" @@ -15,6 +16,7 @@ const notifications = "notifications" const domains = "domains" const externalEvents = "externalEvents" const cloudEvents = "cloudEvents" +const artifact = "artifacts" const metricPort = 10254 const KB = 1024 @@ -84,6 +86,8 @@ var cloudEventsConfig = config.MustRegisterSection(cloudEvents, &interfaces.Clou Type: common.Local, }) +var artifactsConfig = config.MustRegisterSection(artifact, &artifactsClient.Config{}) + // Implementation of an interfaces.ApplicationConfiguration type ApplicationConfigurationProvider struct{} @@ -119,6 +123,10 @@ func (p *ApplicationConfigurationProvider) GetCloudEventsConfig() *interfaces.Cl return cloudEventsConfig.GetConfig().(*interfaces.CloudEventsConfig) } +func (p *ApplicationConfigurationProvider) GetArtifactsConfig() *artifactsClient.Config { + return artifactsConfig.GetConfig().(*artifactsClient.Config) +} + func NewApplicationConfigurationProvider() interfaces.ApplicationConfiguration { return &ApplicationConfigurationProvider{} } diff --git a/flyteadmin/pkg/runtime/interfaces/application_configuration.go b/flyteadmin/pkg/runtime/interfaces/application_configuration.go index e24f6b16d2..b24d831e6e 100644 --- a/flyteadmin/pkg/runtime/interfaces/application_configuration.go +++ b/flyteadmin/pkg/runtime/interfaces/application_configuration.go @@ -1,6 +1,7 @@ package interfaces import ( + artifactsClient "github.com/flyteorg/flyte/flyteadmin/pkg/artifacts" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" "github.com/flyteorg/flyte/flytestdlib/config" @@ -226,6 +227,23 @@ type KafkaConfig struct { Brokers []string `json:"brokers"` } +// RedisConfig is basically a subset of the client options in the Redis library +type RedisConfig struct { + // host:port address. + Addr string `json:"addr"` + // Use the specified Username to authenticate the current connection + // with one of the connections defined in the ACL list when connecting + // to a Redis 6.0 instance, or greater, that is using the Redis ACL system. + Username string `json:"username"` + // Optional password. Must match the password specified in the + // requirepass server configuration option (if connecting to a Redis 5.0 instance, or lower), + // or the User Password when connecting to a Redis 6.0 instance, or greater, + // that is using the Redis ACL system. + Password string `json:"password"` + // Database to be selected after connecting to the server. + DB int `json:"db"` +} + // This section holds configuration for the event scheduler used to schedule workflow executions. type EventSchedulerConfig struct { // Defines the cloud provider that backs the scheduler. In the absence of a specification the no-op, 'local' @@ -518,6 +536,17 @@ type ExternalEventsConfig struct { ReconnectDelaySeconds int `json:"reconnectDelaySeconds"` } +//go:generate enumer -type=CloudEventVersion -json -yaml -trimprefix=CloudEventVersion +type CloudEventVersion uint8 + +const ( + // This is the initial version of the cloud events + CloudEventVersionv1 CloudEventVersion = iota + + // Version 2 of the cloud events add a lot more information into the event + CloudEventVersionv2 +) + type CloudEventsConfig struct { Enable bool `json:"enable"` // Defines the cloud provider that backs the scheduler. In the absence of a specification the no-op, 'local' @@ -526,12 +555,15 @@ type CloudEventsConfig struct { AWSConfig AWSConfig `json:"aws"` GCPConfig GCPConfig `json:"gcp"` KafkaConfig KafkaConfig `json:"kafka"` + RedisConfig RedisConfig `json:"redis"` // Publish events to a pubsub tops EventsPublisherConfig EventsPublisherConfig `json:"eventsPublisher"` // Number of times to attempt recreating a notifications processor client should there be any disruptions. ReconnectAttempts int `json:"reconnectAttempts"` // Specifies the time interval to wait before attempting to reconnect the notifications processor client. ReconnectDelaySeconds int `json:"reconnectDelaySeconds"` + // Transform the raw events into the fuller cloudevent events before publishing + CloudEventVersion CloudEventVersion `json:"cloudEventVersion"` } // Configuration specific to notifications handling @@ -572,4 +604,5 @@ type ApplicationConfiguration interface { GetDomainsConfig() *DomainsConfig GetExternalEventsConfig() *ExternalEventsConfig GetCloudEventsConfig() *CloudEventsConfig + GetArtifactsConfig() *artifactsClient.Config } diff --git a/flyteadmin/pkg/runtime/interfaces/cloudeventversion_enumer.go b/flyteadmin/pkg/runtime/interfaces/cloudeventversion_enumer.go new file mode 100644 index 0000000000..5ec7e3dc87 --- /dev/null +++ b/flyteadmin/pkg/runtime/interfaces/cloudeventversion_enumer.go @@ -0,0 +1,84 @@ +// Code generated by "enumer -type=CloudEventVersion -json -yaml -trimprefix=CloudEventVersion"; DO NOT EDIT. + +package interfaces + +import ( + "encoding/json" + "fmt" +) + +const _CloudEventVersionName = "v1v2" + +var _CloudEventVersionIndex = [...]uint8{0, 2, 4} + +func (i CloudEventVersion) String() string { + if i >= CloudEventVersion(len(_CloudEventVersionIndex)-1) { + return fmt.Sprintf("CloudEventVersion(%d)", i) + } + return _CloudEventVersionName[_CloudEventVersionIndex[i]:_CloudEventVersionIndex[i+1]] +} + +var _CloudEventVersionValues = []CloudEventVersion{0, 1} + +var _CloudEventVersionNameToValueMap = map[string]CloudEventVersion{ + _CloudEventVersionName[0:2]: 0, + _CloudEventVersionName[2:4]: 1, +} + +// CloudEventVersionString retrieves an enum value from the enum constants string name. +// Throws an error if the param is not part of the enum. +func CloudEventVersionString(s string) (CloudEventVersion, error) { + if val, ok := _CloudEventVersionNameToValueMap[s]; ok { + return val, nil + } + return 0, fmt.Errorf("%s does not belong to CloudEventVersion values", s) +} + +// CloudEventVersionValues returns all values of the enum +func CloudEventVersionValues() []CloudEventVersion { + return _CloudEventVersionValues +} + +// IsACloudEventVersion returns "true" if the value is listed in the enum definition. "false" otherwise +func (i CloudEventVersion) IsACloudEventVersion() bool { + for _, v := range _CloudEventVersionValues { + if i == v { + return true + } + } + return false +} + +// MarshalJSON implements the json.Marshaler interface for CloudEventVersion +func (i CloudEventVersion) MarshalJSON() ([]byte, error) { + return json.Marshal(i.String()) +} + +// UnmarshalJSON implements the json.Unmarshaler interface for CloudEventVersion +func (i *CloudEventVersion) UnmarshalJSON(data []byte) error { + var s string + if err := json.Unmarshal(data, &s); err != nil { + return fmt.Errorf("CloudEventVersion should be a string, got %s", data) + } + + var err error + *i, err = CloudEventVersionString(s) + return err +} + +// MarshalYAML implements a YAML Marshaler for CloudEventVersion +func (i CloudEventVersion) MarshalYAML() (interface{}, error) { + return i.String(), nil +} + +// UnmarshalYAML implements a YAML Unmarshaler for CloudEventVersion +func (i *CloudEventVersion) UnmarshalYAML(unmarshal func(interface{}) error) error { + var s string + if err := unmarshal(&s); err != nil { + return err + } + + var err error + *i, err = CloudEventVersionString(s) + return err +} diff --git a/flyteartifacts/Makefile b/flyteartifacts/Makefile new file mode 100644 index 0000000000..fbbfa915dd --- /dev/null +++ b/flyteartifacts/Makefile @@ -0,0 +1,6 @@ + +.PHONY: linux_compile +linux_compile: export CGO_ENABLED ?= 0 +linux_compile: export GOOS ?= linux +linux_compile: + go build -o /artifacts/flyteadmin -ldflags=$(LD_FLAGS) ./cmd/ diff --git a/flyteartifacts/artifact_config.yaml b/flyteartifacts/artifact_config.yaml new file mode 100644 index 0000000000..c0584c8091 --- /dev/null +++ b/flyteartifacts/artifact_config.yaml @@ -0,0 +1,8 @@ +# This is an (incomplete) configure file for the artifact service, here just as an example. +#artifactsServer: +# database: +# postgres: +# dbname: your pg db +#logger: +# level: 5 +# show-source: true diff --git a/flyteartifacts/cmd/main.go b/flyteartifacts/cmd/main.go new file mode 100644 index 0000000000..afbc88eef6 --- /dev/null +++ b/flyteartifacts/cmd/main.go @@ -0,0 +1,33 @@ +package main + +import ( + "context" + sharedCmd "github.com/flyteorg/flyte/flyteartifacts/cmd/shared" + "github.com/flyteorg/flyte/flyteartifacts/pkg/server" + "github.com/flyteorg/flyte/flytestdlib/contextutils" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/flyteorg/flyte/flytestdlib/promutils/labeled" + "github.com/flyteorg/flyte/flytestdlib/storage" + + _ "net/http/pprof" // Required to serve application. +) + +func main() { + ctx := context.Background() + logger.Infof(ctx, "Beginning Flyte Artifacts Service") + rootCmd := sharedCmd.NewRootCmd("artifacts", server.GrpcRegistrationHook, server.HttpRegistrationHook) + migs := server.GetMigrations(ctx) + initializationSql := "create extension if not exists hstore;" + dbConfig := server.GetDbConfig() + rootCmd.AddCommand(sharedCmd.NewMigrateCmd(migs, dbConfig, initializationSql)) + err := rootCmd.ExecuteContext(ctx) + if err != nil { + panic(err) + } +} + +func init() { + // Set Keys + labeled.SetMetricKeys(contextutils.AppNameKey, contextutils.ProjectKey, + contextutils.DomainKey, storage.FailureTypeLabel) +} diff --git a/flyteartifacts/cmd/shared/migrate.go b/flyteartifacts/cmd/shared/migrate.go new file mode 100644 index 0000000000..843f6e881f --- /dev/null +++ b/flyteartifacts/cmd/shared/migrate.go @@ -0,0 +1,19 @@ +package shared + +import ( + "context" + "github.com/flyteorg/flyte/flytestdlib/database" + "github.com/go-gormigrate/gormigrate/v2" + "github.com/spf13/cobra" +) + +// NewMigrateCmd represents the migrate command +func NewMigrateCmd(migs []*gormigrate.Migration, databaseConfig *database.DbConfig, initializationSql string) *cobra.Command { + return &cobra.Command{ + Use: "migrate", + Short: "This command will run all the migrations for the database", + RunE: func(cmd *cobra.Command, args []string) error { + return database.Migrate(context.Background(), databaseConfig, migs, initializationSql) + }, + } +} diff --git a/flyteartifacts/cmd/shared/root.go b/flyteartifacts/cmd/shared/root.go new file mode 100644 index 0000000000..8bc0390c30 --- /dev/null +++ b/flyteartifacts/cmd/shared/root.go @@ -0,0 +1,91 @@ +package shared + +import ( + "context" + "flag" + "fmt" + "github.com/flyteorg/flyte/flyteartifacts/pkg/configuration" + "github.com/flyteorg/flyte/flytestdlib/config" + "github.com/flyteorg/flyte/flytestdlib/config/viper" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/flyteorg/flyte/flytestdlib/profutils" + "github.com/spf13/cobra" + "github.com/spf13/pflag" + "os" +) + +var ( + cfgFile string + configAccessor = viper.NewAccessor(config.Options{}) +) + +// NewRootCmd represents the base command when called without any subcommands +func NewRootCmd(rootUse string, grpcHook GrpcRegistrationHook, httpHook HttpRegistrationHook) *cobra.Command { + rootCmd := &cobra.Command{ + Use: rootUse, + Short: "Short description", + Long: "Long description to be filled in later", + PersistentPreRunE: func(cmd *cobra.Command, args []string) error { + err := initConfig(cmd, args) + if err != nil { + return err + } + + go func() { + ctx := context.Background() + metricsCfg := configuration.GetApplicationConfig().ArtifactServerConfig.Metrics + err := profutils.StartProfilingServerWithDefaultHandlers(ctx, + metricsCfg.Port.Port, nil) + if err != nil { + logger.Panicf(ctx, "Failed to Start profiling and metrics server. Error: %v", err) + } + }() + + return nil + }, + } + + initSubCommands(rootCmd, grpcHook, httpHook) + return rootCmd +} + +func initConfig(cmd *cobra.Command, _ []string) error { + configAccessor = viper.NewAccessor(config.Options{ + SearchPaths: []string{cfgFile, ".", "/etc/flyte/config", "$GOPATH/src/github.com/flyteorg/flyte/flyteartifacts"}, + StrictMode: false, + }) + + fmt.Println("Using config file: ", configAccessor.ConfigFilesUsed()) + + // persistent flags were initially bound to the root command so we must bind to the same command to avoid + // overriding those initial ones. We need to traverse up to the root command and initialize pflags for that. + rootCmd := cmd + for rootCmd.Parent() != nil { + rootCmd = rootCmd.Parent() + } + + configAccessor.InitializePflags(rootCmd.PersistentFlags()) + + return configAccessor.UpdateConfig(context.TODO()) +} + +func initSubCommands(rootCmd *cobra.Command, grpcHook GrpcRegistrationHook, httpHook HttpRegistrationHook) { + // allows ` --logtostderr` to work + pflag.CommandLine.AddGoFlagSet(flag.CommandLine) + + // Add persistent flags - persistent flags persist through all sub-commands + rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "artifact_config.yaml", "config file (default is ./artifact_config.yaml)") + + rootCmd.AddCommand(viper.GetConfigCommand()) + cfg := configuration.GetApplicationConfig() + rootCmd.AddCommand(NewServeCmd(rootCmd.Use, cfg.ArtifactServerConfig, grpcHook, httpHook)) + + // Allow viper to read the value of the flags + configAccessor.InitializePflags(rootCmd.PersistentFlags()) + + err := flag.CommandLine.Parse([]string{}) + if err != nil { + fmt.Println(err) + os.Exit(-1) + } +} diff --git a/flyteartifacts/cmd/shared/serve.go b/flyteartifacts/cmd/shared/serve.go new file mode 100644 index 0000000000..9a3a3e8411 --- /dev/null +++ b/flyteartifacts/cmd/shared/serve.go @@ -0,0 +1,211 @@ +package shared + +import ( + "context" + "google.golang.org/grpc/reflection" + "net" + "net/http" + + sharedCfg "github.com/flyteorg/flyte/flyteartifacts/pkg/configuration/shared" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/flyteorg/flyte/flytestdlib/promutils" + grpcMiddleware "github.com/grpc-ecosystem/go-grpc-middleware" + grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/pkg/errors" + "github.com/spf13/cobra" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/health" + "google.golang.org/grpc/health/grpc_health_v1" +) + +func NewServeCmd(commandName string, serverCfg sharedCfg.ServerConfiguration, grpcHook GrpcRegistrationHook, httpHook HttpRegistrationHook) *cobra.Command { + // serveCmd represents the serve command + return &cobra.Command{ + Use: "serve", + Short: "Launches the server", + RunE: func(cmd *cobra.Command, args []string) error { + ctx := context.Background() + return ServeGateway(ctx, commandName, &serverCfg, grpcHook, httpHook) + }, + } +} + +// Creates a new gRPC Server with all the configuration +func newGRPCServer(ctx context.Context, serviceName string, serverCfg *sharedCfg.ServerConfiguration, + grpcHook GrpcRegistrationHook, opts ...grpc.ServerOption) (*grpc.Server, error) { + + scope := promutils.NewScope(serverCfg.Metrics.MetricsScope) + scope = scope.NewSubScope(serviceName) + + var grpcUnaryInterceptors = make([]grpc.UnaryServerInterceptor, 0) + var streamServerInterceptors = make([]grpc.StreamServerInterceptor, 0) + + serverOpts := []grpc.ServerOption{ + grpc.StreamInterceptor(grpcPrometheus.StreamServerInterceptor), + grpc.UnaryInterceptor(grpcMiddleware.ChainUnaryServer( + grpcUnaryInterceptors..., + )), + grpc.ChainStreamInterceptor( + streamServerInterceptors..., + ), + } + + serverOpts = append(serverOpts, opts...) + + grpcServer := grpc.NewServer(serverOpts...) + grpcPrometheus.Register(grpcServer) + if grpcHook != nil { + err := grpcHook(ctx, grpcServer, scope) + if err != nil { + return nil, err + } + } + + healthServer := health.NewServer() + healthServer.SetServingStatus(serviceName, grpc_health_v1.HealthCheckResponse_SERVING) + grpc_health_v1.RegisterHealthServer(grpcServer, healthServer) + if serverCfg.GrpcServerReflection { + reflection.Register(grpcServer) + } + + return grpcServer, nil +} + +// ServeGateway launches the grpc and http servers. +func ServeGateway(ctx context.Context, serviceName string, serverCfg *sharedCfg.ServerConfiguration, grpcHook GrpcRegistrationHook, httpHook HttpRegistrationHook) error { + + if grpcHook != nil { + if err := launchGrpcServer(ctx, serviceName, serverCfg, grpcHook); err != nil { + return err + } + } + + if httpHook != nil { + if err := launchHttpServer(ctx, serverCfg, httpHook); err != nil { + return err + } + } + + for { + <-ctx.Done() + return nil + } +} + +// launchGrpcServer launches grpc server with server config and also registers the grpc hook for the service. +func launchGrpcServer(ctx context.Context, serviceName string, serverCfg *sharedCfg.ServerConfiguration, grpcHook GrpcRegistrationHook) error { + var grpcServer *grpc.Server + if serverCfg.Security.Secure { + tlsCreds, err := credentials.NewServerTLSFromFile(serverCfg.Security.Ssl.CertificateFile, serverCfg.Security.Ssl.KeyFile) + if err != nil { + return err + } + + grpcServer, err = newGRPCServer(ctx, serviceName, serverCfg, grpcHook, grpc.Creds(tlsCreds)) + if err != nil { + return errors.Wrap(err, "failed to create secure GRPC server") + } + } else { + var err error + grpcServer, err = newGRPCServer(ctx, serviceName, serverCfg, grpcHook) + if err != nil { + return errors.Wrap(err, "failed to create GRPC server") + } + } + + return listenAndServe(ctx, grpcServer, serverCfg.GetGrpcHostAddress()) +} + +// listenAndServe on the grpcHost address and serve connections using the grpcServer +func listenAndServe(ctx context.Context, grpcServer *grpc.Server, grpcHost string) error { + conn, err := net.Listen("tcp", grpcHost) + if err != nil { + panic(err) + } + + go func() { + if err := grpcServer.Serve(conn); err != nil { + logger.Fatalf(ctx, "Failed to create GRPC Server, Err: ", err) + } + + logger.Infof(ctx, "Serving GRPC Gateway server on: %v", grpcHost) + }() + return nil +} + +// launchHttpServer launches an http server for converting REST calls to grpc internally +func launchHttpServer(ctx context.Context, cfg *sharedCfg.ServerConfiguration, httpHook HttpRegistrationHook) error { + logger.Infof(ctx, "Starting HTTP/1 Gateway server on %s", cfg.GetHttpHostAddress()) + + httpServer, serverMux, err := newHTTPServer(cfg.Security) + if err != nil { + return err + } + + if err = registerHttpHook(ctx, serverMux, cfg.GetGrpcHostAddress(), uint32(cfg.GrpcMaxResponseStatusBytes), httpHook, promutils.NewScope(cfg.Metrics.MetricsScope)); err != nil { + return err + } + + handler := getHTTPHandler(httpServer, cfg.Security) + + go func() { + err = http.ListenAndServe(cfg.GetHttpHostAddress(), handler) + if err != nil { + logger.Fatalf(ctx, "Failed to Start HTTP Server, Err: %v", err) + } + + logger.Infof(ctx, "Serving HTTP/1 on: %v", cfg.GetHttpHostAddress()) + }() + return nil +} + +// getHTTPHandler gets the http handler for the configured security options +func getHTTPHandler(httpServer *http.ServeMux, _ sharedCfg.ServerSecurityOptions) http.Handler { + // not really used yet (reserved for admin) + var handler http.Handler + handler = httpServer + return handler +} + +// registerHttpHook registers the http hook for a service which multiplexes to the grpc endpoint for that service. +func registerHttpHook(ctx context.Context, gwmux *runtime.ServeMux, grpcHost string, maxResponseStatusBytes uint32, httpHook HttpRegistrationHook, scope promutils.Scope) error { + if httpHook == nil { + return nil + } + grpcOptions := []grpc.DialOption{ + grpc.WithInsecure(), + grpc.WithMaxHeaderListSize(maxResponseStatusBytes), + } + + return httpHook(ctx, gwmux, grpcHost, grpcOptions, scope) +} + +func healthCheckFunc(w http.ResponseWriter, _ *http.Request) { + w.WriteHeader(http.StatusOK) +} + +// newHTTPServer creates a new http sever +func newHTTPServer(_ sharedCfg.ServerSecurityOptions) (*http.ServeMux, *runtime.ServeMux, error) { + // Register the server that will serve HTTP/REST Traffic + mux := http.NewServeMux() + + // Register healthcheck + mux.HandleFunc("/healthcheck", healthCheckFunc) + + var gwmuxOptions = make([]runtime.ServeMuxOption, 0) + // This option means that http requests are served with protobufs, instead of json. We always want this. + gwmuxOptions = append(gwmuxOptions, runtime.WithMarshalerOption("application/octet-stream", &runtime.ProtoMarshaller{})) + + // Create the grpc-gateway server with the options specified + gwmux := runtime.NewServeMux(gwmuxOptions...) + + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + ctx := r.Context() + logger.Debugf(ctx, "Running identity interceptor for http endpoint [%s]", r.URL.String()) + + gwmux.ServeHTTP(w, r.WithContext(ctx)) + }) + return mux, gwmux, nil +} diff --git a/flyteartifacts/cmd/shared/types.go b/flyteartifacts/cmd/shared/types.go new file mode 100644 index 0000000000..be1878a6d3 --- /dev/null +++ b/flyteartifacts/cmd/shared/types.go @@ -0,0 +1,11 @@ +package shared + +import ( + "context" + "github.com/flyteorg/flyte/flytestdlib/promutils" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "google.golang.org/grpc" +) + +type GrpcRegistrationHook func(ctx context.Context, server *grpc.Server, scope promutils.Scope) error +type HttpRegistrationHook func(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption, scope promutils.Scope) error diff --git a/flyteartifacts/go.mod b/flyteartifacts/go.mod new file mode 100644 index 0000000000..ab515168e2 --- /dev/null +++ b/flyteartifacts/go.mod @@ -0,0 +1,118 @@ +module github.com/flyteorg/flyte/flyteartifacts + +go 1.19 + +require ( + github.com/NYTimes/gizmo v1.3.6 + github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.14.0 + github.com/flyteorg/flyte/flyteidl v0.0.0-00010101000000-000000000000 + github.com/flyteorg/flyte/flytestdlib v1.9.5 + github.com/go-gormigrate/gormigrate/v2 v2.1.1 + github.com/golang/protobuf v1.5.3 + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 + github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 + github.com/grpc-ecosystem/grpc-gateway v1.16.0 + github.com/jackc/pgx/v5 v5.4.3 + github.com/pkg/errors v0.9.1 + github.com/prometheus/client_golang v1.12.1 + github.com/spf13/cobra v1.4.0 + github.com/spf13/pflag v1.0.5 + github.com/stretchr/testify v1.8.4 + google.golang.org/grpc v1.56.1 + gorm.io/gorm v1.25.5 +) + +require ( + cloud.google.com/go v0.110.0 // indirect + 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 + 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 + github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.0 // indirect + github.com/Azure/go-autorest v14.2.0+incompatible // indirect + github.com/Azure/go-autorest/autorest v0.11.27 // indirect + github.com/Azure/go-autorest/autorest/adal v0.9.18 // indirect + 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/aws/aws-sdk-go v1.44.2 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737 // indirect + github.com/cespare/xxhash v1.1.0 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cloudevents/sdk-go/v2 v2.14.0 // indirect + github.com/coocood/freecache v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.1 // 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/ghodss/yaml v1.0.0 // indirect + github.com/go-logr/logr v1.2.3 // indirect + github.com/gofrs/uuid v4.2.0+incompatible // 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 + 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/hashicorp/hcl v1.0.0 // indirect + github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/jackc/pgpassfile v1.0.0 // indirect + github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect + github.com/jinzhu/inflection v1.0.0 // indirect + github.com/jinzhu/now v1.1.5 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/kelseyhightower/envconfig v1.4.0 // indirect + github.com/magiconair/properties v1.8.6 // indirect + github.com/mattn/go-colorable v0.1.12 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // 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/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 + 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/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/jwalterweatherman v1.1.0 // indirect + 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.13.0 // indirect + golang.org/x/net v0.15.0 // indirect + golang.org/x/oauth2 v0.7.0 // indirect + golang.org/x/sys v0.12.0 // indirect + golang.org/x/text v0.13.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 + google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect + google.golang.org/protobuf v1.30.0 // 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 + gorm.io/driver/postgres v1.5.3 // indirect + gorm.io/driver/sqlite v1.5.4 // indirect + k8s.io/apimachinery v0.24.1 // indirect + k8s.io/client-go v0.24.1 // indirect + k8s.io/klog/v2 v2.90.1 // indirect + k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect +) + +replace ( + github.com/flyteorg/flyte/flyteidl => ../flyteidl + github.com/flyteorg/flyte/flytestdlib => ../flytestdlib + github.com/robfig/cron/v3 => github.com/unionai/cron/v3 v3.0.2-0.20220915080349-5790c370e63a +) diff --git a/flyteartifacts/go.sum b/flyteartifacts/go.sum new file mode 100644 index 0000000000..b2788b31e9 --- /dev/null +++ b/flyteartifacts/go.sum @@ -0,0 +1,969 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +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= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/compute v1.19.1 h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY= +cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/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/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/logging v1.0.0/go.mod h1:V1cc3ogwobYzQq5f2R7DS/GvRIrI4FKj01Gs5glwAls= +cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +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= +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= +github.com/Azure/azure-sdk-for-go v63.4.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go/sdk/azcore v0.23.1 h1:3CVsSo4mp8NDWO11tHzN/mdo2zP0CtaSK5IcwBjfqRA= +github.com/Azure/azure-sdk-for-go/sdk/azcore v0.23.1/go.mod h1:w5pDIZuawUmY3Bj4tVx3Xb8KS96ToB0j315w9rqpAg0= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.14.0 h1:NVS/4LOQfkBpk+B1VopIzv1ptmYeEskA8w/3K/w7vjo= +github.com/Azure/azure-sdk-for-go/sdk/internal v0.9.2 h1:Px2KVERcYEg2Lv25AqC2hVr0xUWaq94wuEObLIkYzmA= +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-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= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +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.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= +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= +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/DataDog/datadog-go v3.4.1+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/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/logrotate v1.0.0/go.mod h1:GxNz1cSw1c6t99PXoZlw+nm90H6cyQyrH66pjVv7x88= +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/Shopify/sarama v1.26.4/go.mod h1:NbSGBSSndYaIhRcBtY9V0U7AyH+x71bG668AuWys/yU= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +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/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +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.44.2 h1:5VBk5r06bgxgRKVaUtm1/4NT/rtrnH2E4cnAYv5zgQc= +github.com/aws/aws-sdk-go v1.44.2/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +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/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737 h1:rRISKWyXfVxvoa702s91Zl5oREZTrR3yv+tXrrX7G/g= +github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60= +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= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.14.0 h1:dEopBSOSjB5fM9r76ufM44AVj9Dnz2IOM0Xs6FVxZRM= +github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.14.0/go.mod h1:qDSbb0fgIfFNjZrNTPtS5MOMScAGyQtn1KlSvoOdqYw= +github.com/cloudevents/sdk-go/v2 v2.14.0 h1:Nrob4FwVgi5L4tV9lhjzZcjYqFVyJzsA56CwPaPfv6s= +github.com/cloudevents/sdk-go/v2 v2.14.0/go.mod h1:xDmKfzNjM8gBvjaF8ijFjM1VYOVUEeUfapHMUX1T5To= +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/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/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/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +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/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.12.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/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= +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 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= +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-gormigrate/gormigrate/v2 v2.1.1 h1:eGS0WTFRV30r103lU8JNXY27KbviRnqqIDobW3EV3iY= +github.com/go-gormigrate/gormigrate/v2 v2.1.1/go.mod h1:L7nJ620PFDKei9QOhJzqA8kRCk+E3UbV2f5gv+1ndLc= +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 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-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/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/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-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +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.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/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +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= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +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 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= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +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.1/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/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= +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= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.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= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-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/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +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= +github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +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/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= +github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +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.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= +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.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +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/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= +github.com/jackc/pgconn v1.14.1 h1:smbxIaZA08n6YuxEX1sDyjV/qkbtUtkH20qLkR9MUR4= +github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgproto3/v2 v2.3.2 h1:7eY55bdBeCz1F2fTzSz69QC+pG46jYq9/jtSPiJ5nn0= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.4.3 h1:cxFyXhxlvAifxnkKKdlxv8XqUf59tDlYjnV5YYfsJJY= +github.com/jackc/pgx/v5 v5.4.3/go.mod h1:Ig06C2Vu0t5qXC60W8sqIthScaEnFvojjj9dSljmHRA= +github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= +github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= +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/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= +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/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= +github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +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/klauspost/compress v1.9.8/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +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.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +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.6/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= +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-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= +github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +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/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 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/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/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/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.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +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/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +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/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/pierrec/lz4 v2.4.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +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_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/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.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/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +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= +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/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= +github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +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 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/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.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= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +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/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +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.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.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= +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.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +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/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.18.1 h1:CSUJ2mjFszzEWt4CdKISEuChVIXGBn3lAPwkRGyVrc4= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/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-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-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/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.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +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= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +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= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +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/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= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +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/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= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/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-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-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= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +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= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +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-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.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +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= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +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/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= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +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-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= +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-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-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-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= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +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= +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-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-20211025201205-69cdffdb9359/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.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/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-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.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= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/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= +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-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-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-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-20191108193012-7d206e10da11/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= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +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= +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= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +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/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/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= +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= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.25.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +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= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190708153700-3bdd9d9f5532/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-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/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= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.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= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +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= +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/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/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/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= +gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= +gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= +gopkg.in/jcmturner/gokrb5.v7 v7.5.0/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= +gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= +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.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-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.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gorm.io/driver/postgres v1.5.3 h1:qKGY5CPHOuj47K/VxbCXJfFvIUeqMSXXadqdCY+MbBU= +gorm.io/driver/postgres v1.5.3/go.mod h1:F+LtvlFhZT7UBiA81mC9W6Su3D4WUhSboc/36QZU0gk= +gorm.io/driver/sqlite v1.5.4 h1:IqXwXi8M/ZlPzH/947tn5uik3aYQslP9BVveoax0nV0= +gorm.io/driver/sqlite v1.5.4/go.mod h1:qxAuCol+2r6PannQDpOP1FP6ag3mKi4esLnB/jHed+4= +gorm.io/gorm v1.25.5 h1:zR9lOiiYf09VNh5Q1gphfyia1JpiClIWG9hQaxB/mls= +gorm.io/gorm v1.25.5/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +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= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +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.24.1/go.mod h1:JhoOvNiLXKTPQ60zh2g0ewpA+bnEYf5q44Flhquh4vQ= +k8s.io/apimachinery v0.24.1 h1:ShD4aDxTQKN5zNf8K1RQ2u98ELLdIW7jEnlO9uAMX/I= +k8s.io/apimachinery v0.24.1/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= +k8s.io/client-go v0.24.1 h1:w1hNdI9PFrzu3OlovVeTnf4oHDt+FJLd9Ndluvnb42E= +k8s.io/client-go v0.24.1/go.mod h1:f1kIDqcEYmwXS/vTbbhopMUbhKp2JhOeVTfxgaCIlF8= +k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/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/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= +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/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY= +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/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/flyteartifacts/pkg/blob/artifact_blob_store.go b/flyteartifacts/pkg/blob/artifact_blob_store.go new file mode 100644 index 0000000000..36a9c30518 --- /dev/null +++ b/flyteartifacts/pkg/blob/artifact_blob_store.go @@ -0,0 +1,51 @@ +package blob + +import ( + "context" + "fmt" + "github.com/flyteorg/flyte/flyteartifacts/pkg/configuration" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/flyteorg/flyte/flytestdlib/promutils" + "github.com/flyteorg/flyte/flytestdlib/storage" + "github.com/golang/protobuf/ptypes/any" +) + +type ArtifactBlobStore struct { + store *storage.DataStore +} + +// OffloadArtifactCard stores the artifact card in the blob store +func (a *ArtifactBlobStore) OffloadArtifactCard(ctx context.Context, name, version string, card *any.Any) (storage.DataReference, error) { + uri, err := a.store.ConstructReference(ctx, a.store.GetBaseContainerFQN(ctx), name, version) + if err != nil { + return "", fmt.Errorf("failed to construct data reference for [%s/%s] with err: %v", name, version, err) + } + err = a.store.WriteProtobuf(ctx, uri, storage.Options{}, card) + if err != nil { + return "", fmt.Errorf("failed to write protobuf to %s with err: %v", uri, err) + } + return uri, nil +} + +func (a *ArtifactBlobStore) RetrieveArtifactCard(ctx context.Context, uri storage.DataReference) (*any.Any, error) { + card := &any.Any{} + err := a.store.ReadProtobuf(ctx, uri, card) + if err != nil { + return nil, fmt.Errorf("failed to read protobuf from %s with err: %v", uri, err) + } + return nil, nil +} + +func NewArtifactBlobStore(ctx context.Context, scope promutils.Scope) ArtifactBlobStore { + storageCfg := configuration.GetApplicationConfig().ArtifactBlobStoreConfig + logger.Infof(ctx, "Initializing storage client with config [%+v]", storageCfg) + + dataStorageClient, err := storage.NewDataStore(&storageCfg, scope) + if err != nil { + logger.Error(ctx, "Failed to initialize storage config") + panic(err) + } + return ArtifactBlobStore{ + store: dataStorageClient, + } +} diff --git a/flyteartifacts/pkg/configuration/config.go b/flyteartifacts/pkg/configuration/config.go new file mode 100644 index 0000000000..7848789db1 --- /dev/null +++ b/flyteartifacts/pkg/configuration/config.go @@ -0,0 +1,61 @@ +package configuration + +import ( + "github.com/flyteorg/flyte/flyteartifacts/pkg/configuration/shared" + "github.com/flyteorg/flyte/flytestdlib/config" + stdLibDb "github.com/flyteorg/flyte/flytestdlib/database" + stdLibStorage "github.com/flyteorg/flyte/flytestdlib/storage" + + "time" +) + +const artifactsServer = "artifactsServer" + +type ApplicationConfiguration struct { + ArtifactDatabaseConfig stdLibDb.DbConfig `json:"artifactDatabaseConfig" pflag:",Database configuration"` + ArtifactBlobStoreConfig stdLibStorage.Config `json:"artifactBlobStoreConfig" pflag:",Blob store configuration"` + ArtifactServerConfig shared.ServerConfiguration `json:"artifactServerConfig" pflag:",Artifact server configuration"` +} + +var defaultApplicationConfiguration = ApplicationConfiguration{ + ArtifactDatabaseConfig: stdLibDb.DbConfig{ + EnableForeignKeyConstraintWhenMigrating: true, + MaxIdleConnections: 10, + MaxOpenConnections: 100, + ConnMaxLifeTime: config.Duration{Duration: time.Hour}, + Postgres: stdLibDb.PostgresConfig{ + // These values are suitable for local sandbox development + Host: "localhost", + Port: 30001, + DbName: "artifacts", + User: "postgres", + Password: "postgres", + ExtraOptions: "sslmode=disable", + }, + }, + ArtifactBlobStoreConfig: stdLibStorage.Config{ + InitContainer: "flyte-artifacts", + }, + ArtifactServerConfig: shared.ServerConfiguration{ + Metrics: shared.Metrics{ + MetricsScope: "service:", + Port: config.Port{Port: 10254}, + ProfilerEnabled: false, + }, + Port: config.Port{Port: 50051}, + HttpPort: config.Port{Port: 50050}, + GrpcMaxResponseStatusBytes: 320000, + GrpcServerReflection: false, + Security: shared.ServerSecurityOptions{ + Secure: false, + UseAuth: false, + }, + MaxConcurrentStreams: 100, + }, +} + +var ApplicationConfig = config.MustRegisterSection(artifactsServer, &defaultApplicationConfiguration) + +func GetApplicationConfig() *ApplicationConfiguration { + return ApplicationConfig.GetConfig().(*ApplicationConfiguration) +} diff --git a/flyteartifacts/pkg/configuration/processor_config.go b/flyteartifacts/pkg/configuration/processor_config.go new file mode 100644 index 0000000000..e5645336fe --- /dev/null +++ b/flyteartifacts/pkg/configuration/processor_config.go @@ -0,0 +1,32 @@ +package configuration + +import ( + "github.com/flyteorg/flyte/flytestdlib/config" +) + +const artifactsProcessor = "artifactsProcessor" + +// QueueSubscriberConfig is a generic config object for reading from things like SQS +type QueueSubscriberConfig struct { + // The name of the queue onto which workflow notifications will enqueue. + QueueName string `json:"queueName"` + // The account id (according to whichever cloud provider scheme is used) that has permission to read from the above + // queue. + AccountID string `json:"accountId"` +} + +type EventProcessorConfiguration struct { + CloudProvider config.CloudDeployment `json:"cloudProvider" pflag:",Your deployment environment."` + + Region string `json:"region" pflag:",The region if applicable for the cloud provider."` + + Subscriber QueueSubscriberConfig `json:"subscriber" pflag:",The configuration for the subscriber."` +} + +var defaultEventProcessorConfiguration = EventProcessorConfiguration{} + +var EventsProcessorConfig = config.MustRegisterSection(artifactsProcessor, &defaultEventProcessorConfiguration) + +func GetEventsProcessorConfig() *EventProcessorConfiguration { + return EventsProcessorConfig.GetConfig().(*EventProcessorConfiguration) +} diff --git a/flyteartifacts/pkg/configuration/shared/config.go b/flyteartifacts/pkg/configuration/shared/config.go new file mode 100644 index 0000000000..35c9d4ecfb --- /dev/null +++ b/flyteartifacts/pkg/configuration/shared/config.go @@ -0,0 +1,62 @@ +package shared + +import ( + "fmt" + "github.com/flyteorg/flyte/flytestdlib/config" +) + +const sharedServer = "sharedServer" + +type Metrics struct { + MetricsScope string `json:"metricsScope" pflag:",MetricsScope"` + Port config.Port `json:"port" pflag:",Profile port to start listen for pprof and metric handlers on."` + ProfilerEnabled bool `json:"profilerEnabled" pflag:",Enable Profiler on server"` +} + +type SslOptions struct { + CertificateAuthorityFile string `json:"certificateAuthorityFile"` + CertificateFile string `json:"certificateFile"` + KeyFile string `json:"keyFile"` +} + +type ServerSecurityOptions struct { + Secure bool `json:"secure"` + Ssl SslOptions `json:"ssl"` + UseAuth bool `json:"useAuth"` + AllowLocalhostAccess bool `json:"allowLocalhostAccess" pflag:",Whether to permit localhost unauthenticated access to the server"` +} + +type ServerConfiguration struct { + Metrics Metrics `json:"metrics" pflag:",Metrics configuration"` + Port config.Port `json:"port" pflag:",On which grpc port to serve"` + HttpPort config.Port `json:"httpPort" pflag:",On which http port to serve"` + GrpcMaxResponseStatusBytes int32 `json:"grpcMaxResponseStatusBytes" pflag:", specifies the maximum (uncompressed) size of header list that the client is prepared to accept on grpc calls"` + GrpcServerReflection bool `json:"grpcServerReflection" pflag:",Enable GRPC Server Reflection"` + Security ServerSecurityOptions `json:"security"` + MaxConcurrentStreams int `json:"maxConcurrentStreams" pflag:",Limit on the number of concurrent streams to each ServerTransport."` +} + +var sharedServerConfiguration = ServerConfiguration{ + Metrics: Metrics{ + MetricsScope: "service:", + Port: config.Port{Port: 10254}, + ProfilerEnabled: false, + }, + Port: config.Port{Port: 8089}, + HttpPort: config.Port{Port: 8088}, + GrpcMaxResponseStatusBytes: 320000, + GrpcServerReflection: false, + Security: ServerSecurityOptions{ + Secure: false, + UseAuth: false, + }, + MaxConcurrentStreams: 100, +} + +func (s ServerConfiguration) GetGrpcHostAddress() string { + return fmt.Sprintf("0.0.0.0:%s", s.Port.String()) +} + +func (s ServerConfiguration) GetHttpHostAddress() string { + return fmt.Sprintf("0.0.0.0:%s", s.HttpPort.String()) +} diff --git a/flyteartifacts/pkg/db/gorm_models.go b/flyteartifacts/pkg/db/gorm_models.go new file mode 100644 index 0000000000..4bd7c28848 --- /dev/null +++ b/flyteartifacts/pkg/db/gorm_models.go @@ -0,0 +1,43 @@ +package db + +import ( + "github.com/jackc/pgx/v5/pgtype" + "gorm.io/gorm" +) + +type ArtifactKey struct { + gorm.Model + Project string `gorm:"index:idx_pdn;index:idx_proj;type:varchar(64)"` + Domain string `gorm:"index:idx_pdn;index:idx_dom;type:varchar(64)"` + Name string `gorm:"index:idx_pdn;index:idx_name;type:varchar(255)"` +} + +type Artifact struct { + gorm.Model + ArtifactKeyID uint + ArtifactKey ArtifactKey `gorm:"foreignKey:ArtifactKeyID;references:ID"` + Version string `gorm:"not null;type:varchar(255);index:idx_artifact_version"` + Partitions pgtype.Hstore `gorm:"type:hstore;index:idx_artifact_partitions"` + + LiteralType []byte `gorm:"not null"` + LiteralValue []byte `gorm:"not null"` + + Description string `gorm:"type:varchar(255)"` + MetadataType string `gorm:"type:varchar(64)"` + OffloadedUserMetadata string `gorm:"type:varchar(255)"` + + // Project/Domain assumed to always be the same as the Artifact + ExecutionName string `gorm:"type:varchar(255)"` + WorkflowProject string `gorm:"type:varchar(64)"` + WorkflowDomain string `gorm:"type:varchar(64)"` + WorkflowName string `gorm:"type:varchar(255)"` + WorkflowVersion string `gorm:"type:varchar(255)"` + TaskProject string `gorm:"type:varchar(64)"` + TaskDomain string `gorm:"type:varchar(64)"` + TaskName string `gorm:"type:varchar(255)"` + TaskVersion string `gorm:"type:varchar(255)"` + NodeID string `gorm:"type:varchar(64)"` + // See Admin migration for note. + // Here nullable in the case of workflow output. + RetryAttempt *uint32 +} diff --git a/flyteartifacts/pkg/db/gorm_transformers.go b/flyteartifacts/pkg/db/gorm_transformers.go new file mode 100644 index 0000000000..2eeec630c7 --- /dev/null +++ b/flyteartifacts/pkg/db/gorm_transformers.go @@ -0,0 +1,129 @@ +package db + +import ( + "context" + "github.com/flyteorg/flyte/flyteartifacts/pkg/models" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/golang/protobuf/proto" + "github.com/jackc/pgx/v5/pgtype" +) + +func PartitionsIdlToHstore(idlPartitions *core.Partitions) pgtype.Hstore { + ctx := context.Background() + if idlPartitions == nil || idlPartitions.GetValue() == nil { + return nil + } + var hstore = make(pgtype.Hstore) + + for k, v := range idlPartitions.GetValue() { + if len(v.GetStaticValue()) == 0 { + logger.Warningf(ctx, "Partition key [%s] missing static value, [%+v]", k, v.GetValue()) + continue + } + sv := v.GetStaticValue() + hstore[k] = &sv + } + return hstore +} + +func HstoreToIdlPartitions(hs pgtype.Hstore) *core.Partitions { + if hs == nil || len(hs) == 0 { + return nil + } + m := make(map[string]*core.LabelValue, len(hs)) + for k, v := range hs { + m[k] = &core.LabelValue{ + Value: &core.LabelValue_StaticValue{ + StaticValue: *v, + }, + } + } + return &core.Partitions{ + Value: m, + } +} + +func ServiceToGormModel(serviceModel models.Artifact) (Artifact, error) { + partitions := PartitionsIdlToHstore(serviceModel.Artifact.GetArtifactId().GetPartitions()) + + ga := Artifact{ + ArtifactKey: ArtifactKey{ + Project: serviceModel.Artifact.ArtifactId.ArtifactKey.Project, + Domain: serviceModel.Artifact.ArtifactId.ArtifactKey.Domain, + Name: serviceModel.Artifact.ArtifactId.ArtifactKey.Name, + }, + Version: serviceModel.Artifact.ArtifactId.Version, + Partitions: partitions, + + LiteralType: serviceModel.LiteralTypeBytes, + LiteralValue: serviceModel.LiteralValueBytes, + Description: serviceModel.Artifact.Spec.ShortDescription, + MetadataType: serviceModel.Artifact.Spec.MetadataType, + OffloadedUserMetadata: serviceModel.OffloadedMetadata, + + ExecutionName: serviceModel.Artifact.Spec.Execution.Name, + } + + if serviceModel.Artifact.Spec.TaskExecution != nil { + ga.TaskProject = serviceModel.Artifact.Spec.TaskExecution.TaskId.Project + ga.TaskDomain = serviceModel.Artifact.Spec.TaskExecution.TaskId.Domain + ga.TaskName = serviceModel.Artifact.Spec.TaskExecution.TaskId.Name + ga.TaskVersion = serviceModel.Artifact.Spec.TaskExecution.TaskId.Version + ga.RetryAttempt = &serviceModel.Artifact.Spec.TaskExecution.RetryAttempt + } + + return ga, nil +} + +func GormToServiceModel(ga Artifact) (models.Artifact, error) { + lt := &core.LiteralType{} + lit := &core.Literal{} + if err := proto.Unmarshal(ga.LiteralType, lt); err != nil { + return models.Artifact{}, err + } + if err := proto.Unmarshal(ga.LiteralValue, lit); err != nil { + return models.Artifact{}, err + } + + // gatepr: principal is missing still - can be added following discussion on source object. + // taskexecution and additional source information to be added when resolved. + // gatepr: implement tags + a := artifact.Artifact{ + ArtifactId: &core.ArtifactID{ + ArtifactKey: &core.ArtifactKey{ + Project: ga.ArtifactKey.Project, + Domain: ga.ArtifactKey.Domain, + Name: ga.ArtifactKey.Name, + }, + Version: ga.Version, + }, + Spec: &artifact.ArtifactSpec{ + Value: lit, + Type: lt, + TaskExecution: nil, + Execution: &core.WorkflowExecutionIdentifier{ + Project: ga.ArtifactKey.Project, + Domain: ga.ArtifactKey.Domain, + Name: ga.ExecutionName, + }, + Principal: "", + ShortDescription: ga.Description, + UserMetadata: nil, + MetadataType: ga.MetadataType, + }, + Tags: nil, + } + p := HstoreToIdlPartitions(ga.Partitions) + if p != nil { + a.ArtifactId.Dimensions = &core.ArtifactID_Partitions{Partitions: p} + } + + return models.Artifact{ + Artifact: a, + OffloadedMetadata: "", + LiteralTypeBytes: nil, + LiteralValueBytes: nil, + }, nil +} diff --git a/flyteartifacts/pkg/db/metrics.go b/flyteartifacts/pkg/db/metrics.go new file mode 100644 index 0000000000..07225174e3 --- /dev/null +++ b/flyteartifacts/pkg/db/metrics.go @@ -0,0 +1,30 @@ +package db + +import ( + "time" + + "github.com/flyteorg/flyte/flytestdlib/promutils" +) + +// Common metrics emitted by gormimpl repos. +type gormMetrics struct { + Scope promutils.Scope + CreateDuration promutils.StopWatch + GetDuration promutils.StopWatch + UpdateDuration promutils.StopWatch + SearchDuration promutils.StopWatch +} + +func newMetrics(scope promutils.Scope) gormMetrics { + return gormMetrics{ + Scope: scope, + CreateDuration: scope.MustNewStopWatch( + "create", "time taken to create a new entry", time.Millisecond), + GetDuration: scope.MustNewStopWatch( + "get", "time taken to get an entry", time.Millisecond), + UpdateDuration: scope.MustNewStopWatch( + "update", "time taken to update an entry", time.Millisecond), + SearchDuration: scope.MustNewStopWatch( + "search", "time taken for searching", time.Millisecond), + } +} diff --git a/flyteartifacts/pkg/db/migrations.go b/flyteartifacts/pkg/db/migrations.go new file mode 100644 index 0000000000..773dcb99c8 --- /dev/null +++ b/flyteartifacts/pkg/db/migrations.go @@ -0,0 +1,58 @@ +package db + +import ( + "github.com/go-gormigrate/gormigrate/v2" + "github.com/jackc/pgx/v5/pgtype" + "gorm.io/gorm" +) + +var Migrations = []*gormigrate.Migration{ + { + ID: "2023-10-12-inits", + Migrate: func(tx *gorm.DB) error { + type ArtifactKey struct { + gorm.Model + Project string `gorm:"uniqueIndex:idx_pdn;index:idx_proj;type:varchar(64)"` + Domain string `gorm:"uniqueIndex:idx_pdn;index:idx_dom;type:varchar(64)"` + Name string `gorm:"uniqueIndex:idx_pdn;index:idx_name;type:varchar(255)"` + } + type Artifact struct { + gorm.Model + ArtifactKeyID uint `gorm:"uniqueIndex:idx_pdnv"` + ArtifactKey ArtifactKey `gorm:"foreignKey:ArtifactKeyID;references:ID"` + Version string `gorm:"type:varchar(255);index:idx_artifact_version;uniqueIndex:idx_pdnv"` + Partitions *pgtype.Hstore `gorm:"type:hstore;index:idx_artifact_partitions"` + + LiteralType []byte `gorm:"not null"` + LiteralValue []byte `gorm:"not null"` + + Description string `gorm:"type:varchar(255)"` + MetadataType string `gorm:"type:varchar(64)"` + OffloadedUserMetadata string `gorm:"type:varchar(255)"` + + // Project/Domain assumed to always be the same as the Artifact + ExecutionName string `gorm:"type:varchar(255)"` + WorkflowProject string `gorm:"type:varchar(64)"` + WorkflowDomain string `gorm:"type:varchar(64)"` + WorkflowName string `gorm:"type:varchar(255)"` + WorkflowVersion string `gorm:"type:varchar(255)"` + TaskProject string `gorm:"type:varchar(64)"` + TaskDomain string `gorm:"type:varchar(64)"` + TaskName string `gorm:"type:varchar(255)"` + TaskVersion string `gorm:"type:varchar(255)"` + NodeID string `gorm:"type:varchar(64)"` + // See Admin migration for note. + // Here nullable in the case of workflow output. + RetryAttempt *uint32 + } + return tx.AutoMigrate( + &ArtifactKey{}, &Artifact{}, + ) + }, + Rollback: func(tx *gorm.DB) error { + return tx.Migrator().DropTable( + "artifact_keys", "artifacts", + ) + }, + }, +} diff --git a/flyteartifacts/pkg/db/storage.go b/flyteartifacts/pkg/db/storage.go new file mode 100644 index 0000000000..40bc6c1e6b --- /dev/null +++ b/flyteartifacts/pkg/db/storage.go @@ -0,0 +1,152 @@ +package db + +import ( + "context" + "errors" + "fmt" + "github.com/flyteorg/flyte/flyteartifacts/pkg/configuration" + "github.com/flyteorg/flyte/flyteartifacts/pkg/lib" + "github.com/flyteorg/flyte/flyteartifacts/pkg/models" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + "github.com/flyteorg/flyte/flytestdlib/database" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/flyteorg/flyte/flytestdlib/promutils" + "gorm.io/gorm" +) + +// RDSStorage should implement StorageInterface +type RDSStorage struct { + config database.DbConfig + db *gorm.DB + metrics gormMetrics +} + +// CreateArtifact helps implement StorageInterface +func (r *RDSStorage) CreateArtifact(ctx context.Context, serviceModel models.Artifact) (models.Artifact, error) { + timer := r.metrics.CreateDuration.Start() + logger.Debugf(ctx, "Attempt create artifact [%s:%s]", + serviceModel.Artifact.ArtifactId.ArtifactKey.Name, serviceModel.Artifact.ArtifactId.Version) + gormModel, err := ServiceToGormModel(serviceModel) + if err != nil { + logger.Errorf(ctx, "Failed to convert service model to gorm model: %+v", err) + return models.Artifact{}, err + } + + // Check to see if the artifact key already exists. + // do the create in a transaction + err = r.db.WithContext(ctx).Transaction(func(tx *gorm.DB) error { + var extantKey ArtifactKey + ak := ArtifactKey{ + Project: serviceModel.Artifact.ArtifactId.ArtifactKey.Project, + Domain: serviceModel.Artifact.ArtifactId.ArtifactKey.Domain, + Name: serviceModel.Artifact.ArtifactId.ArtifactKey.Name, + } + tx.FirstOrCreate(&extantKey, ak) + if err := tx.Error; err != nil { + logger.Errorf(ctx, "Failed to firstorcreate key: %+v", err) + return err + } + gormModel.ArtifactKeyID = extantKey.ID + gormModel.ArtifactKey = ArtifactKey{} // zero out the artifact key + tx.Create(&gormModel) + if tx.Error != nil { + logger.Errorf(ctx, "Failed to create artifact %+v", tx.Error) + return tx.Error + } + return nil + }) + if err != nil { + logger.Errorf(ctx, "Failed transaction upsert on key [%v]: %+v", serviceModel.ArtifactId, err) + return models.Artifact{}, err + } + timer.Stop() + + return models.Artifact{}, nil +} + +func (r *RDSStorage) handleUriGet(ctx context.Context, uri string) (models.Artifact, error) { + artifactID, tag, err := lib.ParseFlyteURL(uri) + if err != nil { + logger.Errorf(ctx, "Failed to parse uri [%s]: %+v", uri, err) + return models.Artifact{}, err + } + if tag != "" { + return models.Artifact{}, fmt.Errorf("tag not implemented yet") + } + logger.Debugf(ctx, "Extracted artifact id [%v] from uri [%s], using id handler", artifactID, uri) + return r.handleArtifactIdGet(ctx, artifactID) +} + +func (r *RDSStorage) handleArtifactIdGet(ctx context.Context, artifactID core.ArtifactID) (models.Artifact, error) { + var gotArtifact Artifact + ak := ArtifactKey{ + Project: artifactID.ArtifactKey.Project, + Domain: artifactID.ArtifactKey.Domain, + Name: artifactID.ArtifactKey.Name, + } + db := r.db.Model(&Artifact{}).InnerJoins("ArtifactKey", r.db.Where(&ak)) + if artifactID.Version != "" { + db = db.Where("version = ?", artifactID.Version) + } + + if artifactID.GetPartitions() != nil && len(artifactID.GetPartitions().GetValue()) > 0 { + partitionMap := PartitionsIdlToHstore(artifactID.GetPartitions()) + db = db.Where("partitions = ?", partitionMap) + } else { + // Be strict about partitions. If not specified, that means, we're looking + // for null + db = db.Where("partitions is null") + } + db.Order("created_at desc").Limit(1) + db = db.First(&gotArtifact) + if err := db.Error; err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + logger.Infof(ctx, "Artifact not found: %+v", artifactID) + return models.Artifact{}, fmt.Errorf("artifact [%v] not found", artifactID) + } + logger.Errorf(ctx, "Failed to query for artifact: %+v", err) + return models.Artifact{}, err + } + logger.Debugf(ctx, "Found and returning artifact key %v", gotArtifact) + m, err := GormToServiceModel(gotArtifact) + if err != nil { + logger.Errorf(ctx, "Failed to convert gorm model to service model: %+v", err) + return models.Artifact{}, err + } + return m, nil +} + +func (r *RDSStorage) GetArtifact(ctx context.Context, query core.ArtifactQuery) (models.Artifact, error) { + timer := r.metrics.GetDuration.Start() + + var resp models.Artifact + var err error + if query.GetUri() != "" { + logger.Debugf(ctx, "found uri in query: %+v", query.GetUri()) + resp, err = r.handleUriGet(ctx, query.GetUri()) + } else if query.GetArtifactId() != nil { + logger.Debugf(ctx, "found artifact_id in query: %+v", *query.GetArtifactId()) + resp, err = r.handleArtifactIdGet(ctx, *query.GetArtifactId()) + } else if query.GetArtifactTag() != nil { + return models.Artifact{}, fmt.Errorf("artifact tag not implemented yet") + } else { + return models.Artifact{}, fmt.Errorf("query must contain either uri, artifact_id, or artifact_tag") + } + timer.Stop() + return resp, err +} + +func NewStorage(ctx context.Context, scope promutils.Scope) *RDSStorage { + dbCfg := configuration.ApplicationConfig.GetConfig().(*configuration.ApplicationConfiguration).ArtifactDatabaseConfig + logConfig := logger.GetConfig() + + db, err := database.GetDB(ctx, &dbCfg, logConfig) + if err != nil { + logger.Fatal(ctx, err) + } + return &RDSStorage{ + config: dbCfg, + db: db, + metrics: newMetrics(scope), + } +} diff --git a/flyteartifacts/pkg/db/storage_test.go b/flyteartifacts/pkg/db/storage_test.go new file mode 100644 index 0000000000..5dac063128 --- /dev/null +++ b/flyteartifacts/pkg/db/storage_test.go @@ -0,0 +1,151 @@ +//go:build local_integration + +// Eduardo - add this build tag to run this test + +package db + +import ( + "context" + "fmt" + "github.com/flyteorg/flyte/flyteartifacts/pkg/models" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" + "os" + "testing" + + "github.com/flyteorg/flyte/flytestdlib/config" + "github.com/flyteorg/flyte/flytestdlib/config/viper" + "github.com/flyteorg/flyte/flytestdlib/promutils" + "github.com/stretchr/testify/assert" + + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" +) + +func TestBasicWrite(t *testing.T) { + ctx := context.Background() + sandboxCfgFile := os.ExpandEnv("$GOPATH/src/github.com/flyteorg/flyte/flyteartifacts/sandbox.yaml") + configAccessor := viper.NewAccessor(config.Options{ + SearchPaths: []string{sandboxCfgFile}, + StrictMode: false, + }) + err := configAccessor.UpdateConfig(ctx) + + fmt.Println("Local integration testing using: ", configAccessor.ConfigFilesUsed()) + scope := promutils.NewTestScope() + rds := NewStorage(ctx, scope) + + lt := &core.LiteralType{ + Type: &core.LiteralType_Simple{Simple: core.SimpleType_INTEGER}, + } + lit := &core.Literal{ + Value: &core.Literal_Scalar{ + Scalar: &core.Scalar{ + Value: &core.Scalar_Primitive{ + Primitive: &core.Primitive{ + Value: &core.Primitive_Integer{Integer: 15}, + }, + }, + }, + }, + } + + ak := &core.ArtifactKey{ + Project: "demotst", + Domain: "unit", + Name: "artfname 10", + } + spec := &artifact.ArtifactSpec{ + Value: lit, + Type: lt, + TaskExecution: &core.TaskExecutionIdentifier{ + TaskId: &core.Identifier{ + ResourceType: core.ResourceType_TASK, + Project: "demotst", + Domain: "unit", + Name: "testtaskname 2", + Version: "testtaskversion", + }, + NodeExecutionId: &core.NodeExecutionIdentifier{ + NodeId: "testnodeid", + }, + }, + Execution: &core.WorkflowExecutionIdentifier{ + Project: "demotst", + Domain: "unit", + Name: "exectest1", + }, + Principal: "userone", + ShortDescription: "", + UserMetadata: nil, + MetadataType: "", + } + partitions := map[string]string{ + "area": "51", + "ds": "2023-05-01", + } + + // Create one + am, err := models.CreateArtifactModelFromRequest(ctx, ak, spec, "abc123/1/n0/1", partitions, "tag", "principal") + assert.NoError(t, err) + + newModel, err := rds.CreateArtifact(ctx, am) + assert.NoError(t, err) + fmt.Println(newModel) + + // Create another + am, err = models.CreateArtifactModelFromRequest(ctx, ak, spec, "abc123/1/n0/2", partitions, "tag", "principal") + assert.NoError(t, err) + + newModel, err = rds.CreateArtifact(ctx, am) + assert.NoError(t, err) + fmt.Println(newModel) +} + +func TestBasicRead(t *testing.T) { + ctx := context.Background() + sandboxCfgFile := os.ExpandEnv("$GOPATH/src/github.com/flyteorg/flyte/flyteartifacts/sandbox.yaml") + configAccessor := viper.NewAccessor(config.Options{ + SearchPaths: []string{sandboxCfgFile}, + StrictMode: false, + }) + err := configAccessor.UpdateConfig(ctx) + fmt.Println("Local integration testing using: ", configAccessor.ConfigFilesUsed()) + + scope := promutils.NewTestScope() + rds := NewStorage(ctx, scope) + ak := &core.ArtifactKey{ + Project: "demotst", + Domain: "unit", + Name: "artfname 10", + } + partitions := map[string]string{ + "area": "51", + "ds": "2023-05-01", + } + query := core.ArtifactQuery{ + Identifier: &core.ArtifactQuery_ArtifactId{ + ArtifactId: &core.ArtifactID{ + ArtifactKey: ak, + Version: "abc123/1/n0/1", + }, + }, + } + _, err = rds.GetArtifact(context.Background(), query) + assert.Error(t, err) + + pidl := models.PartitionsToIdl(partitions) + query = core.ArtifactQuery{ + Identifier: &core.ArtifactQuery_ArtifactId{ + ArtifactId: &core.ArtifactID{ + ArtifactKey: ak, + Version: "abc123/1/n0/1", + Dimensions: &core.ArtifactID_Partitions{ + Partitions: pidl, + }, + }, + }, + } + ga, err := rds.GetArtifact(context.Background(), query) + assert.NoError(t, err) + + fmt.Println(ga) +} diff --git a/flyteartifacts/pkg/lib/constants.go b/flyteartifacts/pkg/lib/constants.go new file mode 100644 index 0000000000..845b570525 --- /dev/null +++ b/flyteartifacts/pkg/lib/constants.go @@ -0,0 +1,4 @@ +package lib + +// ArtifactKey - This is used to tag Literals as a tracking bit. +const ArtifactKey = "_ua" diff --git a/flyteartifacts/pkg/lib/string_converter.go b/flyteartifacts/pkg/lib/string_converter.go new file mode 100644 index 0000000000..dd3f2133d1 --- /dev/null +++ b/flyteartifacts/pkg/lib/string_converter.go @@ -0,0 +1,56 @@ +package lib + +import ( + "fmt" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + "strings" + "time" +) + +func RenderLiteral(lit *core.Literal) (string, error) { + if lit == nil { + return "", fmt.Errorf("can't RenderLiteral, input is nil") + } + + switch lit.Value.(type) { + case *core.Literal_Scalar: + scalar := lit.GetScalar() + if scalar.GetPrimitive() == nil { + return "", fmt.Errorf("rendering only works for primitives, got [%v]", scalar) + } + // todo: figure out how to expose more formatting + // todo: maybe add a metric to each one of these, or this whole block. + switch scalar.GetPrimitive().GetValue().(type) { + case *core.Primitive_StringValue: + return scalar.GetPrimitive().GetStringValue(), nil + case *core.Primitive_Integer: + return fmt.Sprintf("%d", scalar.GetPrimitive().GetInteger()), nil + case *core.Primitive_FloatValue: + return fmt.Sprintf("%v", scalar.GetPrimitive().GetFloatValue()), nil + case *core.Primitive_Boolean: + if scalar.GetPrimitive().GetBoolean() { + return "true", nil + } + return "false", nil + case *core.Primitive_Datetime: + // just date for now, not sure if we should support time... + dt := scalar.GetPrimitive().GetDatetime().AsTime() + txt := dt.Format("2006-01-02") + return txt, nil + case *core.Primitive_Duration: + dur := scalar.GetPrimitive().GetDuration().AsDuration() + // Found somewhere as iso8601 representation of duration, but there's still lots of + // possibilities for formatting. + txt := "PT" + strings.ToUpper(dur.Truncate(time.Millisecond).String()) + return txt, nil + default: + return "", fmt.Errorf("unknown primitive type [%v]", scalar.GetPrimitive()) + } + case *core.Literal_Collection: + return "", fmt.Errorf("can't RenderLiteral for collections") + case *core.Literal_Map: + return "", fmt.Errorf("can't RenderLiteral for maps") + } + + return "", fmt.Errorf("unknown literal type [%v]", lit) +} diff --git a/flyteartifacts/pkg/lib/string_converter_test.go b/flyteartifacts/pkg/lib/string_converter_test.go new file mode 100644 index 0000000000..ec50b1f46d --- /dev/null +++ b/flyteartifacts/pkg/lib/string_converter_test.go @@ -0,0 +1,24 @@ +package lib + +import ( + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + "github.com/golang/protobuf/ptypes/timestamp" + "github.com/stretchr/testify/assert" + "testing" + "time" +) + +func TestRenderDate(t *testing.T) { + dt := time.Date(2020, 12, 8, 0, 0, 0, 0, time.UTC) + pt := timestamp.Timestamp{ + Seconds: dt.Unix(), + Nanos: 0, + } + lit := core.Literal{ + Value: &core.Literal_Scalar{Scalar: &core.Scalar{Value: &core.Scalar_Primitive{Primitive: &core.Primitive{Value: &core.Primitive_Datetime{Datetime: &pt}}}}}, + } + + txt, err := RenderLiteral(&lit) + assert.NoError(t, err) + assert.Equal(t, "2020-12-08", txt) +} diff --git a/flyteartifacts/pkg/lib/url_parse.go b/flyteartifacts/pkg/lib/url_parse.go new file mode 100644 index 0000000000..41bb5df16a --- /dev/null +++ b/flyteartifacts/pkg/lib/url_parse.go @@ -0,0 +1,71 @@ +package lib + +import ( + "errors" + "github.com/flyteorg/flyte/flyteartifacts/pkg/models" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + "net/url" + "regexp" + "strings" +) + +var flyteURLNameRe = regexp.MustCompile(`(?P[\w/-]+)(?:(:(?P\w+))?)(?:(@(?P\w+))?)`) + +func ParseFlyteURL(urlStr string) (core.ArtifactID, string, error) { + if len(urlStr) == 0 { + return core.ArtifactID{}, "", errors.New("URL cannot be empty") + } + + parsed, err := url.Parse(urlStr) + if err != nil { + return core.ArtifactID{}, "", err + } + queryValues, err := url.ParseQuery(parsed.RawQuery) + if err != nil { + return core.ArtifactID{}, "", err + } + projectDomainName := strings.Split(strings.Trim(parsed.Path, "/"), "/") + if len(projectDomainName) < 3 { + return core.ArtifactID{}, "", errors.New("invalid URL format") + } + project, domain, name := projectDomainName[0], projectDomainName[1], strings.Join(projectDomainName[2:], "/") + version := "" + tag := "" + queryDict := make(map[string]string) + + if match := flyteURLNameRe.FindStringSubmatch(name); match != nil { + name = match[1] + if match[3] != "" { + tag = match[3] + } + if match[5] != "" { + version = match[5] + } + + if tag != "" && (version != "" || len(queryValues) > 0) { + return core.ArtifactID{}, "", errors.New("cannot specify tag with version or querydict") + } + } + + for key, values := range queryValues { + if len(values) > 0 { + queryDict[key] = values[0] + } + } + + a := core.ArtifactID{ + ArtifactKey: &core.ArtifactKey{ + Project: project, + Domain: domain, + Name: name, + }, + Version: version, + } + + p := models.PartitionsToIdl(queryDict) + a.Dimensions = &core.ArtifactID_Partitions{ + Partitions: p, + } + + return a, tag, nil +} diff --git a/flyteartifacts/pkg/lib/url_parse_test.go b/flyteartifacts/pkg/lib/url_parse_test.go new file mode 100644 index 0000000000..3739b4c2a6 --- /dev/null +++ b/flyteartifacts/pkg/lib/url_parse_test.go @@ -0,0 +1,63 @@ +package lib + +import ( + "context" + "github.com/flyteorg/flyte/flyteartifacts/pkg/models" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestURLParseWithTag(t *testing.T) { + artifactID, tag, err := ParseFlyteURL("flyte://av0.1/project/domain/name:tag") + assert.NoError(t, err) + + assert.Equal(t, "project", artifactID.ArtifactKey.Project) + assert.Equal(t, "domain", artifactID.ArtifactKey.Domain) + assert.Equal(t, "name", artifactID.ArtifactKey.Name) + assert.Equal(t, "", artifactID.Version) + assert.Equal(t, "tag", tag) + assert.Nil(t, artifactID.GetPartitions()) +} + +func TestURLParseWithVersionAndPartitions(t *testing.T) { + artifactID, tag, err := ParseFlyteURL("flyte://av0.1/project/domain/name@version?foo=bar&ham=spam") + expPartitions := map[string]string{"foo": "bar", "ham": "spam"} + assert.NoError(t, err) + + assert.Equal(t, "project", artifactID.ArtifactKey.Project) + assert.Equal(t, "domain", artifactID.ArtifactKey.Domain) + assert.Equal(t, "name", artifactID.ArtifactKey.Name) + assert.Equal(t, "version", artifactID.Version) + assert.Equal(t, "", tag) + p := artifactID.GetPartitions() + mapP := models.PartitionsFromIdl(context.TODO(), p) + assert.Equal(t, expPartitions, mapP) +} + +func TestURLParseFailsWithBothTagAndPartitions(t *testing.T) { + _, _, err := ParseFlyteURL("flyte://av0.1/project/domain/name:tag?foo=bar&ham=spam") + assert.Error(t, err) +} + +func TestURLParseWithBothTagAndVersion(t *testing.T) { + _, _, err := ParseFlyteURL("flyte://av0.1/project/domain/name:tag@version") + assert.Error(t, err) +} + +func TestURLParseNameWithSlashes(t *testing.T) { + artifactID, tag, err := ParseFlyteURL("flyte://av0.1/project/domain/name/with/slashes") + assert.NoError(t, err) + assert.Equal(t, "project", artifactID.ArtifactKey.Project) + assert.Equal(t, "domain", artifactID.ArtifactKey.Domain) + assert.Equal(t, "name/with/slashes", artifactID.ArtifactKey.Name) + assert.Equal(t, "", tag) + + artifactID, tag, err = ParseFlyteURL("flyte://av0.1/project/domain/name/with/slashes?ds=2020-01-01") + assert.Equal(t, "name/with/slashes", artifactID.ArtifactKey.Name) + assert.Equal(t, "project", artifactID.ArtifactKey.Project) + assert.Equal(t, "domain", artifactID.ArtifactKey.Domain) + + expPartitions := map[string]string{"ds": "2020-01-01"} + + assert.Equal(t, expPartitions, models.PartitionsFromIdl(context.TODO(), artifactID.GetPartitions())) +} diff --git a/flyteartifacts/pkg/models/service_models.go b/flyteartifacts/pkg/models/service_models.go new file mode 100644 index 0000000000..c1a1df03c9 --- /dev/null +++ b/flyteartifacts/pkg/models/service_models.go @@ -0,0 +1,11 @@ +package models + +import "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" + +// Artifact is a wrapper object for easier handling of additional fields +type Artifact struct { + artifact.Artifact + OffloadedMetadata string + LiteralTypeBytes []byte + LiteralValueBytes []byte +} diff --git a/flyteartifacts/pkg/models/transformers.go b/flyteartifacts/pkg/models/transformers.go new file mode 100644 index 0000000000..bb59f72fc2 --- /dev/null +++ b/flyteartifacts/pkg/models/transformers.go @@ -0,0 +1,107 @@ +package models + +import ( + "context" + "fmt" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/golang/protobuf/proto" + + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" +) + +func CreateArtifactModelFromRequest(ctx context.Context, key *core.ArtifactKey, spec *artifact.ArtifactSpec, version string, partitions map[string]string, tag string, principal string) (Artifact, error) { + if key == nil || spec == nil { + return Artifact{}, fmt.Errorf("key and spec cannot be nil") + } + if len(version) == 0 { + return Artifact{}, fmt.Errorf("version cannot be empty") + } + if spec.Type == nil || spec.Value == nil { + return Artifact{}, fmt.Errorf("spec type and value cannot be nil") + } + + ex := spec.Execution + if ex == nil { + return Artifact{}, fmt.Errorf("spec execution cannot be nil") + } + if ex.Project != key.Project || ex.Domain != key.Domain { + return Artifact{}, fmt.Errorf("spec execution must match key") + } + + a := artifact.Artifact{ + ArtifactId: &core.ArtifactID{ + ArtifactKey: &core.ArtifactKey{ + Project: key.Project, + Domain: key.Domain, + Name: key.Name, + }, + Version: version, + }, + Spec: spec, + Tags: []string{tag}, + } + + if partitions != nil { + cp := PartitionsToIdl(partitions) + a.ArtifactId.Dimensions = &core.ArtifactID_Partitions{ + Partitions: cp, + } + } + if principal != "" { + a.Spec.Principal = principal + } + ltBytes, err := proto.Marshal(spec.Type) + if err != nil { + logger.Errorf(ctx, "Failed to marshal type for artifact: %+v@%s, err: %v", key, version, err) + return Artifact{}, err + } + litBytes, err := proto.Marshal(spec.Value) + if err != nil { + logger.Errorf(ctx, "Failed to marshal literal value for artifact: %+v@%s, err: %v", key, version, err) + return Artifact{}, err + } + + return Artifact{ + Artifact: a, + LiteralTypeBytes: ltBytes, + LiteralValueBytes: litBytes, + }, nil +} + +func PartitionsToIdl(partitions map[string]string) *core.Partitions { + if partitions == nil || len(partitions) == 0 { + return nil + } + + cp := core.Partitions{ + Value: make(map[string]*core.LabelValue), + } + + for k, v := range partitions { + cp.Value[k] = &core.LabelValue{ + Value: &core.LabelValue_StaticValue{ + StaticValue: v, + }, + } + } + + return &cp +} + +func PartitionsFromIdl(ctx context.Context, partitions *core.Partitions) map[string]string { + if partitions == nil { + return nil + } + + p := make(map[string]string, len(partitions.Value)) + for k, v := range partitions.Value { + if len(v.GetStaticValue()) == 0 { + logger.Warningf(ctx, "Partition key [%s] missing static value, [%+v]", k, v.GetValue()) + continue + } + p[k] = v.GetStaticValue() + } + + return p +} diff --git a/flyteartifacts/pkg/server/interfaces.go b/flyteartifacts/pkg/server/interfaces.go new file mode 100644 index 0000000000..8b73cce847 --- /dev/null +++ b/flyteartifacts/pkg/server/interfaces.go @@ -0,0 +1,21 @@ +package server + +import ( + "context" + "github.com/flyteorg/flyte/flyteartifacts/pkg/models" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + stdLibStorage "github.com/flyteorg/flyte/flytestdlib/storage" + "github.com/golang/protobuf/ptypes/any" +) + +type StorageInterface interface { + CreateArtifact(context.Context, models.Artifact) (models.Artifact, error) + + GetArtifact(context.Context, core.ArtifactQuery) (models.Artifact, error) +} + +type BlobStoreInterface interface { + OffloadArtifactCard(ctx context.Context, name string, version string, userMetadata *any.Any) (stdLibStorage.DataReference, error) + + RetrieveArtifactCard(context.Context, stdLibStorage.DataReference) (*any.Any, error) +} diff --git a/flyteartifacts/pkg/server/metrics.go b/flyteartifacts/pkg/server/metrics.go new file mode 100644 index 0000000000..3ae7d5f8ba --- /dev/null +++ b/flyteartifacts/pkg/server/metrics.go @@ -0,0 +1,66 @@ +package server + +import ( + "github.com/flyteorg/flyte/flytestdlib/promutils" + "github.com/prometheus/client_golang/prometheus" + "time" +) + +type RequestMetrics struct { + scope promutils.Scope + requestDuration promutils.StopWatch + errCount prometheus.Counter + successCount prometheus.Counter +} + +func NewRequestMetrics(scope promutils.Scope, method string) RequestMetrics { + methodScope := scope.NewSubScope(method) + + return RequestMetrics{ + scope: methodScope, + requestDuration: methodScope.MustNewStopWatch("duration", + "recorded response time duration for endpoint", time.Millisecond), + errCount: methodScope.MustNewCounter("errors", "count of errors returned by endpoint"), + successCount: methodScope.MustNewCounter("success", "count of successful responses returned by endpoint"), + } +} + +type endpointMetrics struct { + scope promutils.Scope + + create RequestMetrics + list RequestMetrics + registerConsumer RequestMetrics + registerProducer RequestMetrics + createTrigger RequestMetrics + deleteTrigger RequestMetrics + addTag RequestMetrics + search RequestMetrics +} + +type ServiceMetrics struct { + Scope promutils.Scope + PanicCounter prometheus.Counter + + executionEndpointMetrics endpointMetrics +} + +func InitMetrics(scope promutils.Scope) ServiceMetrics { + return ServiceMetrics{ + Scope: scope, + PanicCounter: scope.MustNewCounter("handler_panic", + "panics encountered while handling requests to the artifact service"), + + executionEndpointMetrics: endpointMetrics{ + scope: scope, + create: NewRequestMetrics(scope, "create_artifact"), + list: NewRequestMetrics(scope, "list_artifacts"), + registerConsumer: NewRequestMetrics(scope, "register_consumer"), + registerProducer: NewRequestMetrics(scope, "register_producer"), + createTrigger: NewRequestMetrics(scope, "create_trigger"), + deleteTrigger: NewRequestMetrics(scope, "delete_trigger"), + addTag: NewRequestMetrics(scope, "add_tag"), + search: NewRequestMetrics(scope, "search"), + }, + } +} diff --git a/flyteartifacts/pkg/server/processor/channel_processor.go b/flyteartifacts/pkg/server/processor/channel_processor.go new file mode 100644 index 0000000000..d32175ef1c --- /dev/null +++ b/flyteartifacts/pkg/server/processor/channel_processor.go @@ -0,0 +1,117 @@ +package processor + +import ( + "bytes" + "context" + pbcloudevents "github.com/cloudevents/sdk-go/binding/format/protobuf/v2" + "github.com/cloudevents/sdk-go/v2/event" + flyteEvents "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/event" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/flyteorg/flyte/flytestdlib/sandbox_utils" + "github.com/golang/protobuf/jsonpb" + "github.com/golang/protobuf/proto" + "time" +) + +type SandboxCloudEventsReceiver struct { + subChan <-chan sandbox_utils.SandboxMessage + Handler EventsHandlerInterface +} + +func (p *SandboxCloudEventsReceiver) StartProcessing(ctx context.Context) { + for { + logger.Warningf(context.Background(), "Starting SandBox notifications processor") + err := p.run(ctx) + if err != nil { + logger.Errorf(context.Background(), "error with running processor err: [%v], sleeping and restarting", err) + time.Sleep(1000 * 1000 * 1000 * 1) + // metric + continue + } + break + } + logger.Warning(context.Background(), "Sandbox cloud event processor has stopped because context cancelled") +} + +func (p *SandboxCloudEventsReceiver) handleMessage(ctx context.Context, sandboxMsg sandbox_utils.SandboxMessage) error { + ce := &event.Event{} + err := pbcloudevents.Protobuf.Unmarshal(sandboxMsg.Raw, ce) + if err != nil { + logger.Errorf(context.Background(), "error with unmarshalling message [%v]", err) + return err + } + logger.Debugf(ctx, "Cloud event received message [%+v]", ce) + // ce data should be a jsonpb Marshaled proto message, one of + // - event.CloudEventTaskExecution + // - event.CloudEventNodeExecution + // - event.CloudEventWorkflowExecution + // - event.CloudEventExecutionStart + ceData := bytes.NewReader(ce.Data()) + unmarshaler := jsonpb.Unmarshaler{} + + // Use the type to determine which proto message to unmarshal to. + var flyteEvent proto.Message + if ce.Type() == "com.flyte.resource.cloudevents.TaskExecution" { + flyteEvent = &flyteEvents.CloudEventTaskExecution{} + err = unmarshaler.Unmarshal(ceData, flyteEvent) + } else if ce.Type() == "com.flyte.resource.cloudevents.WorkflowExecution" { + flyteEvent = &flyteEvents.CloudEventWorkflowExecution{} + err = unmarshaler.Unmarshal(ceData, flyteEvent) + } else if ce.Type() == "com.flyte.resource.cloudevents.NodeExecution" { + flyteEvent = &flyteEvents.CloudEventNodeExecution{} + err = unmarshaler.Unmarshal(ceData, flyteEvent) + } else if ce.Type() == "com.flyte.resource.cloudevents.ExecutionStart" { + flyteEvent = &flyteEvents.CloudEventExecutionStart{} + err = unmarshaler.Unmarshal(ceData, flyteEvent) + } else { + logger.Warningf(ctx, "Ignoring cloud event type [%s]", ce.Type()) + return nil + } + if err != nil { + logger.Errorf(ctx, "error unmarshalling message on topic [%s] [%v]", sandboxMsg.Topic, err) + return err + } + + err = p.Handler.HandleEvent(ctx, ce, flyteEvent) + if err != nil { + logger.Errorf(context.Background(), "error handling event on topic [%s] [%v]", sandboxMsg.Topic, err) + return err + } + return nil +} + +func (p *SandboxCloudEventsReceiver) run(ctx context.Context) error { + for { + select { + case <-ctx.Done(): + logger.Warning(context.Background(), "Context cancelled, stopping processing.") + return nil + + case sandboxMsg := <-p.subChan: + // metric + logger.Debugf(ctx, "received message [%v]", sandboxMsg) + if sandboxMsg.Raw != nil { + err := p.handleMessage(ctx, sandboxMsg) + if err != nil { + // Assuming that handle message will return a fair number of errors + // add metric + logger.Infof(ctx, "error processing sandbox cloud event [%v] with err [%v]", sandboxMsg, err) + } + } else { + logger.Infof(ctx, "sandbox receiver ignoring message [%v]", sandboxMsg) + } + } + } +} + +func (p *SandboxCloudEventsReceiver) StopProcessing() error { + logger.Warning(context.Background(), "StopProcessing called on SandboxCloudEventsReceiver") + return nil +} + +func NewSandboxCloudEventProcessor(eventsHandler EventsHandlerInterface) *SandboxCloudEventsReceiver { + return &SandboxCloudEventsReceiver{ + Handler: eventsHandler, + subChan: sandbox_utils.MsgChan, + } +} diff --git a/flyteartifacts/pkg/server/processor/events_handler.go b/flyteartifacts/pkg/server/processor/events_handler.go new file mode 100644 index 0000000000..b8d4127c67 --- /dev/null +++ b/flyteartifacts/pkg/server/processor/events_handler.go @@ -0,0 +1,252 @@ +package processor + +import ( + "context" + "fmt" + event2 "github.com/cloudevents/sdk-go/v2/event" + "github.com/flyteorg/flyte/flyteartifacts/pkg/lib" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/event" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/golang/protobuf/proto" +) + +// ServiceCallHandler will take events and call the grpc endpoints directly. The service should most likely be local. +type ServiceCallHandler struct { + service artifact.ArtifactRegistryServer +} + +func (s *ServiceCallHandler) HandleEvent(ctx context.Context, cloudEvent *event2.Event, msg proto.Message) error { + source := cloudEvent.Source() + + switch msgType := msg.(type) { + case *event.CloudEventExecutionStart: + logger.Debugf(ctx, "Handling CloudEventExecutionStart [%v]", msgType.ExecutionId) + return s.HandleEventExecStart(ctx, msgType) + case *event.CloudEventWorkflowExecution: + logger.Debugf(ctx, "Handling CloudEventWorkflowExecution [%v]", msgType.RawEvent.ExecutionId) + return s.HandleEventWorkflowExec(ctx, source, msgType) + case *event.CloudEventTaskExecution: + logger.Debugf(ctx, "Handling CloudEventTaskExecution [%v]", msgType.RawEvent.ParentNodeExecutionId) + return s.HandleEventTaskExec(ctx, source, msgType) + case *event.CloudEventNodeExecution: + logger.Debugf(ctx, "Handling CloudEventNodeExecution [%v]", msgType.RawEvent.Id) + return s.HandleEventNodeExec(ctx, msgType) + default: + return fmt.Errorf("HandleEvent found unknown message type [%T]", msgType) + } +} + +func (s *ServiceCallHandler) HandleEventExecStart(_ context.Context, _ *event.CloudEventExecutionStart) error { + return nil +} + +// HandleEventWorkflowExec and the task one below are very similar. Can be combined in the future. +func (s *ServiceCallHandler) HandleEventWorkflowExec(ctx context.Context, source string, evt *event.CloudEventWorkflowExecution) error { + + if evt.RawEvent.Phase != core.WorkflowExecution_SUCCEEDED { + logger.Debug(ctx, "Skipping non-successful workflow execution event") + return nil + } + + execID := evt.RawEvent.ExecutionId + if evt.GetOutputData().GetLiterals() == nil || len(evt.OutputData.Literals) == 0 { + logger.Debugf(ctx, "No output data to process for workflow event from [%v]", execID) + } + + for varName, variable := range evt.OutputInterface.Outputs.Variables { + if variable.GetArtifactPartialId() != nil { + logger.Debugf(ctx, "Processing workflow output for %s, artifact name %s, from %v", varName, variable.GetArtifactPartialId().ArtifactKey.Name, execID) + + output := evt.OutputData.Literals[varName] + + // Add a tracking tag to the Literal before saving. + version := fmt.Sprintf("%s/%s", source, varName) + trackingTag := fmt.Sprintf("%s/%s/%s", execID.Project, execID.Domain, version) + if output.Metadata == nil { + output.Metadata = make(map[string]string, 1) + } + output.Metadata[lib.ArtifactKey] = trackingTag + + spec := artifact.ArtifactSpec{ + Value: output, + Type: evt.OutputInterface.Outputs.Variables[varName].Type, + Execution: execID, + } + + partitions, tag, err := getPartitionsAndTag( + ctx, + *variable.GetArtifactPartialId(), + variable, + evt.InputData, + ) + if err != nil { + logger.Errorf(ctx, "failed processing [%s] variable [%v] with error: %v", varName, variable, err) + return err + } + ak := core.ArtifactKey{ + Project: execID.Project, + Domain: execID.Domain, + Name: variable.GetArtifactPartialId().ArtifactKey.Name, + } + + req := artifact.CreateArtifactRequest{ + ArtifactKey: &ak, + Version: version, + Spec: &spec, + Partitions: partitions, + Tag: tag, + } + + resp, err := s.service.CreateArtifact(ctx, &req) + if err != nil { + logger.Errorf(ctx, "failed to create artifact for [%s] with error: %v", varName, err) + return err + } + logger.Debugf(ctx, "Created wf artifact id [%+v] for key %s", resp.Artifact.ArtifactId, varName) + } + } + + return nil +} + +func getPartitionsAndTag(ctx context.Context, partialID core.ArtifactID, variable *core.Variable, inputData *core.LiteralMap) (map[string]string, string, error) { + if variable == nil || inputData == nil { + return nil, "", fmt.Errorf("variable or input data is nil") + } + + var partitions map[string]string + // todo: consider updating idl to make CreateArtifactRequest just take a full Partitions + // object rather than a mapstrstr @eapolinario @enghabu + if partialID.GetPartitions().GetValue() != nil && len(partialID.GetPartitions().GetValue()) > 0 { + partitions = make(map[string]string, len(partialID.GetPartitions().GetValue())) + for k, lv := range partialID.GetPartitions().GetValue() { + if lv.GetStaticValue() != "" { + partitions[k] = lv.GetStaticValue() + } else if lv.GetInputBinding() != nil { + if lit, ok := inputData.Literals[lv.GetInputBinding().GetVar()]; ok { + // todo: figure out formatting. Maybe we can add formatting directives to the input binding + // @enghabu @eapolinario + renderedStr, err := lib.RenderLiteral(lit) + if err != nil { + logger.Errorf(ctx, "failed to render literal for input [%s] partition [%s] with error: %v", lv.GetInputBinding().GetVar(), k, err) + return nil, "", err + } + partitions[k] = renderedStr + } else { + return nil, "", fmt.Errorf("input binding [%s] not found in input data", lv.GetInputBinding().GetVar()) + } + } else { + return nil, "", fmt.Errorf("unknown binding found in context of a materialized artifact") + } + } + } + + var tag = "" + var err error + if lv := variable.GetArtifactTag().GetValue(); lv != nil { + if lv.GetStaticValue() != "" { + tag = lv.GetStaticValue() + } else if lv.GetInputBinding() != nil { + tag, err = lib.RenderLiteral(inputData.Literals[lv.GetInputBinding().GetVar()]) + if err != nil { + logger.Errorf(ctx, "failed to render input [%s] for tag with error: %v", lv.GetInputBinding().GetVar(), err) + return nil, "", err + } + } else { + return nil, "", fmt.Errorf("triggered binding found in context of a materialized artifact when rendering tag") + } + } + + return partitions, tag, nil +} + +func (s *ServiceCallHandler) HandleEventTaskExec(ctx context.Context, source string, evt *event.CloudEventTaskExecution) error { + + if evt.RawEvent.Phase != core.TaskExecution_SUCCEEDED { + logger.Debug(ctx, "Skipping non-successful task execution event") + return nil + } + // metric + + execID := evt.RawEvent.ParentNodeExecutionId.ExecutionId + if evt.GetOutputData().GetLiterals() == nil || len(evt.OutputData.Literals) == 0 { + logger.Debugf(ctx, "No output data to process for task event from [%v]: %s", execID, evt.RawEvent.TaskId.Name) + } + // Iterate through the output interface. For any outputs that have an artifact ID specified, grab the + // output Literal and construct a Create request and call the service. + for varName, variable := range evt.OutputInterface.Outputs.Variables { + if variable.GetArtifactPartialId() != nil { + logger.Debugf(ctx, "Processing output for %s, artifact name %s, from %v", varName, variable.GetArtifactPartialId().ArtifactKey.Name, execID) + + output := evt.OutputData.Literals[varName] + + taskExecID := core.TaskExecutionIdentifier{ + TaskId: evt.RawEvent.TaskId, + NodeExecutionId: evt.RawEvent.ParentNodeExecutionId, + RetryAttempt: evt.RawEvent.RetryAttempt, + } + + // Add a tracking tag to the Literal before saving. + version := fmt.Sprintf("%s/%s", source, varName) + trackingTag := fmt.Sprintf("%s/%s/%s", execID.Project, execID.Domain, version) + if output.Metadata == nil { + output.Metadata = make(map[string]string, 1) + } + output.Metadata[lib.ArtifactKey] = trackingTag + + spec := artifact.ArtifactSpec{ + Value: output, + Type: evt.OutputInterface.Outputs.Variables[varName].Type, + TaskExecution: &taskExecID, + Execution: execID, + } + + partitions, tag, err := getPartitionsAndTag( + ctx, + *variable.GetArtifactPartialId(), + variable, + evt.InputData, + ) + if err != nil { + logger.Errorf(ctx, "failed processing [%s] variable [%v] with error: %v", varName, variable, err) + return err + } + ak := core.ArtifactKey{ + Project: execID.Project, + Domain: execID.Domain, + Name: variable.GetArtifactPartialId().ArtifactKey.Name, + } + + req := artifact.CreateArtifactRequest{ + ArtifactKey: &ak, + Version: version, + Spec: &spec, + Partitions: partitions, + Tag: tag, + } + + resp, err := s.service.CreateArtifact(ctx, &req) + if err != nil { + logger.Errorf(ctx, "failed to create artifact for [%s] with error: %v", varName, err) + return err + } + // metric + logger.Debugf(ctx, "Created artifact id [%+v] for key %s", resp.Artifact.ArtifactId, varName) + } + } + + return nil +} + +func (s *ServiceCallHandler) HandleEventNodeExec(_ context.Context, _ *event.CloudEventNodeExecution) error { + return nil +} + +func NewServiceCallHandler(ctx context.Context, svc artifact.ArtifactRegistryServer) EventsHandlerInterface { + logger.Infof(ctx, "Creating new service call handler") + return &ServiceCallHandler{ + service: svc, + } +} diff --git a/flyteartifacts/pkg/server/processor/events_handler_test.go b/flyteartifacts/pkg/server/processor/events_handler_test.go new file mode 100644 index 0000000000..61d668215b --- /dev/null +++ b/flyteartifacts/pkg/server/processor/events_handler_test.go @@ -0,0 +1,17 @@ +package processor + +import ( + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestMetaDataWrite(t *testing.T) { + lit := core.Literal{ + Value: &core.Literal_Scalar{Scalar: &core.Scalar{Value: &core.Scalar_Primitive{Primitive: &core.Primitive{Value: &core.Primitive_StringValue{StringValue: "test"}}}}}, + } + lit.Metadata = make(map[string]string) + + lit.Metadata["test"] = "test" + assert.Equal(t, "test", lit.Metadata["test"]) +} diff --git a/flyteartifacts/pkg/server/processor/http_processor.go b/flyteartifacts/pkg/server/processor/http_processor.go new file mode 100644 index 0000000000..89e216d339 --- /dev/null +++ b/flyteartifacts/pkg/server/processor/http_processor.go @@ -0,0 +1,9 @@ +package processor + +import "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" + +// HTTPCloudEventProcessor could potentially run another local http service to handle traffic instead of a go channel +// todo: either implement or remote this file. +type HTTPCloudEventProcessor struct { + service *artifact.UnimplementedArtifactRegistryServer +} diff --git a/flyteartifacts/pkg/server/processor/interfaces.go b/flyteartifacts/pkg/server/processor/interfaces.go new file mode 100644 index 0000000000..ff61126adb --- /dev/null +++ b/flyteartifacts/pkg/server/processor/interfaces.go @@ -0,0 +1,22 @@ +package processor + +import ( + "context" + "github.com/cloudevents/sdk-go/v2/event" + "github.com/golang/protobuf/proto" +) + +type EventsHandlerInterface interface { + // HandleEvent The cloudEvent here is the original deserialized event and the proto msg is message + // that's been unmarshalled already from the cloudEvent.Data() field. + HandleEvent(ctx context.Context, cloudEvent *event.Event, msg proto.Message) error +} + +// EventsProcessorInterface is a copy of the notifications processor in admin except that start takes a context +type EventsProcessorInterface interface { + // StartProcessing whatever it is that needs to be processed. + StartProcessing(ctx context.Context) + + // StopProcessing is called when the server is shutting down. + StopProcessing() error +} diff --git a/flyteartifacts/pkg/server/processor/processor.go b/flyteartifacts/pkg/server/processor/processor.go new file mode 100644 index 0000000000..e3a2e67039 --- /dev/null +++ b/flyteartifacts/pkg/server/processor/processor.go @@ -0,0 +1,55 @@ +package processor + +import ( + "context" + "github.com/NYTimes/gizmo/pubsub" + gizmoAWS "github.com/NYTimes/gizmo/pubsub/aws" + "github.com/flyteorg/flyte/flyteartifacts/pkg/configuration" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" + configCommon "github.com/flyteorg/flyte/flytestdlib/config" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/flyteorg/flyte/flytestdlib/promutils" +) + +func NewBackgroundProcessor(ctx context.Context, processorConfiguration configuration.EventProcessorConfiguration, service artifact.ArtifactRegistryServer, scope promutils.Scope) EventsProcessorInterface { + // TODO: Add retry logic + //reconnectAttempts := processorConfiguration.ReconnectAttempts + //reconnectDelay := time.Duration(processorConfiguration.ReconnectDelaySeconds) * time.Second + var sub pubsub.Subscriber + switch processorConfiguration.CloudProvider { + case configCommon.CloudDeploymentAWS: + sqsConfig := gizmoAWS.SQSConfig{ + QueueName: processorConfiguration.Subscriber.QueueName, + QueueOwnerAccountID: processorConfiguration.Subscriber.AccountID, + // The AWS configuration type uses SNS to SQS for notifications. + // Gizmo by default will decode the SQS message using Base64 decoding. + // However, the message body of SQS is the SNS message format which isn't Base64 encoded. + // gatepr: Understand this when we do sqs testing + // TODO: + //ConsumeBase64: &enable64decoding, + } + sqsConfig.Region = processorConfiguration.Region + var err error + // gatepr: wrap this in retry + sub, err = gizmoAWS.NewSubscriber(sqsConfig) + if err != nil { + logger.Warnf(context.TODO(), "Failed to initialize new gizmo aws subscriber with config [%+v] and err: %v", sqsConfig, err) + } + + if err != nil { + panic(err) + } + return NewPubSubProcessor(sub, scope) + case configCommon.CloudDeploymentGCP: + panic("Artifacts not implemented for GCP") + case configCommon.CloudDeploymentSandbox: + handler := NewServiceCallHandler(ctx, service) + return NewSandboxCloudEventProcessor(handler) + case configCommon.CloudDeploymentLocal: + fallthrough + default: + logger.Infof(context.Background(), + "Not using a background events processor, cfg is [%s]", processorConfiguration) + return nil + } +} diff --git a/flyteartifacts/pkg/server/processor/sqs_processor.go b/flyteartifacts/pkg/server/processor/sqs_processor.go new file mode 100644 index 0000000000..ec82a65436 --- /dev/null +++ b/flyteartifacts/pkg/server/processor/sqs_processor.go @@ -0,0 +1,111 @@ +package processor + +import ( + "context" + "encoding/base64" + "encoding/json" + "github.com/NYTimes/gizmo/pubsub" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/flyteorg/flyte/flytestdlib/promutils" + "time" +) + +type PubSubProcessor struct { + sub pubsub.Subscriber +} + +func (p *PubSubProcessor) StartProcessing(ctx context.Context) { + for { + logger.Warningf(context.Background(), "Starting notifications processor") + err := p.run() + logger.Errorf(context.Background(), "error with running processor err: [%v] ", err) + time.Sleep(1000 * 1000 * 1000 * 5) + } +} + +// todo: i think we can easily add context +func (p *PubSubProcessor) run() error { + var err error + for msg := range p.sub.Start() { + // gatepr: add metrics + // Currently this is safe because Gizmo takes a string and casts it to a byte array. + stringMsg := string(msg.Message()) + + var snsJSONFormat map[string]interface{} + + // Typically, SNS populates SQS. This results in the message body of SQS having the SNS message format. + // The message format is documented here: https://docs.aws.amazon.com/sns/latest/dg/sns-message-and-json-formats.html + // The notification published is stored in the message field after unmarshalling the SQS message. + if err := json.Unmarshal(msg.Message(), &snsJSONFormat); err != nil { + //p.systemMetrics.MessageDecodingError.Inc() + logger.Errorf(context.Background(), "failed to unmarshall JSON message [%s] from processor with err: %v", stringMsg, err) + p.markMessageDone(msg) + continue + } + + var value interface{} + var ok bool + var valueString string + + if value, ok = snsJSONFormat["Message"]; !ok { + logger.Errorf(context.Background(), "failed to retrieve message from unmarshalled JSON object [%s]", stringMsg) + // p.systemMetrics.MessageDataError.Inc() + p.markMessageDone(msg) + continue + } + + if valueString, ok = value.(string); !ok { + // p.systemMetrics.MessageDataError.Inc() + logger.Errorf(context.Background(), "failed to retrieve notification message (in string format) from unmarshalled JSON object for message [%s]", stringMsg) + p.markMessageDone(msg) + continue + } + + // The Publish method for SNS Encodes the notification using Base64 then stringifies it before + // setting that as the message body for SNS. Do the inverse to retrieve the notification. + incomingMessageBytes, err := base64.StdEncoding.DecodeString(valueString) + if err != nil { + logger.Errorf(context.Background(), "failed to Base64 decode from message string [%s] from message [%s] with err: %v", valueString, stringMsg, err) + //p.systemMetrics.MessageDecodingError.Inc() + p.markMessageDone(msg) + continue + } + logger.Infof(context.Background(), "incoming message bytes [%v]", incomingMessageBytes) + // handle message + p.markMessageDone(msg) + } + + // According to https://github.com/NYTimes/gizmo/blob/f2b3deec03175b11cdfb6642245a49722751357f/pubsub/pubsub.go#L36-L39, + // the channel backing the subscriber will just close if there is an error. The call to Err() is needed to identify + // there was an error in the channel or there are no more messages left (resulting in no errors when calling Err()). + if err = p.sub.Err(); err != nil { + //p.systemMetrics.ChannelClosedError.Inc() + logger.Warningf(context.Background(), "The stream for the subscriber channel closed with err: %v", err) + } + + // If there are no errors, nil will be returned. + return err +} + +func (p *PubSubProcessor) markMessageDone(message pubsub.SubscriberMessage) { + if err := message.Done(); err != nil { + //p.systemMetrics.MessageDoneError.Inc() + logger.Errorf(context.Background(), "failed to mark message as Done() in processor with err: %v", err) + } +} + +func (p *PubSubProcessor) StopProcessing() error { + // Note: If the underlying channel is already closed, then Stop() will return an error. + err := p.sub.Stop() + if err != nil { + //p.systemMetrics.StopError.Inc() + logger.Errorf(context.Background(), "Failed to stop the subscriber channel gracefully with err: %v", err) + } + return err +} + +func NewPubSubProcessor(sub pubsub.Subscriber, _ promutils.Scope) *PubSubProcessor { + return &PubSubProcessor{ + sub: sub, + } +} diff --git a/flyteartifacts/pkg/server/server.go b/flyteartifacts/pkg/server/server.go new file mode 100644 index 0000000000..853a81728a --- /dev/null +++ b/flyteartifacts/pkg/server/server.go @@ -0,0 +1,105 @@ +package server + +import ( + "context" + "fmt" + "github.com/flyteorg/flyte/flyteartifacts/pkg/blob" + "github.com/flyteorg/flyte/flyteartifacts/pkg/configuration" + "github.com/flyteorg/flyte/flyteartifacts/pkg/db" + "github.com/flyteorg/flyte/flyteartifacts/pkg/server/processor" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" + "github.com/flyteorg/flyte/flytestdlib/database" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/flyteorg/flyte/flytestdlib/promutils" + "github.com/go-gormigrate/gormigrate/v2" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/pkg/errors" + "google.golang.org/grpc" + _ "net/http/pprof" // Required to serve application. +) + +type ArtifactService struct { + artifact.UnimplementedArtifactRegistryServer + Metrics ServiceMetrics + Service CoreService + EventConsumer processor.EventsProcessorInterface +} + +func (a *ArtifactService) CreateArtifact(ctx context.Context, req *artifact.CreateArtifactRequest) (*artifact.CreateArtifactResponse, error) { + return a.Service.CreateArtifact(ctx, req) +} + +func (a *ArtifactService) GetArtifact(ctx context.Context, req *artifact.GetArtifactRequest) (*artifact.GetArtifactResponse, error) { + return a.Service.GetArtifact(ctx, req) +} + +func (a *ArtifactService) SearchArtifacts(ctx context.Context, req *artifact.SearchArtifactsRequest) (*artifact.SearchArtifactsResponse, error) { + return a.Service.SearchArtifacts(ctx, req) +} + +func (a *ArtifactService) CreateTrigger(ctx context.Context, req *artifact.CreateTriggerRequest) (*artifact.CreateTriggerResponse, error) { + return a.Service.CreateTrigger(ctx, req) +} + +func (a *ArtifactService) DeleteTrigger(ctx context.Context, req *artifact.DeleteTriggerRequest) (*artifact.DeleteTriggerResponse, error) { + return a.Service.DeleteTrigger(ctx, req) +} + +func (a *ArtifactService) AddTag(ctx context.Context, req *artifact.AddTagRequest) (*artifact.AddTagResponse, error) { + return a.Service.AddTag(ctx, req) +} + +func (a *ArtifactService) RegisterProducer(ctx context.Context, req *artifact.RegisterProducerRequest) (*artifact.RegisterResponse, error) { + return a.Service.RegisterProducer(ctx, req) +} + +func (a *ArtifactService) RegisterConsumer(ctx context.Context, req *artifact.RegisterConsumerRequest) (*artifact.RegisterResponse, error) { + return a.Service.RegisterConsumer(ctx, req) +} + +func NewArtifactService(ctx context.Context, scope promutils.Scope) *ArtifactService { + cfg := configuration.GetApplicationConfig() + fmt.Println(cfg) + eventsCfg := configuration.GetEventsProcessorConfig() + + storage := db.NewStorage(ctx, scope.NewSubScope("storage:rds")) + blobStore := blob.NewArtifactBlobStore(ctx, scope.NewSubScope("storage:s3")) + coreService := NewCoreService(storage, &blobStore, scope.NewSubScope("server")) + eventsReceiverAndHandler := processor.NewBackgroundProcessor(ctx, *eventsCfg, &coreService, scope.NewSubScope("events")) + if eventsReceiverAndHandler != nil { + go func() { + logger.Info(ctx, "Starting Artifact service background processing...") + eventsReceiverAndHandler.StartProcessing(ctx) + }() + } + + return &ArtifactService{ + Metrics: InitMetrics(scope), + Service: coreService, + EventConsumer: eventsReceiverAndHandler, + } +} + +func HttpRegistrationHook(ctx context.Context, gwmux *runtime.ServeMux, grpcAddress string, grpcConnectionOpts []grpc.DialOption, _ promutils.Scope) error { + err := artifact.RegisterArtifactRegistryHandlerFromEndpoint(ctx, gwmux, grpcAddress, grpcConnectionOpts) + if err != nil { + return errors.Wrap(err, "error registering execution service") + } + return nil +} + +func GrpcRegistrationHook(ctx context.Context, server *grpc.Server, scope promutils.Scope) error { + serviceImpl := NewArtifactService(ctx, scope) + artifact.RegisterArtifactRegistryServer(server, serviceImpl) + + return nil +} + +// GetMigrations should be hidden behind the storage interface in the future. +func GetMigrations(_ context.Context) []*gormigrate.Migration { + return db.Migrations +} +func GetDbConfig() *database.DbConfig { + cfg := configuration.ApplicationConfig.GetConfig().(*configuration.ApplicationConfiguration) + return &cfg.ArtifactDatabaseConfig +} diff --git a/flyteartifacts/pkg/server/service.go b/flyteartifacts/pkg/server/service.go new file mode 100644 index 0000000000..cf1fa8ccb2 --- /dev/null +++ b/flyteartifacts/pkg/server/service.go @@ -0,0 +1,108 @@ +package server + +import ( + "context" + "fmt" + "github.com/flyteorg/flyte/flyteartifacts/pkg/models" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/flyteorg/flyte/flytestdlib/promutils" + "github.com/flyteorg/flyte/flytestdlib/storage" +) + +type CoreService struct { + Storage StorageInterface + BlobStore BlobStoreInterface + // TriggerHandler TriggerHandlerInterface + // SearchHandler SearchHandlerInterface +} + +func (c *CoreService) CreateArtifact(ctx context.Context, request *artifact.CreateArtifactRequest) (*artifact.CreateArtifactResponse, error) { + if request == nil { + return nil, nil + } + + artifactObj, err := models.CreateArtifactModelFromRequest(ctx, request.ArtifactKey, request.Spec, request.Version, request.Partitions, request.Tag, request.Spec.Principal) + if err != nil { + logger.Errorf(ctx, "Failed to validate Create request: %v", err) + return nil, err + } + + // Offload the metadata object before storing and add the offload location instead. + if artifactObj.Spec.UserMetadata != nil { + offloadLocation, err := c.BlobStore.OffloadArtifactCard(ctx, + artifactObj.ArtifactId.ArtifactKey.Name, artifactObj.ArtifactId.Version, artifactObj.Spec.UserMetadata) + if err != nil { + logger.Errorf(ctx, "Failed to offload metadata: %v", err) + return nil, err + } + artifactObj.OffloadedMetadata = offloadLocation.String() + } + + created, err := c.Storage.CreateArtifact(ctx, artifactObj) + if err != nil { + logger.Errorf(ctx, "Failed to create artifact: %v", err) + return nil, err + } + + return &artifact.CreateArtifactResponse{Artifact: &created.Artifact}, nil +} + +func (c *CoreService) GetArtifact(ctx context.Context, request *artifact.GetArtifactRequest) (*artifact.GetArtifactResponse, error) { + if request == nil || request.Query == nil { + return nil, fmt.Errorf("request cannot be nil") + } + + getResult, err := c.Storage.GetArtifact(ctx, *request.Query) + if err != nil { + logger.Errorf(ctx, "Failed to get artifact: %v", err) + return nil, err + } + if request.Details && len(getResult.OffloadedMetadata) > 0 { + card, err := c.BlobStore.RetrieveArtifactCard(ctx, storage.DataReference(getResult.OffloadedMetadata)) + if err != nil { + logger.Errorf(ctx, "Failed to retrieve artifact card: %v", err) + return nil, err + } + getResult.Artifact.GetSpec().UserMetadata = card + } + + return &artifact.GetArtifactResponse{Artifact: &getResult.Artifact}, nil +} + +func (c *CoreService) CreateTrigger(ctx context.Context, request *artifact.CreateTriggerRequest) (*artifact.CreateTriggerResponse, error) { + return &artifact.CreateTriggerResponse{}, nil +} + +func (c *CoreService) DeleteTrigger(ctx context.Context, request *artifact.DeleteTriggerRequest) (*artifact.DeleteTriggerResponse, error) { + return &artifact.DeleteTriggerResponse{}, nil +} + +func (c *CoreService) AddTag(ctx context.Context, request *artifact.AddTagRequest) (*artifact.AddTagResponse, error) { + return &artifact.AddTagResponse{}, nil +} + +func (c *CoreService) RegisterProducer(ctx context.Context, request *artifact.RegisterProducerRequest) (*artifact.RegisterResponse, error) { + return &artifact.RegisterResponse{}, nil +} + +func (c *CoreService) RegisterConsumer(ctx context.Context, request *artifact.RegisterConsumerRequest) (*artifact.RegisterResponse, error) { + return &artifact.RegisterResponse{}, nil +} + +func (c *CoreService) SearchArtifacts(ctx context.Context, request *artifact.SearchArtifactsRequest) (*artifact.SearchArtifactsResponse, error) { + return &artifact.SearchArtifactsResponse{}, nil +} + +// HandleCloudEvent is the stand-in for simple open-source handling of the event stream, rather than using +// a real +func (c *CoreService) HandleCloudEvent(ctx context.Context, request *artifact.CloudEventRequest) (*artifact.CloudEventResponse, error) { + return &artifact.CloudEventResponse{}, nil +} + +func NewCoreService(storage StorageInterface, blobStore BlobStoreInterface, _ promutils.Scope) CoreService { + return CoreService{ + Storage: storage, + BlobStore: blobStore, + } +} diff --git a/flyteartifacts/sandbox.yaml b/flyteartifacts/sandbox.yaml new file mode 100644 index 0000000000..a8268af6bd --- /dev/null +++ b/flyteartifacts/sandbox.yaml @@ -0,0 +1,15 @@ +artifactsServer: + artifactBlobStoreConfig: + type: stow + stow: + kind: s3 + config: + disable_ssl: true + v2_signing: true + endpoint: http://localhost:30002 + auth_type: accesskey + access_key_id: minio + secret_key: miniostorage +logger: + level: 5 + show-source: true diff --git a/flytecopilot/go.mod b/flytecopilot/go.mod index 6565cf119f..ee0d9bc347 100644 --- a/flytecopilot/go.mod +++ b/flytecopilot/go.mod @@ -81,11 +81,11 @@ 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/crypto v0.9.0 // indirect + golang.org/x/net v0.10.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/sys v0.8.0 // indirect + golang.org/x/term v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.1.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect diff --git a/flytecopilot/go.sum b/flytecopilot/go.sum index 3b2bf17b22..9acbedc723 100644 --- a/flytecopilot/go.sum +++ b/flytecopilot/go.sum @@ -433,8 +433,8 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm 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.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -508,8 +508,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.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -585,12 +585,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.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-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.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= 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= diff --git a/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.grpc.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.grpc.pb.cc index bb94168de8..6ce4ed9236 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.grpc.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.grpc.pb.cc @@ -22,6 +22,7 @@ namespace artifact { static const char* ArtifactRegistry_method_names[] = { "/flyteidl.artifact.ArtifactRegistry/CreateArtifact", "/flyteidl.artifact.ArtifactRegistry/GetArtifact", + "/flyteidl.artifact.ArtifactRegistry/SearchArtifacts", "/flyteidl.artifact.ArtifactRegistry/CreateTrigger", "/flyteidl.artifact.ArtifactRegistry/DeleteTrigger", "/flyteidl.artifact.ArtifactRegistry/AddTag", @@ -38,11 +39,12 @@ std::unique_ptr< ArtifactRegistry::Stub> ArtifactRegistry::NewStub(const std::sh ArtifactRegistry::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel) : channel_(channel), rpcmethod_CreateArtifact_(ArtifactRegistry_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) , rpcmethod_GetArtifact_(ArtifactRegistry_method_names[1], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_CreateTrigger_(ArtifactRegistry_method_names[2], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_DeleteTrigger_(ArtifactRegistry_method_names[3], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_AddTag_(ArtifactRegistry_method_names[4], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_RegisterProducer_(ArtifactRegistry_method_names[5], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_RegisterConsumer_(ArtifactRegistry_method_names[6], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_SearchArtifacts_(ArtifactRegistry_method_names[2], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_CreateTrigger_(ArtifactRegistry_method_names[3], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_DeleteTrigger_(ArtifactRegistry_method_names[4], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_AddTag_(ArtifactRegistry_method_names[5], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_RegisterProducer_(ArtifactRegistry_method_names[6], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_RegisterConsumer_(ArtifactRegistry_method_names[7], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) {} ::grpc::Status ArtifactRegistry::Stub::CreateArtifact(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateArtifactRequest& request, ::flyteidl::artifact::CreateArtifactResponse* response) { @@ -101,6 +103,34 @@ ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::GetArtifactResponse>* A return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::artifact::GetArtifactResponse>::Create(channel_.get(), cq, rpcmethod_GetArtifact_, context, request, false); } +::grpc::Status ArtifactRegistry::Stub::SearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::flyteidl::artifact::SearchArtifactsResponse* response) { + return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_SearchArtifacts_, context, request, response); +} + +void ArtifactRegistry::Stub::experimental_async::SearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_SearchArtifacts_, context, request, response, std::move(f)); +} + +void ArtifactRegistry::Stub::experimental_async::SearchArtifacts(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::SearchArtifactsResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_SearchArtifacts_, context, request, response, std::move(f)); +} + +void ArtifactRegistry::Stub::experimental_async::SearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_SearchArtifacts_, context, request, response, reactor); +} + +void ArtifactRegistry::Stub::experimental_async::SearchArtifacts(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::SearchArtifactsResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_SearchArtifacts_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::SearchArtifactsResponse>* ArtifactRegistry::Stub::AsyncSearchArtifactsRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::artifact::SearchArtifactsResponse>::Create(channel_.get(), cq, rpcmethod_SearchArtifacts_, context, request, true); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::SearchArtifactsResponse>* ArtifactRegistry::Stub::PrepareAsyncSearchArtifactsRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::artifact::SearchArtifactsResponse>::Create(channel_.get(), cq, rpcmethod_SearchArtifacts_, context, request, false); +} + ::grpc::Status ArtifactRegistry::Stub::CreateTrigger(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest& request, ::flyteidl::artifact::CreateTriggerResponse* response) { return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_CreateTrigger_, context, request, response); } @@ -255,25 +285,30 @@ ArtifactRegistry::Service::Service() { AddMethod(new ::grpc::internal::RpcServiceMethod( ArtifactRegistry_method_names[2], ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< ArtifactRegistry::Service, ::flyteidl::artifact::SearchArtifactsRequest, ::flyteidl::artifact::SearchArtifactsResponse>( + std::mem_fn(&ArtifactRegistry::Service::SearchArtifacts), this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + ArtifactRegistry_method_names[3], + ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< ArtifactRegistry::Service, ::flyteidl::artifact::CreateTriggerRequest, ::flyteidl::artifact::CreateTriggerResponse>( std::mem_fn(&ArtifactRegistry::Service::CreateTrigger), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - ArtifactRegistry_method_names[3], + ArtifactRegistry_method_names[4], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< ArtifactRegistry::Service, ::flyteidl::artifact::DeleteTriggerRequest, ::flyteidl::artifact::DeleteTriggerResponse>( std::mem_fn(&ArtifactRegistry::Service::DeleteTrigger), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - ArtifactRegistry_method_names[4], + ArtifactRegistry_method_names[5], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< ArtifactRegistry::Service, ::flyteidl::artifact::AddTagRequest, ::flyteidl::artifact::AddTagResponse>( std::mem_fn(&ArtifactRegistry::Service::AddTag), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - ArtifactRegistry_method_names[5], + ArtifactRegistry_method_names[6], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< ArtifactRegistry::Service, ::flyteidl::artifact::RegisterProducerRequest, ::flyteidl::artifact::RegisterResponse>( std::mem_fn(&ArtifactRegistry::Service::RegisterProducer), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - ArtifactRegistry_method_names[6], + ArtifactRegistry_method_names[7], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< ArtifactRegistry::Service, ::flyteidl::artifact::RegisterConsumerRequest, ::flyteidl::artifact::RegisterResponse>( std::mem_fn(&ArtifactRegistry::Service::RegisterConsumer), this))); @@ -296,6 +331,13 @@ ::grpc::Status ArtifactRegistry::Service::GetArtifact(::grpc::ServerContext* con return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } +::grpc::Status ArtifactRegistry::Service::SearchArtifacts(::grpc::ServerContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + ::grpc::Status ArtifactRegistry::Service::CreateTrigger(::grpc::ServerContext* context, const ::flyteidl::artifact::CreateTriggerRequest* request, ::flyteidl::artifact::CreateTriggerResponse* response) { (void) context; (void) request; diff --git a/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.grpc.pb.h b/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.grpc.pb.h index 6df0363cae..2a641788a2 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.grpc.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.grpc.pb.h @@ -62,10 +62,13 @@ class ArtifactRegistry final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::GetArtifactResponse>> PrepareAsyncGetArtifact(::grpc::ClientContext* context, const ::flyteidl::artifact::GetArtifactRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::GetArtifactResponse>>(PrepareAsyncGetArtifactRaw(context, request, cq)); } - // rpc ListArtifactNames (ListArtifactNamesRequest) returns (ListArtifactNamesResponse) {} - // - // rpc ListArtifacts (ListArtifactsRequest) returns (ListArtifactsResponse) {} - // + virtual ::grpc::Status SearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::flyteidl::artifact::SearchArtifactsResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::SearchArtifactsResponse>> AsyncSearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::SearchArtifactsResponse>>(AsyncSearchArtifactsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::SearchArtifactsResponse>> PrepareAsyncSearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::SearchArtifactsResponse>>(PrepareAsyncSearchArtifactsRaw(context, request, cq)); + } virtual ::grpc::Status CreateTrigger(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest& request, ::flyteidl::artifact::CreateTriggerResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::CreateTriggerResponse>> AsyncCreateTrigger(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::CreateTriggerResponse>>(AsyncCreateTriggerRaw(context, request, cq)); @@ -112,10 +115,10 @@ class ArtifactRegistry final { virtual void GetArtifact(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::GetArtifactResponse* response, std::function) = 0; virtual void GetArtifact(::grpc::ClientContext* context, const ::flyteidl::artifact::GetArtifactRequest* request, ::flyteidl::artifact::GetArtifactResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetArtifact(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::GetArtifactResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; - // rpc ListArtifactNames (ListArtifactNamesRequest) returns (ListArtifactNamesResponse) {} - // - // rpc ListArtifacts (ListArtifactsRequest) returns (ListArtifactsResponse) {} - // + virtual void SearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response, std::function) = 0; + virtual void SearchArtifacts(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::SearchArtifactsResponse* response, std::function) = 0; + virtual void SearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + virtual void SearchArtifacts(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::SearchArtifactsResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void CreateTrigger(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest* request, ::flyteidl::artifact::CreateTriggerResponse* response, std::function) = 0; virtual void CreateTrigger(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::CreateTriggerResponse* response, std::function) = 0; virtual void CreateTrigger(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest* request, ::flyteidl::artifact::CreateTriggerResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; @@ -143,6 +146,8 @@ class ArtifactRegistry final { virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::CreateArtifactResponse>* PrepareAsyncCreateArtifactRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateArtifactRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::GetArtifactResponse>* AsyncGetArtifactRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::GetArtifactRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::GetArtifactResponse>* PrepareAsyncGetArtifactRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::GetArtifactRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::SearchArtifactsResponse>* AsyncSearchArtifactsRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::SearchArtifactsResponse>* PrepareAsyncSearchArtifactsRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::CreateTriggerResponse>* AsyncCreateTriggerRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::CreateTriggerResponse>* PrepareAsyncCreateTriggerRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::artifact::DeleteTriggerResponse>* AsyncDeleteTriggerRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::DeleteTriggerRequest& request, ::grpc::CompletionQueue* cq) = 0; @@ -171,6 +176,13 @@ class ArtifactRegistry final { std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::GetArtifactResponse>> PrepareAsyncGetArtifact(::grpc::ClientContext* context, const ::flyteidl::artifact::GetArtifactRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::GetArtifactResponse>>(PrepareAsyncGetArtifactRaw(context, request, cq)); } + ::grpc::Status SearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::flyteidl::artifact::SearchArtifactsResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::SearchArtifactsResponse>> AsyncSearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::SearchArtifactsResponse>>(AsyncSearchArtifactsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::SearchArtifactsResponse>> PrepareAsyncSearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::SearchArtifactsResponse>>(PrepareAsyncSearchArtifactsRaw(context, request, cq)); + } ::grpc::Status CreateTrigger(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest& request, ::flyteidl::artifact::CreateTriggerResponse* response) override; std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::CreateTriggerResponse>> AsyncCreateTrigger(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::CreateTriggerResponse>>(AsyncCreateTriggerRaw(context, request, cq)); @@ -217,6 +229,10 @@ class ArtifactRegistry final { void GetArtifact(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::GetArtifactResponse* response, std::function) override; void GetArtifact(::grpc::ClientContext* context, const ::flyteidl::artifact::GetArtifactRequest* request, ::flyteidl::artifact::GetArtifactResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; void GetArtifact(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::GetArtifactResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void SearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response, std::function) override; + void SearchArtifacts(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::SearchArtifactsResponse* response, std::function) override; + void SearchArtifacts(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void SearchArtifacts(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::SearchArtifactsResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; void CreateTrigger(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest* request, ::flyteidl::artifact::CreateTriggerResponse* response, std::function) override; void CreateTrigger(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::artifact::CreateTriggerResponse* response, std::function) override; void CreateTrigger(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest* request, ::flyteidl::artifact::CreateTriggerResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; @@ -252,6 +268,8 @@ class ArtifactRegistry final { ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::CreateArtifactResponse>* PrepareAsyncCreateArtifactRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateArtifactRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::GetArtifactResponse>* AsyncGetArtifactRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::GetArtifactRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::GetArtifactResponse>* PrepareAsyncGetArtifactRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::GetArtifactRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::SearchArtifactsResponse>* AsyncSearchArtifactsRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::SearchArtifactsResponse>* PrepareAsyncSearchArtifactsRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::SearchArtifactsRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::CreateTriggerResponse>* AsyncCreateTriggerRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::CreateTriggerResponse>* PrepareAsyncCreateTriggerRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::CreateTriggerRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::DeleteTriggerResponse>* AsyncDeleteTriggerRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::DeleteTriggerRequest& request, ::grpc::CompletionQueue* cq) override; @@ -264,6 +282,7 @@ class ArtifactRegistry final { ::grpc::ClientAsyncResponseReader< ::flyteidl::artifact::RegisterResponse>* PrepareAsyncRegisterConsumerRaw(::grpc::ClientContext* context, const ::flyteidl::artifact::RegisterConsumerRequest& request, ::grpc::CompletionQueue* cq) override; const ::grpc::internal::RpcMethod rpcmethod_CreateArtifact_; const ::grpc::internal::RpcMethod rpcmethod_GetArtifact_; + const ::grpc::internal::RpcMethod rpcmethod_SearchArtifacts_; const ::grpc::internal::RpcMethod rpcmethod_CreateTrigger_; const ::grpc::internal::RpcMethod rpcmethod_DeleteTrigger_; const ::grpc::internal::RpcMethod rpcmethod_AddTag_; @@ -278,10 +297,7 @@ class ArtifactRegistry final { virtual ~Service(); virtual ::grpc::Status CreateArtifact(::grpc::ServerContext* context, const ::flyteidl::artifact::CreateArtifactRequest* request, ::flyteidl::artifact::CreateArtifactResponse* response); virtual ::grpc::Status GetArtifact(::grpc::ServerContext* context, const ::flyteidl::artifact::GetArtifactRequest* request, ::flyteidl::artifact::GetArtifactResponse* response); - // rpc ListArtifactNames (ListArtifactNamesRequest) returns (ListArtifactNamesResponse) {} - // - // rpc ListArtifacts (ListArtifactsRequest) returns (ListArtifactsResponse) {} - // + virtual ::grpc::Status SearchArtifacts(::grpc::ServerContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response); virtual ::grpc::Status CreateTrigger(::grpc::ServerContext* context, const ::flyteidl::artifact::CreateTriggerRequest* request, ::flyteidl::artifact::CreateTriggerResponse* response); virtual ::grpc::Status DeleteTrigger(::grpc::ServerContext* context, const ::flyteidl::artifact::DeleteTriggerRequest* request, ::flyteidl::artifact::DeleteTriggerResponse* response); virtual ::grpc::Status AddTag(::grpc::ServerContext* context, const ::flyteidl::artifact::AddTagRequest* request, ::flyteidl::artifact::AddTagResponse* response); @@ -329,12 +345,32 @@ class ArtifactRegistry final { } }; template + class WithAsyncMethod_SearchArtifacts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_SearchArtifacts() { + ::grpc::Service::MarkMethodAsync(2); + } + ~WithAsyncMethod_SearchArtifacts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SearchArtifacts(::grpc::ServerContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestSearchArtifacts(::grpc::ServerContext* context, ::flyteidl::artifact::SearchArtifactsRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::artifact::SearchArtifactsResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template class WithAsyncMethod_CreateTrigger : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_CreateTrigger() { - ::grpc::Service::MarkMethodAsync(2); + ::grpc::Service::MarkMethodAsync(3); } ~WithAsyncMethod_CreateTrigger() override { BaseClassMustBeDerivedFromService(this); @@ -345,7 +381,7 @@ class ArtifactRegistry final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCreateTrigger(::grpc::ServerContext* context, ::flyteidl::artifact::CreateTriggerRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::artifact::CreateTriggerResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -354,7 +390,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_DeleteTrigger() { - ::grpc::Service::MarkMethodAsync(3); + ::grpc::Service::MarkMethodAsync(4); } ~WithAsyncMethod_DeleteTrigger() override { BaseClassMustBeDerivedFromService(this); @@ -365,7 +401,7 @@ class ArtifactRegistry final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestDeleteTrigger(::grpc::ServerContext* context, ::flyteidl::artifact::DeleteTriggerRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::artifact::DeleteTriggerResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -374,7 +410,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_AddTag() { - ::grpc::Service::MarkMethodAsync(4); + ::grpc::Service::MarkMethodAsync(5); } ~WithAsyncMethod_AddTag() override { BaseClassMustBeDerivedFromService(this); @@ -385,7 +421,7 @@ class ArtifactRegistry final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestAddTag(::grpc::ServerContext* context, ::flyteidl::artifact::AddTagRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::artifact::AddTagResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(5, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -394,7 +430,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_RegisterProducer() { - ::grpc::Service::MarkMethodAsync(5); + ::grpc::Service::MarkMethodAsync(6); } ~WithAsyncMethod_RegisterProducer() override { BaseClassMustBeDerivedFromService(this); @@ -405,7 +441,7 @@ class ArtifactRegistry final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestRegisterProducer(::grpc::ServerContext* context, ::flyteidl::artifact::RegisterProducerRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::artifact::RegisterResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(5, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(6, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -414,7 +450,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_RegisterConsumer() { - ::grpc::Service::MarkMethodAsync(6); + ::grpc::Service::MarkMethodAsync(7); } ~WithAsyncMethod_RegisterConsumer() override { BaseClassMustBeDerivedFromService(this); @@ -425,10 +461,10 @@ class ArtifactRegistry final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestRegisterConsumer(::grpc::ServerContext* context, ::flyteidl::artifact::RegisterConsumerRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::artifact::RegisterResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(6, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(7, context, request, response, new_call_cq, notification_cq, tag); } }; - typedef WithAsyncMethod_CreateArtifact > > > > > > AsyncService; + typedef WithAsyncMethod_CreateArtifact > > > > > > > AsyncService; template class ExperimentalWithCallbackMethod_CreateArtifact : public BaseClass { private: @@ -492,12 +528,43 @@ class ArtifactRegistry final { virtual void GetArtifact(::grpc::ServerContext* context, const ::flyteidl::artifact::GetArtifactRequest* request, ::flyteidl::artifact::GetArtifactResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } }; template + class ExperimentalWithCallbackMethod_SearchArtifacts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithCallbackMethod_SearchArtifacts() { + ::grpc::Service::experimental().MarkMethodCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::SearchArtifactsRequest, ::flyteidl::artifact::SearchArtifactsResponse>( + [this](::grpc::ServerContext* context, + const ::flyteidl::artifact::SearchArtifactsRequest* request, + ::flyteidl::artifact::SearchArtifactsResponse* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + return this->SearchArtifacts(context, request, response, controller); + })); + } + void SetMessageAllocatorFor_SearchArtifacts( + ::grpc::experimental::MessageAllocator< ::flyteidl::artifact::SearchArtifactsRequest, ::flyteidl::artifact::SearchArtifactsResponse>* allocator) { + static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::SearchArtifactsRequest, ::flyteidl::artifact::SearchArtifactsResponse>*>( + ::grpc::Service::experimental().GetHandler(2)) + ->SetMessageAllocator(allocator); + } + ~ExperimentalWithCallbackMethod_SearchArtifacts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SearchArtifacts(::grpc::ServerContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void SearchArtifacts(::grpc::ServerContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + template class ExperimentalWithCallbackMethod_CreateTrigger : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_CreateTrigger() { - ::grpc::Service::experimental().MarkMethodCallback(2, + ::grpc::Service::experimental().MarkMethodCallback(3, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::CreateTriggerRequest, ::flyteidl::artifact::CreateTriggerResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::artifact::CreateTriggerRequest* request, @@ -509,7 +576,7 @@ class ArtifactRegistry final { void SetMessageAllocatorFor_CreateTrigger( ::grpc::experimental::MessageAllocator< ::flyteidl::artifact::CreateTriggerRequest, ::flyteidl::artifact::CreateTriggerResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::CreateTriggerRequest, ::flyteidl::artifact::CreateTriggerResponse>*>( - ::grpc::Service::experimental().GetHandler(2)) + ::grpc::Service::experimental().GetHandler(3)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_CreateTrigger() override { @@ -528,7 +595,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_DeleteTrigger() { - ::grpc::Service::experimental().MarkMethodCallback(3, + ::grpc::Service::experimental().MarkMethodCallback(4, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::DeleteTriggerRequest, ::flyteidl::artifact::DeleteTriggerResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::artifact::DeleteTriggerRequest* request, @@ -540,7 +607,7 @@ class ArtifactRegistry final { void SetMessageAllocatorFor_DeleteTrigger( ::grpc::experimental::MessageAllocator< ::flyteidl::artifact::DeleteTriggerRequest, ::flyteidl::artifact::DeleteTriggerResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::DeleteTriggerRequest, ::flyteidl::artifact::DeleteTriggerResponse>*>( - ::grpc::Service::experimental().GetHandler(3)) + ::grpc::Service::experimental().GetHandler(4)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_DeleteTrigger() override { @@ -559,7 +626,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_AddTag() { - ::grpc::Service::experimental().MarkMethodCallback(4, + ::grpc::Service::experimental().MarkMethodCallback(5, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::AddTagRequest, ::flyteidl::artifact::AddTagResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::artifact::AddTagRequest* request, @@ -571,7 +638,7 @@ class ArtifactRegistry final { void SetMessageAllocatorFor_AddTag( ::grpc::experimental::MessageAllocator< ::flyteidl::artifact::AddTagRequest, ::flyteidl::artifact::AddTagResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::AddTagRequest, ::flyteidl::artifact::AddTagResponse>*>( - ::grpc::Service::experimental().GetHandler(4)) + ::grpc::Service::experimental().GetHandler(5)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_AddTag() override { @@ -590,7 +657,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_RegisterProducer() { - ::grpc::Service::experimental().MarkMethodCallback(5, + ::grpc::Service::experimental().MarkMethodCallback(6, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::RegisterProducerRequest, ::flyteidl::artifact::RegisterResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::artifact::RegisterProducerRequest* request, @@ -602,7 +669,7 @@ class ArtifactRegistry final { void SetMessageAllocatorFor_RegisterProducer( ::grpc::experimental::MessageAllocator< ::flyteidl::artifact::RegisterProducerRequest, ::flyteidl::artifact::RegisterResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::RegisterProducerRequest, ::flyteidl::artifact::RegisterResponse>*>( - ::grpc::Service::experimental().GetHandler(5)) + ::grpc::Service::experimental().GetHandler(6)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_RegisterProducer() override { @@ -621,7 +688,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_RegisterConsumer() { - ::grpc::Service::experimental().MarkMethodCallback(6, + ::grpc::Service::experimental().MarkMethodCallback(7, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::RegisterConsumerRequest, ::flyteidl::artifact::RegisterResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::artifact::RegisterConsumerRequest* request, @@ -633,7 +700,7 @@ class ArtifactRegistry final { void SetMessageAllocatorFor_RegisterConsumer( ::grpc::experimental::MessageAllocator< ::flyteidl::artifact::RegisterConsumerRequest, ::flyteidl::artifact::RegisterResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::artifact::RegisterConsumerRequest, ::flyteidl::artifact::RegisterResponse>*>( - ::grpc::Service::experimental().GetHandler(6)) + ::grpc::Service::experimental().GetHandler(7)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_RegisterConsumer() override { @@ -646,7 +713,7 @@ class ArtifactRegistry final { } virtual void RegisterConsumer(::grpc::ServerContext* context, const ::flyteidl::artifact::RegisterConsumerRequest* request, ::flyteidl::artifact::RegisterResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } }; - typedef ExperimentalWithCallbackMethod_CreateArtifact > > > > > > ExperimentalCallbackService; + typedef ExperimentalWithCallbackMethod_CreateArtifact > > > > > > > ExperimentalCallbackService; template class WithGenericMethod_CreateArtifact : public BaseClass { private: @@ -682,12 +749,29 @@ class ArtifactRegistry final { } }; template + class WithGenericMethod_SearchArtifacts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_SearchArtifacts() { + ::grpc::Service::MarkMethodGeneric(2); + } + ~WithGenericMethod_SearchArtifacts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SearchArtifacts(::grpc::ServerContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template class WithGenericMethod_CreateTrigger : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_CreateTrigger() { - ::grpc::Service::MarkMethodGeneric(2); + ::grpc::Service::MarkMethodGeneric(3); } ~WithGenericMethod_CreateTrigger() override { BaseClassMustBeDerivedFromService(this); @@ -704,7 +788,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_DeleteTrigger() { - ::grpc::Service::MarkMethodGeneric(3); + ::grpc::Service::MarkMethodGeneric(4); } ~WithGenericMethod_DeleteTrigger() override { BaseClassMustBeDerivedFromService(this); @@ -721,7 +805,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_AddTag() { - ::grpc::Service::MarkMethodGeneric(4); + ::grpc::Service::MarkMethodGeneric(5); } ~WithGenericMethod_AddTag() override { BaseClassMustBeDerivedFromService(this); @@ -738,7 +822,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_RegisterProducer() { - ::grpc::Service::MarkMethodGeneric(5); + ::grpc::Service::MarkMethodGeneric(6); } ~WithGenericMethod_RegisterProducer() override { BaseClassMustBeDerivedFromService(this); @@ -755,7 +839,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_RegisterConsumer() { - ::grpc::Service::MarkMethodGeneric(6); + ::grpc::Service::MarkMethodGeneric(7); } ~WithGenericMethod_RegisterConsumer() override { BaseClassMustBeDerivedFromService(this); @@ -807,12 +891,32 @@ class ArtifactRegistry final { } }; template + class WithRawMethod_SearchArtifacts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithRawMethod_SearchArtifacts() { + ::grpc::Service::MarkMethodRaw(2); + } + ~WithRawMethod_SearchArtifacts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SearchArtifacts(::grpc::ServerContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestSearchArtifacts(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template class WithRawMethod_CreateTrigger : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_CreateTrigger() { - ::grpc::Service::MarkMethodRaw(2); + ::grpc::Service::MarkMethodRaw(3); } ~WithRawMethod_CreateTrigger() override { BaseClassMustBeDerivedFromService(this); @@ -823,7 +927,7 @@ class ArtifactRegistry final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCreateTrigger(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -832,7 +936,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_DeleteTrigger() { - ::grpc::Service::MarkMethodRaw(3); + ::grpc::Service::MarkMethodRaw(4); } ~WithRawMethod_DeleteTrigger() override { BaseClassMustBeDerivedFromService(this); @@ -843,7 +947,7 @@ class ArtifactRegistry final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestDeleteTrigger(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -852,7 +956,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_AddTag() { - ::grpc::Service::MarkMethodRaw(4); + ::grpc::Service::MarkMethodRaw(5); } ~WithRawMethod_AddTag() override { BaseClassMustBeDerivedFromService(this); @@ -863,7 +967,7 @@ class ArtifactRegistry final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestAddTag(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(5, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -872,7 +976,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_RegisterProducer() { - ::grpc::Service::MarkMethodRaw(5); + ::grpc::Service::MarkMethodRaw(6); } ~WithRawMethod_RegisterProducer() override { BaseClassMustBeDerivedFromService(this); @@ -883,7 +987,7 @@ class ArtifactRegistry final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestRegisterProducer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(5, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(6, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -892,7 +996,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_RegisterConsumer() { - ::grpc::Service::MarkMethodRaw(6); + ::grpc::Service::MarkMethodRaw(7); } ~WithRawMethod_RegisterConsumer() override { BaseClassMustBeDerivedFromService(this); @@ -903,7 +1007,7 @@ class ArtifactRegistry final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestRegisterConsumer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(6, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(7, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -957,12 +1061,37 @@ class ArtifactRegistry final { virtual void GetArtifact(::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } }; template + class ExperimentalWithRawCallbackMethod_SearchArtifacts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithRawCallbackMethod_SearchArtifacts() { + ::grpc::Service::experimental().MarkMethodRawCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this](::grpc::ServerContext* context, + const ::grpc::ByteBuffer* request, + ::grpc::ByteBuffer* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + this->SearchArtifacts(context, request, response, controller); + })); + } + ~ExperimentalWithRawCallbackMethod_SearchArtifacts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SearchArtifacts(::grpc::ServerContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void SearchArtifacts(::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + template class ExperimentalWithRawCallbackMethod_CreateTrigger : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_CreateTrigger() { - ::grpc::Service::experimental().MarkMethodRawCallback(2, + ::grpc::Service::experimental().MarkMethodRawCallback(3, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -987,7 +1116,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_DeleteTrigger() { - ::grpc::Service::experimental().MarkMethodRawCallback(3, + ::grpc::Service::experimental().MarkMethodRawCallback(4, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -1012,7 +1141,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_AddTag() { - ::grpc::Service::experimental().MarkMethodRawCallback(4, + ::grpc::Service::experimental().MarkMethodRawCallback(5, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -1037,7 +1166,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_RegisterProducer() { - ::grpc::Service::experimental().MarkMethodRawCallback(5, + ::grpc::Service::experimental().MarkMethodRawCallback(6, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -1062,7 +1191,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_RegisterConsumer() { - ::grpc::Service::experimental().MarkMethodRawCallback(6, + ::grpc::Service::experimental().MarkMethodRawCallback(7, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -1122,12 +1251,32 @@ class ArtifactRegistry final { virtual ::grpc::Status StreamedGetArtifact(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::artifact::GetArtifactRequest,::flyteidl::artifact::GetArtifactResponse>* server_unary_streamer) = 0; }; template + class WithStreamedUnaryMethod_SearchArtifacts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithStreamedUnaryMethod_SearchArtifacts() { + ::grpc::Service::MarkMethodStreamed(2, + new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::artifact::SearchArtifactsRequest, ::flyteidl::artifact::SearchArtifactsResponse>(std::bind(&WithStreamedUnaryMethod_SearchArtifacts::StreamedSearchArtifacts, this, std::placeholders::_1, std::placeholders::_2))); + } + ~WithStreamedUnaryMethod_SearchArtifacts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status SearchArtifacts(::grpc::ServerContext* context, const ::flyteidl::artifact::SearchArtifactsRequest* request, ::flyteidl::artifact::SearchArtifactsResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedSearchArtifacts(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::artifact::SearchArtifactsRequest,::flyteidl::artifact::SearchArtifactsResponse>* server_unary_streamer) = 0; + }; + template class WithStreamedUnaryMethod_CreateTrigger : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_CreateTrigger() { - ::grpc::Service::MarkMethodStreamed(2, + ::grpc::Service::MarkMethodStreamed(3, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::artifact::CreateTriggerRequest, ::flyteidl::artifact::CreateTriggerResponse>(std::bind(&WithStreamedUnaryMethod_CreateTrigger::StreamedCreateTrigger, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_CreateTrigger() override { @@ -1147,7 +1296,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_DeleteTrigger() { - ::grpc::Service::MarkMethodStreamed(3, + ::grpc::Service::MarkMethodStreamed(4, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::artifact::DeleteTriggerRequest, ::flyteidl::artifact::DeleteTriggerResponse>(std::bind(&WithStreamedUnaryMethod_DeleteTrigger::StreamedDeleteTrigger, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_DeleteTrigger() override { @@ -1167,7 +1316,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_AddTag() { - ::grpc::Service::MarkMethodStreamed(4, + ::grpc::Service::MarkMethodStreamed(5, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::artifact::AddTagRequest, ::flyteidl::artifact::AddTagResponse>(std::bind(&WithStreamedUnaryMethod_AddTag::StreamedAddTag, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_AddTag() override { @@ -1187,7 +1336,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_RegisterProducer() { - ::grpc::Service::MarkMethodStreamed(5, + ::grpc::Service::MarkMethodStreamed(6, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::artifact::RegisterProducerRequest, ::flyteidl::artifact::RegisterResponse>(std::bind(&WithStreamedUnaryMethod_RegisterProducer::StreamedRegisterProducer, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_RegisterProducer() override { @@ -1207,7 +1356,7 @@ class ArtifactRegistry final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_RegisterConsumer() { - ::grpc::Service::MarkMethodStreamed(6, + ::grpc::Service::MarkMethodStreamed(7, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::artifact::RegisterConsumerRequest, ::flyteidl::artifact::RegisterResponse>(std::bind(&WithStreamedUnaryMethod_RegisterConsumer::StreamedRegisterConsumer, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_RegisterConsumer() override { @@ -1221,9 +1370,9 @@ class ArtifactRegistry final { // replace default version of method with streamed unary virtual ::grpc::Status StreamedRegisterConsumer(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::artifact::RegisterConsumerRequest,::flyteidl::artifact::RegisterResponse>* server_unary_streamer) = 0; }; - typedef WithStreamedUnaryMethod_CreateArtifact > > > > > > StreamedUnaryService; + typedef WithStreamedUnaryMethod_CreateArtifact > > > > > > > StreamedUnaryService; typedef Service SplitStreamedService; - typedef WithStreamedUnaryMethod_CreateArtifact > > > > > > StreamedService; + typedef WithStreamedUnaryMethod_CreateArtifact > > > > > > > StreamedService; }; } // namespace artifact diff --git a/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.pb.cc index 927d1f6ba5..5257ccbb99 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.pb.cc @@ -32,6 +32,9 @@ extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2finterface_2eproto ::google::pr extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2finterface_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_VariableMap_flyteidl_2fcore_2finterface_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fliterals_2eproto ::google::protobuf::internal::SCCInfo<10> scc_info_Literal_flyteidl_2fcore_2fliterals_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2ftypes_2eproto ::google::protobuf::internal::SCCInfo<6> scc_info_LiteralType_flyteidl_2fcore_2ftypes_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fevent_2fcloudevents_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_CloudEventNodeExecution_flyteidl_2fevent_2fcloudevents_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fevent_2fcloudevents_2eproto ::google::protobuf::internal::SCCInfo<8> scc_info_CloudEventTaskExecution_flyteidl_2fevent_2fcloudevents_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fevent_2fcloudevents_2eproto ::google::protobuf::internal::SCCInfo<8> scc_info_CloudEventWorkflowExecution_flyteidl_2fevent_2fcloudevents_2eproto; extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fany_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Any_google_2fprotobuf_2fany_2eproto; namespace flyteidl { namespace artifact { @@ -71,14 +74,14 @@ class ListArtifactNamesResponseDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; } _ListArtifactNamesResponse_default_instance_; -class ListArtifactsRequestDefaultTypeInternal { +class SearchArtifactsRequestDefaultTypeInternal { public: - ::google::protobuf::internal::ExplicitlyConstructed _instance; -} _ListArtifactsRequest_default_instance_; -class ListArtifactsResponseDefaultTypeInternal { + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _SearchArtifactsRequest_default_instance_; +class SearchArtifactsResponseDefaultTypeInternal { public: - ::google::protobuf::internal::ExplicitlyConstructed _instance; -} _ListArtifactsResponse_default_instance_; + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _SearchArtifactsResponse_default_instance_; class AddTagRequestDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; @@ -123,6 +126,17 @@ class RegisterResponseDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; } _RegisterResponse_default_instance_; +class CloudEventRequestDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; + const ::flyteidl::event::CloudEventWorkflowExecution* workflow_execution_event_; + const ::flyteidl::event::CloudEventTaskExecution* task_execution_event_; + const ::flyteidl::event::CloudEventNodeExecution* node_execution_event_; +} _CloudEventRequest_default_instance_; +class CloudEventResponseDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _CloudEventResponse_default_instance_; } // namespace artifact } // namespace flyteidl static void InitDefaultsArtifact_flyteidl_2fartifact_2fartifacts_2eproto() { @@ -264,34 +278,34 @@ ::google::protobuf::internal::SCCInfo<1> scc_info_ListArtifactNamesResponse_flyt {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsListArtifactNamesResponse_flyteidl_2fartifact_2fartifacts_2eproto}, { &scc_info_ArtifactKey_flyteidl_2fcore_2fartifact_5fid_2eproto.base,}}; -static void InitDefaultsListArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto() { +static void InitDefaultsSearchArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; { - void* ptr = &::flyteidl::artifact::_ListArtifactsRequest_default_instance_; - new (ptr) ::flyteidl::artifact::ListArtifactsRequest(); + void* ptr = &::flyteidl::artifact::_SearchArtifactsRequest_default_instance_; + new (ptr) ::flyteidl::artifact::SearchArtifactsRequest(); ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); } - ::flyteidl::artifact::ListArtifactsRequest::InitAsDefaultInstance(); + ::flyteidl::artifact::SearchArtifactsRequest::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<1> scc_info_ListArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsListArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto}, { +::google::protobuf::internal::SCCInfo<1> scc_info_SearchArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsSearchArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto}, { &scc_info_ArtifactKey_flyteidl_2fcore_2fartifact_5fid_2eproto.base,}}; -static void InitDefaultsListArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto() { +static void InitDefaultsSearchArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; { - void* ptr = &::flyteidl::artifact::_ListArtifactsResponse_default_instance_; - new (ptr) ::flyteidl::artifact::ListArtifactsResponse(); + void* ptr = &::flyteidl::artifact::_SearchArtifactsResponse_default_instance_; + new (ptr) ::flyteidl::artifact::SearchArtifactsResponse(); ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); } - ::flyteidl::artifact::ListArtifactsResponse::InitAsDefaultInstance(); + ::flyteidl::artifact::SearchArtifactsResponse::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<1> scc_info_ListArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsListArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto}, { +::google::protobuf::internal::SCCInfo<1> scc_info_SearchArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsSearchArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto}, { &scc_info_Artifact_flyteidl_2fartifact_2fartifacts_2eproto.base,}}; static void InitDefaultsAddTagRequest_flyteidl_2fartifact_2fartifacts_2eproto() { @@ -457,6 +471,37 @@ static void InitDefaultsRegisterResponse_flyteidl_2fartifact_2fartifacts_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_RegisterResponse_flyteidl_2fartifact_2fartifacts_2eproto = {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsRegisterResponse_flyteidl_2fartifact_2fartifacts_2eproto}, {}}; +static void InitDefaultsCloudEventRequest_flyteidl_2fartifact_2fartifacts_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::artifact::_CloudEventRequest_default_instance_; + new (ptr) ::flyteidl::artifact::CloudEventRequest(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::artifact::CloudEventRequest::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<3> scc_info_CloudEventRequest_flyteidl_2fartifact_2fartifacts_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsCloudEventRequest_flyteidl_2fartifact_2fartifacts_2eproto}, { + &scc_info_CloudEventWorkflowExecution_flyteidl_2fevent_2fcloudevents_2eproto.base, + &scc_info_CloudEventTaskExecution_flyteidl_2fevent_2fcloudevents_2eproto.base, + &scc_info_CloudEventNodeExecution_flyteidl_2fevent_2fcloudevents_2eproto.base,}}; + +static void InitDefaultsCloudEventResponse_flyteidl_2fartifact_2fartifacts_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::artifact::_CloudEventResponse_default_instance_; + new (ptr) ::flyteidl::artifact::CloudEventResponse(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::artifact::CloudEventResponse::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_CloudEventResponse_flyteidl_2fartifact_2fartifacts_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsCloudEventResponse_flyteidl_2fartifact_2fartifacts_2eproto}, {}}; + void InitDefaults_flyteidl_2fartifact_2fartifacts_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_Artifact_flyteidl_2fartifact_2fartifacts_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_CreateArtifactRequest_PartitionsEntry_DoNotUse_flyteidl_2fartifact_2fartifacts_2eproto.base); @@ -467,8 +512,8 @@ void InitDefaults_flyteidl_2fartifact_2fartifacts_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_GetArtifactResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_ListArtifactNamesRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_ListArtifactNamesResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); - ::google::protobuf::internal::InitSCC(&scc_info_ListArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); - ::google::protobuf::internal::InitSCC(&scc_info_ListArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_SearchArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_SearchArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_AddTagRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_AddTagResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_CreateTriggerRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); @@ -480,9 +525,11 @@ void InitDefaults_flyteidl_2fartifact_2fartifacts_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_ArtifactConsumer_flyteidl_2fartifact_2fartifacts_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_RegisterConsumerRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_RegisterResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_CloudEventRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_CloudEventResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); } -::google::protobuf::Metadata file_level_metadata_flyteidl_2fartifact_2fartifacts_2eproto[22]; +::google::protobuf::Metadata file_level_metadata_flyteidl_2fartifact_2fartifacts_2eproto[24]; constexpr ::google::protobuf::EnumDescriptor const** file_level_enum_descriptors_flyteidl_2fartifact_2fartifacts_2eproto = nullptr; constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fartifact_2fartifacts_2eproto = nullptr; @@ -525,7 +572,6 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fartifact_2fartifacts_2ep PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::ArtifactSpec, execution_), PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::ArtifactSpec, principal_), PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::ArtifactSpec, short_description_), - PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::ArtifactSpec, long_description_), PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::ArtifactSpec, user_metadata_), PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::ArtifactSpec, metadata_type_), ~0u, // no _has_bits_ @@ -561,17 +607,20 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fartifact_2fartifacts_2ep ~0u, // no _weak_field_map_ PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::ListArtifactNamesResponse, artifact_keys_), ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::ListArtifactsRequest, _internal_metadata_), + PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::SearchArtifactsRequest, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::ListArtifactsRequest, artifact_key_), + PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::SearchArtifactsRequest, artifact_key_), + PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::SearchArtifactsRequest, filters_), + PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::SearchArtifactsRequest, token_), + PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::SearchArtifactsRequest, limit_), ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::ListArtifactsResponse, _internal_metadata_), + PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::SearchArtifactsResponse, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::ListArtifactsResponse, artifacts_), + PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::SearchArtifactsResponse, artifacts_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::AddTagRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -638,30 +687,46 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fartifact_2fartifacts_2ep ~0u, // no _extensions_ ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::CloudEventRequest, _internal_metadata_), + ~0u, // no _extensions_ + PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::CloudEventRequest, _oneof_case_[0]), + ~0u, // no _weak_field_map_ + offsetof(::flyteidl::artifact::CloudEventRequestDefaultTypeInternal, workflow_execution_event_), + offsetof(::flyteidl::artifact::CloudEventRequestDefaultTypeInternal, task_execution_event_), + offsetof(::flyteidl::artifact::CloudEventRequestDefaultTypeInternal, node_execution_event_), + PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::CloudEventRequest, event_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::artifact::CloudEventResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::artifact::Artifact)}, { 8, 15, sizeof(::flyteidl::artifact::CreateArtifactRequest_PartitionsEntry_DoNotUse)}, { 17, -1, sizeof(::flyteidl::artifact::CreateArtifactRequest)}, { 27, -1, sizeof(::flyteidl::artifact::ArtifactSpec)}, - { 41, -1, sizeof(::flyteidl::artifact::CreateArtifactResponse)}, - { 47, -1, sizeof(::flyteidl::artifact::GetArtifactRequest)}, - { 54, -1, sizeof(::flyteidl::artifact::GetArtifactResponse)}, - { 60, -1, sizeof(::flyteidl::artifact::ListArtifactNamesRequest)}, - { 67, -1, sizeof(::flyteidl::artifact::ListArtifactNamesResponse)}, - { 73, -1, sizeof(::flyteidl::artifact::ListArtifactsRequest)}, - { 79, -1, sizeof(::flyteidl::artifact::ListArtifactsResponse)}, - { 85, -1, sizeof(::flyteidl::artifact::AddTagRequest)}, - { 93, -1, sizeof(::flyteidl::artifact::AddTagResponse)}, - { 98, -1, sizeof(::flyteidl::artifact::CreateTriggerRequest)}, - { 104, -1, sizeof(::flyteidl::artifact::CreateTriggerResponse)}, - { 109, -1, sizeof(::flyteidl::artifact::DeleteTriggerRequest)}, - { 115, -1, sizeof(::flyteidl::artifact::DeleteTriggerResponse)}, - { 120, -1, sizeof(::flyteidl::artifact::ArtifactProducer)}, - { 127, -1, sizeof(::flyteidl::artifact::RegisterProducerRequest)}, - { 133, -1, sizeof(::flyteidl::artifact::ArtifactConsumer)}, - { 140, -1, sizeof(::flyteidl::artifact::RegisterConsumerRequest)}, - { 146, -1, sizeof(::flyteidl::artifact::RegisterResponse)}, + { 40, -1, sizeof(::flyteidl::artifact::CreateArtifactResponse)}, + { 46, -1, sizeof(::flyteidl::artifact::GetArtifactRequest)}, + { 53, -1, sizeof(::flyteidl::artifact::GetArtifactResponse)}, + { 59, -1, sizeof(::flyteidl::artifact::ListArtifactNamesRequest)}, + { 66, -1, sizeof(::flyteidl::artifact::ListArtifactNamesResponse)}, + { 72, -1, sizeof(::flyteidl::artifact::SearchArtifactsRequest)}, + { 81, -1, sizeof(::flyteidl::artifact::SearchArtifactsResponse)}, + { 87, -1, sizeof(::flyteidl::artifact::AddTagRequest)}, + { 95, -1, sizeof(::flyteidl::artifact::AddTagResponse)}, + { 100, -1, sizeof(::flyteidl::artifact::CreateTriggerRequest)}, + { 106, -1, sizeof(::flyteidl::artifact::CreateTriggerResponse)}, + { 111, -1, sizeof(::flyteidl::artifact::DeleteTriggerRequest)}, + { 117, -1, sizeof(::flyteidl::artifact::DeleteTriggerResponse)}, + { 122, -1, sizeof(::flyteidl::artifact::ArtifactProducer)}, + { 129, -1, sizeof(::flyteidl::artifact::RegisterProducerRequest)}, + { 135, -1, sizeof(::flyteidl::artifact::ArtifactConsumer)}, + { 142, -1, sizeof(::flyteidl::artifact::RegisterConsumerRequest)}, + { 148, -1, sizeof(::flyteidl::artifact::RegisterResponse)}, + { 153, -1, sizeof(::flyteidl::artifact::CloudEventRequest)}, + { 162, -1, sizeof(::flyteidl::artifact::CloudEventResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -674,8 +739,8 @@ static ::google::protobuf::Message const * const file_default_instances[] = { reinterpret_cast(&::flyteidl::artifact::_GetArtifactResponse_default_instance_), reinterpret_cast(&::flyteidl::artifact::_ListArtifactNamesRequest_default_instance_), reinterpret_cast(&::flyteidl::artifact::_ListArtifactNamesResponse_default_instance_), - reinterpret_cast(&::flyteidl::artifact::_ListArtifactsRequest_default_instance_), - reinterpret_cast(&::flyteidl::artifact::_ListArtifactsResponse_default_instance_), + reinterpret_cast(&::flyteidl::artifact::_SearchArtifactsRequest_default_instance_), + reinterpret_cast(&::flyteidl::artifact::_SearchArtifactsResponse_default_instance_), reinterpret_cast(&::flyteidl::artifact::_AddTagRequest_default_instance_), reinterpret_cast(&::flyteidl::artifact::_AddTagResponse_default_instance_), reinterpret_cast(&::flyteidl::artifact::_CreateTriggerRequest_default_instance_), @@ -687,111 +752,143 @@ static ::google::protobuf::Message const * const file_default_instances[] = { reinterpret_cast(&::flyteidl::artifact::_ArtifactConsumer_default_instance_), reinterpret_cast(&::flyteidl::artifact::_RegisterConsumerRequest_default_instance_), reinterpret_cast(&::flyteidl::artifact::_RegisterResponse_default_instance_), + reinterpret_cast(&::flyteidl::artifact::_CloudEventRequest_default_instance_), + reinterpret_cast(&::flyteidl::artifact::_CloudEventResponse_default_instance_), }; ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fartifact_2fartifacts_2eproto = { {}, AddDescriptors_flyteidl_2fartifact_2fartifacts_2eproto, "flyteidl/artifact/artifacts.proto", schemas, file_default_instances, TableStruct_flyteidl_2fartifact_2fartifacts_2eproto::offsets, - file_level_metadata_flyteidl_2fartifact_2fartifacts_2eproto, 22, file_level_enum_descriptors_flyteidl_2fartifact_2fartifacts_2eproto, file_level_service_descriptors_flyteidl_2fartifact_2fartifacts_2eproto, + file_level_metadata_flyteidl_2fartifact_2fartifacts_2eproto, 24, file_level_enum_descriptors_flyteidl_2fartifact_2fartifacts_2eproto, file_level_service_descriptors_flyteidl_2fartifact_2fartifacts_2eproto, }; const char descriptor_table_protodef_flyteidl_2fartifact_2fartifacts_2eproto[] = "\n!flyteidl/artifact/artifacts.proto\022\021fly" "teidl.artifact\032\031google/protobuf/any.prot" - "o\032 flyteidl/admin/launch_plan.proto\032\034fly" - "teidl/core/literals.proto\032\031flyteidl/core" - "/types.proto\032\036flyteidl/core/identifier.p" - "roto\032\037flyteidl/core/artifact_id.proto\032\035f" - "lyteidl/core/interface.proto\"w\n\010Artifact" - "\022.\n\013artifact_id\030\001 \001(\0132\031.flyteidl.core.Ar" - "tifactID\022-\n\004spec\030\002 \001(\0132\037.flyteidl.artifa" - "ct.ArtifactSpec\022\014\n\004tags\030\003 \003(\t\"\227\002\n\025Create" - "ArtifactRequest\0220\n\014artifact_key\030\001 \001(\0132\032." - "flyteidl.core.ArtifactKey\022\017\n\007version\030\003 \001" - "(\t\022-\n\004spec\030\002 \001(\0132\037.flyteidl.artifact.Art" - "ifactSpec\022L\n\npartitions\030\004 \003(\01328.flyteidl" - ".artifact.CreateArtifactRequest.Partitio" - "nsEntry\022\013\n\003tag\030\005 \001(\t\0321\n\017PartitionsEntry\022" - "\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\352\002\n\014Arti" - "factSpec\022%\n\005value\030\001 \001(\0132\026.flyteidl.core." - "Literal\022(\n\004type\030\002 \001(\0132\032.flyteidl.core.Li" - "teralType\022>\n\016task_execution\030\005 \001(\0132&.flyt" - "eidl.core.TaskExecutionIdentifier\022=\n\texe" - "cution\030\006 \001(\0132*.flyteidl.core.WorkflowExe" - "cutionIdentifier\022\021\n\tprincipal\030\007 \001(\t\022\031\n\021s" - "hort_description\030\010 \001(\t\022\030\n\020long_descripti" - "on\030\t \001(\t\022+\n\ruser_metadata\030\n \001(\0132\024.google" - ".protobuf.Any\022\025\n\rmetadata_type\030\013 \001(\t\"G\n\026" - "CreateArtifactResponse\022-\n\010artifact\030\001 \001(\013" - "2\033.flyteidl.artifact.Artifact\"R\n\022GetArti" - "factRequest\022+\n\005query\030\001 \001(\0132\034.flyteidl.co" - "re.ArtifactQuery\022\017\n\007details\030\002 \001(\010\"D\n\023Get" - "ArtifactResponse\022-\n\010artifact\030\001 \001(\0132\033.fly" - "teidl.artifact.Artifact\";\n\030ListArtifactN" - "amesRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002" - " \001(\t\"N\n\031ListArtifactNamesResponse\0221\n\rart" - "ifact_keys\030\001 \003(\0132\032.flyteidl.core.Artifac" - "tKey\"H\n\024ListArtifactsRequest\0220\n\014artifact" - "_key\030\001 \001(\0132\032.flyteidl.core.ArtifactKey\"G" - "\n\025ListArtifactsResponse\022.\n\tartifacts\030\001 \003" - "(\0132\033.flyteidl.artifact.Artifact\"a\n\rAddTa" - "gRequest\022.\n\013artifact_id\030\001 \001(\0132\031.flyteidl" - ".core.ArtifactID\022\r\n\005value\030\002 \001(\t\022\021\n\toverw" - "rite\030\003 \001(\010\"\020\n\016AddTagResponse\"O\n\024CreateTr" - "iggerRequest\0227\n\023trigger_launch_plan\030\001 \001(" - "\0132\032.flyteidl.admin.LaunchPlan\"\027\n\025CreateT" - "riggerResponse\"E\n\024DeleteTriggerRequest\022-" - "\n\ntrigger_id\030\001 \001(\0132\031.flyteidl.core.Ident" - "ifier\"\027\n\025DeleteTriggerResponse\"m\n\020Artifa" - "ctProducer\022,\n\tentity_id\030\001 \001(\0132\031.flyteidl" - ".core.Identifier\022+\n\007outputs\030\002 \001(\0132\032.flyt" - "eidl.core.VariableMap\"Q\n\027RegisterProduce" - "rRequest\0226\n\tproducers\030\001 \003(\0132#.flyteidl.a" - "rtifact.ArtifactProducer\"m\n\020ArtifactCons" - "umer\022,\n\tentity_id\030\001 \001(\0132\031.flyteidl.core." - "Identifier\022+\n\006inputs\030\002 \001(\0132\033.flyteidl.co" - "re.ParameterMap\"Q\n\027RegisterConsumerReque" - "st\0226\n\tconsumers\030\001 \003(\0132#.flyteidl.artifac" - "t.ArtifactConsumer\"\022\n\020RegisterResponse2\306" - "\005\n\020ArtifactRegistry\022g\n\016CreateArtifact\022(." - "flyteidl.artifact.CreateArtifactRequest\032" - ").flyteidl.artifact.CreateArtifactRespon" - "se\"\000\022^\n\013GetArtifact\022%.flyteidl.artifact." - "GetArtifactRequest\032&.flyteidl.artifact.G" - "etArtifactResponse\"\000\022d\n\rCreateTrigger\022\'." - "flyteidl.artifact.CreateTriggerRequest\032(" - ".flyteidl.artifact.CreateTriggerResponse" - "\"\000\022d\n\rDeleteTrigger\022\'.flyteidl.artifact." - "DeleteTriggerRequest\032(.flyteidl.artifact" - ".DeleteTriggerResponse\"\000\022O\n\006AddTag\022 .fly" - "teidl.artifact.AddTagRequest\032!.flyteidl." - "artifact.AddTagResponse\"\000\022e\n\020RegisterPro" - "ducer\022*.flyteidl.artifact.RegisterProduc" - "erRequest\032#.flyteidl.artifact.RegisterRe" - "sponse\"\000\022e\n\020RegisterConsumer\022*.flyteidl." - "artifact.RegisterConsumerRequest\032#.flyte" - "idl.artifact.RegisterResponse\"\000B@Z>githu" - "b.com/flyteorg/flyte/flyteidl/gen/pb-go/" - "flyteidl/artifactb\006proto3" + "o\032\034google/api/annotations.proto\032 flyteid" + "l/admin/launch_plan.proto\032\034flyteidl/core" + "/literals.proto\032\031flyteidl/core/types.pro" + "to\032\036flyteidl/core/identifier.proto\032\037flyt" + "eidl/core/artifact_id.proto\032\035flyteidl/co" + "re/interface.proto\032 flyteidl/event/cloud" + "events.proto\"w\n\010Artifact\022.\n\013artifact_id\030" + "\001 \001(\0132\031.flyteidl.core.ArtifactID\022-\n\004spec" + "\030\002 \001(\0132\037.flyteidl.artifact.ArtifactSpec\022" + "\014\n\004tags\030\003 \003(\t\"\227\002\n\025CreateArtifactRequest\022" + "0\n\014artifact_key\030\001 \001(\0132\032.flyteidl.core.Ar" + "tifactKey\022\017\n\007version\030\003 \001(\t\022-\n\004spec\030\002 \001(\013" + "2\037.flyteidl.artifact.ArtifactSpec\022L\n\npar" + "titions\030\004 \003(\01328.flyteidl.artifact.Create" + "ArtifactRequest.PartitionsEntry\022\013\n\003tag\030\005" + " \001(\t\0321\n\017PartitionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005" + "value\030\002 \001(\t:\0028\001\"\320\002\n\014ArtifactSpec\022%\n\005valu" + "e\030\001 \001(\0132\026.flyteidl.core.Literal\022(\n\004type\030" + "\002 \001(\0132\032.flyteidl.core.LiteralType\022>\n\016tas" + "k_execution\030\005 \001(\0132&.flyteidl.core.TaskEx" + "ecutionIdentifier\022=\n\texecution\030\006 \001(\0132*.f" + "lyteidl.core.WorkflowExecutionIdentifier" + "\022\021\n\tprincipal\030\007 \001(\t\022\031\n\021short_description" + "\030\010 \001(\t\022+\n\ruser_metadata\030\n \001(\0132\024.google.p" + "rotobuf.Any\022\025\n\rmetadata_type\030\013 \001(\t\"G\n\026Cr" + "eateArtifactResponse\022-\n\010artifact\030\001 \001(\0132\033" + ".flyteidl.artifact.Artifact\"R\n\022GetArtifa" + "ctRequest\022+\n\005query\030\001 \001(\0132\034.flyteidl.core" + ".ArtifactQuery\022\017\n\007details\030\002 \001(\010\"D\n\023GetAr" + "tifactResponse\022-\n\010artifact\030\001 \001(\0132\033.flyte" + "idl.artifact.Artifact\";\n\030ListArtifactNam" + "esRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001" + "(\t\"N\n\031ListArtifactNamesResponse\0221\n\rartif" + "act_keys\030\001 \003(\0132\032.flyteidl.core.ArtifactK" + "ey\"y\n\026SearchArtifactsRequest\0220\n\014artifact" + "_key\030\001 \001(\0132\032.flyteidl.core.ArtifactKey\022\017" + "\n\007filters\030\002 \001(\t\022\r\n\005token\030\003 \001(\t\022\r\n\005limit\030" + "\004 \001(\005\"I\n\027SearchArtifactsResponse\022.\n\tarti" + "facts\030\001 \003(\0132\033.flyteidl.artifact.Artifact" + "\"a\n\rAddTagRequest\022.\n\013artifact_id\030\001 \001(\0132\031" + ".flyteidl.core.ArtifactID\022\r\n\005value\030\002 \001(\t" + "\022\021\n\toverwrite\030\003 \001(\010\"\020\n\016AddTagResponse\"O\n" + "\024CreateTriggerRequest\0227\n\023trigger_launch_" + "plan\030\001 \001(\0132\032.flyteidl.admin.LaunchPlan\"\027" + "\n\025CreateTriggerResponse\"E\n\024DeleteTrigger" + "Request\022-\n\ntrigger_id\030\001 \001(\0132\031.flyteidl.c" + "ore.Identifier\"\027\n\025DeleteTriggerResponse\"" + "m\n\020ArtifactProducer\022,\n\tentity_id\030\001 \001(\0132\031" + ".flyteidl.core.Identifier\022+\n\007outputs\030\002 \001" + "(\0132\032.flyteidl.core.VariableMap\"Q\n\027Regist" + "erProducerRequest\0226\n\tproducers\030\001 \003(\0132#.f" + "lyteidl.artifact.ArtifactProducer\"m\n\020Art" + "ifactConsumer\022,\n\tentity_id\030\001 \001(\0132\031.flyte" + "idl.core.Identifier\022+\n\006inputs\030\002 \001(\0132\033.fl" + "yteidl.core.ParameterMap\"Q\n\027RegisterCons" + "umerRequest\0226\n\tconsumers\030\001 \003(\0132#.flyteid" + "l.artifact.ArtifactConsumer\"\022\n\020RegisterR" + "esponse\"\377\001\n\021CloudEventRequest\022O\n\030workflo" + "w_execution_event\030\001 \001(\0132+.flyteidl.event" + ".CloudEventWorkflowExecutionH\000\022G\n\024task_e" + "xecution_event\030\002 \001(\0132\'.flyteidl.event.Cl" + "oudEventTaskExecutionH\000\022G\n\024node_executio" + "n_event\030\003 \001(\0132\'.flyteidl.event.CloudEven" + "tNodeExecutionH\000B\007\n\005event\"\024\n\022CloudEventR" + "esponse2\273\013\n\020ArtifactRegistry\022g\n\016CreateAr" + "tifact\022(.flyteidl.artifact.CreateArtifac" + "tRequest\032).flyteidl.artifact.CreateArtif" + "actResponse\"\000\022\315\004\n\013GetArtifact\022%.flyteidl" + ".artifact.GetArtifactRequest\032&.flyteidl." + "artifact.GetArtifactResponse\"\356\003\202\323\344\223\002\347\003\022\022" + "/data/v1/artifactsZ\252\001\022\247\001/data/v1/artifac" + "t/id/{query.artifact_id.artifact_key.pro" + "ject}/{query.artifact_id.artifact_key.do" + "main}/{query.artifact_id.artifact_key.na" + "me}/{query.artifact_id.version}Z\216\001\022\213\001/da" + "ta/v1/artifact/id/{query.artifact_id.art" + "ifact_key.project}/{query.artifact_id.ar" + "tifact_key.domain}/{query.artifact_id.ar" + "tifact_key.name}Z\222\001\022\217\001/data/v1/artifact/" + "tag/{query.artifact_tag.artifact_key.pro" + "ject}/{query.artifact_tag.artifact_key.d" + "omain}/{query.artifact_tag.artifact_key." + "name}\022\202\002\n\017SearchArtifacts\022).flyteidl.art" + "ifact.SearchArtifactsRequest\032*.flyteidl." + "artifact.SearchArtifactsResponse\"\227\001\202\323\344\223\002" + "\220\001\022O/data/v1/query/{artifact_key.project" + "}/{artifact_key.domain}/{artifact_key.na" + "me}Z=\022;/data/v1/query/{artifact_key.proj" + "ect}/{artifact_key.domain}\022d\n\rCreateTrig" + "ger\022\'.flyteidl.artifact.CreateTriggerReq" + "uest\032(.flyteidl.artifact.CreateTriggerRe" + "sponse\"\000\022d\n\rDeleteTrigger\022\'.flyteidl.art" + "ifact.DeleteTriggerRequest\032(.flyteidl.ar" + "tifact.DeleteTriggerResponse\"\000\022O\n\006AddTag" + "\022 .flyteidl.artifact.AddTagRequest\032!.fly" + "teidl.artifact.AddTagResponse\"\000\022e\n\020Regis" + "terProducer\022*.flyteidl.artifact.Register" + "ProducerRequest\032#.flyteidl.artifact.Regi" + "sterResponse\"\000\022e\n\020RegisterConsumer\022*.fly" + "teidl.artifact.RegisterConsumerRequest\032#" + ".flyteidl.artifact.RegisterResponse\"\000B@Z" + ">github.com/flyteorg/flyte/flyteidl/gen/" + "pb-go/flyteidl/artifactb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fartifact_2fartifacts_2eproto = { false, InitDefaults_flyteidl_2fartifact_2fartifacts_2eproto, descriptor_table_protodef_flyteidl_2fartifact_2fartifacts_2eproto, - "flyteidl/artifact/artifacts.proto", &assign_descriptors_table_flyteidl_2fartifact_2fartifacts_2eproto, 3065, + "flyteidl/artifact/artifacts.proto", &assign_descriptors_table_flyteidl_2fartifact_2fartifacts_2eproto, 4191, }; void AddDescriptors_flyteidl_2fartifact_2fartifacts_2eproto() { - static constexpr ::google::protobuf::internal::InitFunc deps[7] = + static constexpr ::google::protobuf::internal::InitFunc deps[9] = { ::AddDescriptors_google_2fprotobuf_2fany_2eproto, + ::AddDescriptors_google_2fapi_2fannotations_2eproto, ::AddDescriptors_flyteidl_2fadmin_2flaunch_5fplan_2eproto, ::AddDescriptors_flyteidl_2fcore_2fliterals_2eproto, ::AddDescriptors_flyteidl_2fcore_2ftypes_2eproto, ::AddDescriptors_flyteidl_2fcore_2fidentifier_2eproto, ::AddDescriptors_flyteidl_2fcore_2fartifact_5fid_2eproto, ::AddDescriptors_flyteidl_2fcore_2finterface_2eproto, + ::AddDescriptors_flyteidl_2fevent_2fcloudevents_2eproto, }; - ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fartifact_2fartifacts_2eproto, deps, 7); + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fartifact_2fartifacts_2eproto, deps, 9); } // Force running AddDescriptors() at dynamic initialization time. @@ -2026,7 +2123,6 @@ const int ArtifactSpec::kTaskExecutionFieldNumber; const int ArtifactSpec::kExecutionFieldNumber; const int ArtifactSpec::kPrincipalFieldNumber; const int ArtifactSpec::kShortDescriptionFieldNumber; -const int ArtifactSpec::kLongDescriptionFieldNumber; const int ArtifactSpec::kUserMetadataFieldNumber; const int ArtifactSpec::kMetadataTypeFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 @@ -2048,10 +2144,6 @@ ArtifactSpec::ArtifactSpec(const ArtifactSpec& from) if (from.short_description().size() > 0) { short_description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.short_description_); } - long_description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - if (from.long_description().size() > 0) { - long_description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.long_description_); - } metadata_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (from.metadata_type().size() > 0) { metadata_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.metadata_type_); @@ -2089,7 +2181,6 @@ void ArtifactSpec::SharedCtor() { &scc_info_ArtifactSpec_flyteidl_2fartifact_2fartifacts_2eproto.base); principal_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); short_description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - long_description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); metadata_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); ::memset(&value_, 0, static_cast( reinterpret_cast(&user_metadata_) - @@ -2104,7 +2195,6 @@ ArtifactSpec::~ArtifactSpec() { void ArtifactSpec::SharedDtor() { principal_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); short_description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - long_description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); metadata_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete value_; if (this != internal_default_instance()) delete type_; @@ -2130,7 +2220,6 @@ void ArtifactSpec::Clear() { principal_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); short_description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - long_description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); metadata_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && value_ != nullptr) { delete value_; @@ -2252,22 +2341,6 @@ const char* ArtifactSpec::_InternalParse(const char* begin, const char* end, voi ptr += size; break; } - // string long_description = 9; - case 9: { - if (static_cast<::google::protobuf::uint8>(tag) != 74) goto handle_unusual; - ptr = ::google::protobuf::io::ReadSize(ptr, &size); - GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); - ctx->extra_parse_data().SetFieldName("flyteidl.artifact.ArtifactSpec.long_description"); - object = msg->mutable_long_description(); - 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; - } // .google.protobuf.Any user_metadata = 10; case 10: { if (static_cast<::google::protobuf::uint8>(tag) != 82) goto handle_unusual; @@ -2405,21 +2478,6 @@ bool ArtifactSpec::MergePartialFromCodedStream( break; } - // string long_description = 9; - case 9: { - if (static_cast< ::google::protobuf::uint8>(tag) == (74 & 0xFF)) { - DO_(::google::protobuf::internal::WireFormatLite::ReadString( - input, this->mutable_long_description())); - DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->long_description().data(), static_cast(this->long_description().length()), - ::google::protobuf::internal::WireFormatLite::PARSE, - "flyteidl.artifact.ArtifactSpec.long_description")); - } else { - goto handle_unusual; - } - break; - } - // .google.protobuf.Any user_metadata = 10; case 10: { if (static_cast< ::google::protobuf::uint8>(tag) == (82 & 0xFF)) { @@ -2517,16 +2575,6 @@ void ArtifactSpec::SerializeWithCachedSizes( 8, this->short_description(), output); } - // string long_description = 9; - if (this->long_description().size() > 0) { - ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->long_description().data(), static_cast(this->long_description().length()), - ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "flyteidl.artifact.ArtifactSpec.long_description"); - ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( - 9, this->long_description(), output); - } - // .google.protobuf.Any user_metadata = 10; if (this->has_user_metadata()) { ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( @@ -2606,17 +2654,6 @@ ::google::protobuf::uint8* ArtifactSpec::InternalSerializeWithCachedSizesToArray 8, this->short_description(), target); } - // string long_description = 9; - if (this->long_description().size() > 0) { - ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->long_description().data(), static_cast(this->long_description().length()), - ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "flyteidl.artifact.ArtifactSpec.long_description"); - target = - ::google::protobuf::internal::WireFormatLite::WriteStringToArray( - 9, this->long_description(), target); - } - // .google.protobuf.Any user_metadata = 10; if (this->has_user_metadata()) { target = ::google::protobuf::internal::WireFormatLite:: @@ -2670,13 +2707,6 @@ size_t ArtifactSpec::ByteSizeLong() const { this->short_description()); } - // string long_description = 9; - if (this->long_description().size() > 0) { - total_size += 1 + - ::google::protobuf::internal::WireFormatLite::StringSize( - this->long_description()); - } - // string metadata_type = 11; if (this->metadata_type().size() > 0) { total_size += 1 + @@ -2754,10 +2784,6 @@ void ArtifactSpec::MergeFrom(const ArtifactSpec& from) { short_description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.short_description_); } - if (from.long_description().size() > 0) { - - long_description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.long_description_); - } if (from.metadata_type().size() > 0) { metadata_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.metadata_type_); @@ -2808,8 +2834,6 @@ void ArtifactSpec::InternalSwap(ArtifactSpec* other) { GetArenaNoVirtual()); short_description_.Swap(&other->short_description_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - long_description_.Swap(&other->long_description_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); metadata_type_.Swap(&other->metadata_type_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); swap(value_, other->value_); @@ -4391,87 +4415,108 @@ ::google::protobuf::Metadata ListArtifactNamesResponse::GetMetadata() const { // =================================================================== -void ListArtifactsRequest::InitAsDefaultInstance() { - ::flyteidl::artifact::_ListArtifactsRequest_default_instance_._instance.get_mutable()->artifact_key_ = const_cast< ::flyteidl::core::ArtifactKey*>( +void SearchArtifactsRequest::InitAsDefaultInstance() { + ::flyteidl::artifact::_SearchArtifactsRequest_default_instance_._instance.get_mutable()->artifact_key_ = const_cast< ::flyteidl::core::ArtifactKey*>( ::flyteidl::core::ArtifactKey::internal_default_instance()); } -class ListArtifactsRequest::HasBitSetters { +class SearchArtifactsRequest::HasBitSetters { public: - static const ::flyteidl::core::ArtifactKey& artifact_key(const ListArtifactsRequest* msg); + static const ::flyteidl::core::ArtifactKey& artifact_key(const SearchArtifactsRequest* msg); }; const ::flyteidl::core::ArtifactKey& -ListArtifactsRequest::HasBitSetters::artifact_key(const ListArtifactsRequest* msg) { +SearchArtifactsRequest::HasBitSetters::artifact_key(const SearchArtifactsRequest* msg) { return *msg->artifact_key_; } -void ListArtifactsRequest::clear_artifact_key() { +void SearchArtifactsRequest::clear_artifact_key() { if (GetArenaNoVirtual() == nullptr && artifact_key_ != nullptr) { delete artifact_key_; } artifact_key_ = nullptr; } #if !defined(_MSC_VER) || _MSC_VER >= 1900 -const int ListArtifactsRequest::kArtifactKeyFieldNumber; +const int SearchArtifactsRequest::kArtifactKeyFieldNumber; +const int SearchArtifactsRequest::kFiltersFieldNumber; +const int SearchArtifactsRequest::kTokenFieldNumber; +const int SearchArtifactsRequest::kLimitFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 -ListArtifactsRequest::ListArtifactsRequest() +SearchArtifactsRequest::SearchArtifactsRequest() : ::google::protobuf::Message(), _internal_metadata_(nullptr) { SharedCtor(); - // @@protoc_insertion_point(constructor:flyteidl.artifact.ListArtifactsRequest) + // @@protoc_insertion_point(constructor:flyteidl.artifact.SearchArtifactsRequest) } -ListArtifactsRequest::ListArtifactsRequest(const ListArtifactsRequest& from) +SearchArtifactsRequest::SearchArtifactsRequest(const SearchArtifactsRequest& from) : ::google::protobuf::Message(), _internal_metadata_(nullptr) { _internal_metadata_.MergeFrom(from._internal_metadata_); + filters_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.filters().size() > 0) { + filters_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.filters_); + } + token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.token().size() > 0) { + token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_); + } if (from.has_artifact_key()) { artifact_key_ = new ::flyteidl::core::ArtifactKey(*from.artifact_key_); } else { artifact_key_ = nullptr; } - // @@protoc_insertion_point(copy_constructor:flyteidl.artifact.ListArtifactsRequest) + limit_ = from.limit_; + // @@protoc_insertion_point(copy_constructor:flyteidl.artifact.SearchArtifactsRequest) } -void ListArtifactsRequest::SharedCtor() { +void SearchArtifactsRequest::SharedCtor() { ::google::protobuf::internal::InitSCC( - &scc_info_ListArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); - artifact_key_ = nullptr; + &scc_info_SearchArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); + filters_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + ::memset(&artifact_key_, 0, static_cast( + reinterpret_cast(&limit_) - + reinterpret_cast(&artifact_key_)) + sizeof(limit_)); } -ListArtifactsRequest::~ListArtifactsRequest() { - // @@protoc_insertion_point(destructor:flyteidl.artifact.ListArtifactsRequest) +SearchArtifactsRequest::~SearchArtifactsRequest() { + // @@protoc_insertion_point(destructor:flyteidl.artifact.SearchArtifactsRequest) SharedDtor(); } -void ListArtifactsRequest::SharedDtor() { +void SearchArtifactsRequest::SharedDtor() { + filters_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + token_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete artifact_key_; } -void ListArtifactsRequest::SetCachedSize(int size) const { +void SearchArtifactsRequest::SetCachedSize(int size) const { _cached_size_.Set(size); } -const ListArtifactsRequest& ListArtifactsRequest::default_instance() { - ::google::protobuf::internal::InitSCC(&::scc_info_ListArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); +const SearchArtifactsRequest& SearchArtifactsRequest::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_SearchArtifactsRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); return *internal_default_instance(); } -void ListArtifactsRequest::Clear() { -// @@protoc_insertion_point(message_clear_start:flyteidl.artifact.ListArtifactsRequest) +void SearchArtifactsRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.artifact.SearchArtifactsRequest) ::google::protobuf::uint32 cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + filters_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && artifact_key_ != nullptr) { delete artifact_key_; } artifact_key_ = nullptr; + limit_ = 0; _internal_metadata_.Clear(); } #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER -const char* ListArtifactsRequest::_InternalParse(const char* begin, const char* end, void* object, +const char* SearchArtifactsRequest::_InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) { - auto msg = static_cast(object); + auto msg = static_cast(object); ::google::protobuf::int32 size; (void)size; int depth; (void)depth; ::google::protobuf::uint32 tag; @@ -4494,6 +4539,45 @@ const char* ListArtifactsRequest::_InternalParse(const char* begin, const char* {parser_till_end, object}, ptr - size, ptr)); break; } + // string filters = 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.artifact.SearchArtifactsRequest.filters"); + object = msg->mutable_filters(); + 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 token = 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.artifact.SearchArtifactsRequest.token"); + object = msg->mutable_token(); + 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; + } + // int32 limit = 4; + case 4: { + if (static_cast<::google::protobuf::uint8>(tag) != 32) goto handle_unusual; + msg->set_limit(::google::protobuf::internal::ReadVarint(&ptr)); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + break; + } default: { handle_unusual: if ((tag & 7) == 4 || tag == 0) { @@ -4509,16 +4593,20 @@ const char* ListArtifactsRequest::_InternalParse(const char* begin, const char* } // 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 ListArtifactsRequest::MergePartialFromCodedStream( +bool SearchArtifactsRequest::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.artifact.ListArtifactsRequest) + // @@protoc_insertion_point(parse_start:flyteidl.artifact.SearchArtifactsRequest) for (;;) { ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); tag = p.first; @@ -4535,6 +4623,49 @@ bool ListArtifactsRequest::MergePartialFromCodedStream( break; } + // string filters = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_filters())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->filters().data(), static_cast(this->filters().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.artifact.SearchArtifactsRequest.filters")); + } else { + goto handle_unusual; + } + break; + } + + // string token = 3; + case 3: { + if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_token())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->token().data(), static_cast(this->token().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.artifact.SearchArtifactsRequest.token")); + } else { + goto handle_unusual; + } + break; + } + + // int32 limit = 4; + case 4: { + if (static_cast< ::google::protobuf::uint8>(tag) == (32 & 0xFF)) { + + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &limit_))); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -4547,18 +4678,18 @@ bool ListArtifactsRequest::MergePartialFromCodedStream( } } success: - // @@protoc_insertion_point(parse_success:flyteidl.artifact.ListArtifactsRequest) + // @@protoc_insertion_point(parse_success:flyteidl.artifact.SearchArtifactsRequest) return true; failure: - // @@protoc_insertion_point(parse_failure:flyteidl.artifact.ListArtifactsRequest) + // @@protoc_insertion_point(parse_failure:flyteidl.artifact.SearchArtifactsRequest) return false; #undef DO_ } #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER -void ListArtifactsRequest::SerializeWithCachedSizes( +void SearchArtifactsRequest::SerializeWithCachedSizes( ::google::protobuf::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:flyteidl.artifact.ListArtifactsRequest) + // @@protoc_insertion_point(serialize_start:flyteidl.artifact.SearchArtifactsRequest) ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -4568,16 +4699,41 @@ void ListArtifactsRequest::SerializeWithCachedSizes( 1, HasBitSetters::artifact_key(this), output); } + // string filters = 2; + if (this->filters().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->filters().data(), static_cast(this->filters().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.artifact.SearchArtifactsRequest.filters"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 2, this->filters(), output); + } + + // string token = 3; + if (this->token().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->token().data(), static_cast(this->token().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.artifact.SearchArtifactsRequest.token"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 3, this->token(), output); + } + + // int32 limit = 4; + if (this->limit() != 0) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->limit(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); } - // @@protoc_insertion_point(serialize_end:flyteidl.artifact.ListArtifactsRequest) + // @@protoc_insertion_point(serialize_end:flyteidl.artifact.SearchArtifactsRequest) } -::google::protobuf::uint8* ListArtifactsRequest::InternalSerializeWithCachedSizesToArray( +::google::protobuf::uint8* SearchArtifactsRequest::InternalSerializeWithCachedSizesToArray( ::google::protobuf::uint8* target) const { - // @@protoc_insertion_point(serialize_to_array_start:flyteidl.artifact.ListArtifactsRequest) + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.artifact.SearchArtifactsRequest) ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -4588,16 +4744,43 @@ ::google::protobuf::uint8* ListArtifactsRequest::InternalSerializeWithCachedSize 1, HasBitSetters::artifact_key(this), target); } + // string filters = 2; + if (this->filters().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->filters().data(), static_cast(this->filters().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.artifact.SearchArtifactsRequest.filters"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 2, this->filters(), target); + } + + // string token = 3; + if (this->token().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->token().data(), static_cast(this->token().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.artifact.SearchArtifactsRequest.token"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 3, this->token(), target); + } + + // int32 limit = 4; + if (this->limit() != 0) { + target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->limit(), 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.artifact.ListArtifactsRequest) + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.artifact.SearchArtifactsRequest) return target; } -size_t ListArtifactsRequest::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:flyteidl.artifact.ListArtifactsRequest) +size_t SearchArtifactsRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.artifact.SearchArtifactsRequest) size_t total_size = 0; if (_internal_metadata_.have_unknown_fields()) { @@ -4609,6 +4792,20 @@ size_t ListArtifactsRequest::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + // string filters = 2; + if (this->filters().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->filters()); + } + + // string token = 3; + if (this->token().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->token()); + } + // .flyteidl.core.ArtifactKey artifact_key = 1; if (this->has_artifact_key()) { total_size += 1 + @@ -4616,67 +4813,90 @@ size_t ListArtifactsRequest::ByteSizeLong() const { *artifact_key_); } + // int32 limit = 4; + if (this->limit() != 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->limit()); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; } -void ListArtifactsRequest::MergeFrom(const ::google::protobuf::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.artifact.ListArtifactsRequest) +void SearchArtifactsRequest::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.artifact.SearchArtifactsRequest) GOOGLE_DCHECK_NE(&from, this); - const ListArtifactsRequest* source = - ::google::protobuf::DynamicCastToGenerated( + const SearchArtifactsRequest* source = + ::google::protobuf::DynamicCastToGenerated( &from); if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.artifact.ListArtifactsRequest) + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.artifact.SearchArtifactsRequest) ::google::protobuf::internal::ReflectionOps::Merge(from, this); } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.artifact.ListArtifactsRequest) + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.artifact.SearchArtifactsRequest) MergeFrom(*source); } } -void ListArtifactsRequest::MergeFrom(const ListArtifactsRequest& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.artifact.ListArtifactsRequest) +void SearchArtifactsRequest::MergeFrom(const SearchArtifactsRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.artifact.SearchArtifactsRequest) GOOGLE_DCHECK_NE(&from, this); _internal_metadata_.MergeFrom(from._internal_metadata_); ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; + if (from.filters().size() > 0) { + + filters_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.filters_); + } + if (from.token().size() > 0) { + + token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_); + } if (from.has_artifact_key()) { mutable_artifact_key()->::flyteidl::core::ArtifactKey::MergeFrom(from.artifact_key()); } + if (from.limit() != 0) { + set_limit(from.limit()); + } } -void ListArtifactsRequest::CopyFrom(const ::google::protobuf::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.artifact.ListArtifactsRequest) +void SearchArtifactsRequest::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.artifact.SearchArtifactsRequest) if (&from == this) return; Clear(); MergeFrom(from); } -void ListArtifactsRequest::CopyFrom(const ListArtifactsRequest& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.artifact.ListArtifactsRequest) +void SearchArtifactsRequest::CopyFrom(const SearchArtifactsRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.artifact.SearchArtifactsRequest) if (&from == this) return; Clear(); MergeFrom(from); } -bool ListArtifactsRequest::IsInitialized() const { +bool SearchArtifactsRequest::IsInitialized() const { return true; } -void ListArtifactsRequest::Swap(ListArtifactsRequest* other) { +void SearchArtifactsRequest::Swap(SearchArtifactsRequest* other) { if (other == this) return; InternalSwap(other); } -void ListArtifactsRequest::InternalSwap(ListArtifactsRequest* other) { +void SearchArtifactsRequest::InternalSwap(SearchArtifactsRequest* other) { using std::swap; _internal_metadata_.Swap(&other->_internal_metadata_); + filters_.Swap(&other->filters_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + token_.Swap(&other->token_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(artifact_key_, other->artifact_key_); + swap(limit_, other->limit_); } -::google::protobuf::Metadata ListArtifactsRequest::GetMetadata() const { +::google::protobuf::Metadata SearchArtifactsRequest::GetMetadata() const { ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fartifact_2fartifacts_2eproto); return ::file_level_metadata_flyteidl_2fartifact_2fartifacts_2eproto[kIndexInFileMessages]; } @@ -4684,53 +4904,53 @@ ::google::protobuf::Metadata ListArtifactsRequest::GetMetadata() const { // =================================================================== -void ListArtifactsResponse::InitAsDefaultInstance() { +void SearchArtifactsResponse::InitAsDefaultInstance() { } -class ListArtifactsResponse::HasBitSetters { +class SearchArtifactsResponse::HasBitSetters { public: }; #if !defined(_MSC_VER) || _MSC_VER >= 1900 -const int ListArtifactsResponse::kArtifactsFieldNumber; +const int SearchArtifactsResponse::kArtifactsFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 -ListArtifactsResponse::ListArtifactsResponse() +SearchArtifactsResponse::SearchArtifactsResponse() : ::google::protobuf::Message(), _internal_metadata_(nullptr) { SharedCtor(); - // @@protoc_insertion_point(constructor:flyteidl.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(constructor:flyteidl.artifact.SearchArtifactsResponse) } -ListArtifactsResponse::ListArtifactsResponse(const ListArtifactsResponse& from) +SearchArtifactsResponse::SearchArtifactsResponse(const SearchArtifactsResponse& from) : ::google::protobuf::Message(), _internal_metadata_(nullptr), artifacts_(from.artifacts_) { _internal_metadata_.MergeFrom(from._internal_metadata_); - // @@protoc_insertion_point(copy_constructor:flyteidl.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(copy_constructor:flyteidl.artifact.SearchArtifactsResponse) } -void ListArtifactsResponse::SharedCtor() { +void SearchArtifactsResponse::SharedCtor() { ::google::protobuf::internal::InitSCC( - &scc_info_ListArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); + &scc_info_SearchArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); } -ListArtifactsResponse::~ListArtifactsResponse() { - // @@protoc_insertion_point(destructor:flyteidl.artifact.ListArtifactsResponse) +SearchArtifactsResponse::~SearchArtifactsResponse() { + // @@protoc_insertion_point(destructor:flyteidl.artifact.SearchArtifactsResponse) SharedDtor(); } -void ListArtifactsResponse::SharedDtor() { +void SearchArtifactsResponse::SharedDtor() { } -void ListArtifactsResponse::SetCachedSize(int size) const { +void SearchArtifactsResponse::SetCachedSize(int size) const { _cached_size_.Set(size); } -const ListArtifactsResponse& ListArtifactsResponse::default_instance() { - ::google::protobuf::internal::InitSCC(&::scc_info_ListArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); +const SearchArtifactsResponse& SearchArtifactsResponse::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_SearchArtifactsResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); return *internal_default_instance(); } -void ListArtifactsResponse::Clear() { -// @@protoc_insertion_point(message_clear_start:flyteidl.artifact.ListArtifactsResponse) +void SearchArtifactsResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.artifact.SearchArtifactsResponse) ::google::protobuf::uint32 cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; @@ -4740,9 +4960,9 @@ void ListArtifactsResponse::Clear() { } #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER -const char* ListArtifactsResponse::_InternalParse(const char* begin, const char* end, void* object, +const char* SearchArtifactsResponse::_InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) { - auto msg = static_cast(object); + auto msg = static_cast(object); ::google::protobuf::int32 size; (void)size; int depth; (void)depth; ::google::protobuf::uint32 tag; @@ -4788,11 +5008,11 @@ const char* ListArtifactsResponse::_InternalParse(const char* begin, const char* {parser_till_end, object}, size); } #else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER -bool ListArtifactsResponse::MergePartialFromCodedStream( +bool SearchArtifactsResponse::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.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(parse_start:flyteidl.artifact.SearchArtifactsResponse) for (;;) { ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); tag = p.first; @@ -4821,18 +5041,18 @@ bool ListArtifactsResponse::MergePartialFromCodedStream( } } success: - // @@protoc_insertion_point(parse_success:flyteidl.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(parse_success:flyteidl.artifact.SearchArtifactsResponse) return true; failure: - // @@protoc_insertion_point(parse_failure:flyteidl.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(parse_failure:flyteidl.artifact.SearchArtifactsResponse) return false; #undef DO_ } #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER -void ListArtifactsResponse::SerializeWithCachedSizes( +void SearchArtifactsResponse::SerializeWithCachedSizes( ::google::protobuf::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:flyteidl.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(serialize_start:flyteidl.artifact.SearchArtifactsResponse) ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -4849,12 +5069,12 @@ void ListArtifactsResponse::SerializeWithCachedSizes( ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); } - // @@protoc_insertion_point(serialize_end:flyteidl.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(serialize_end:flyteidl.artifact.SearchArtifactsResponse) } -::google::protobuf::uint8* ListArtifactsResponse::InternalSerializeWithCachedSizesToArray( +::google::protobuf::uint8* SearchArtifactsResponse::InternalSerializeWithCachedSizesToArray( ::google::protobuf::uint8* target) const { - // @@protoc_insertion_point(serialize_to_array_start:flyteidl.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.artifact.SearchArtifactsResponse) ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -4870,12 +5090,12 @@ ::google::protobuf::uint8* ListArtifactsResponse::InternalSerializeWithCachedSiz target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); } - // @@protoc_insertion_point(serialize_to_array_end:flyteidl.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.artifact.SearchArtifactsResponse) return target; } -size_t ListArtifactsResponse::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:flyteidl.artifact.ListArtifactsResponse) +size_t SearchArtifactsResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.artifact.SearchArtifactsResponse) size_t total_size = 0; if (_internal_metadata_.have_unknown_fields()) { @@ -4903,23 +5123,23 @@ size_t ListArtifactsResponse::ByteSizeLong() const { return total_size; } -void ListArtifactsResponse::MergeFrom(const ::google::protobuf::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.artifact.ListArtifactsResponse) +void SearchArtifactsResponse::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.artifact.SearchArtifactsResponse) GOOGLE_DCHECK_NE(&from, this); - const ListArtifactsResponse* source = - ::google::protobuf::DynamicCastToGenerated( + const SearchArtifactsResponse* source = + ::google::protobuf::DynamicCastToGenerated( &from); if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.artifact.SearchArtifactsResponse) ::google::protobuf::internal::ReflectionOps::Merge(from, this); } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.artifact.SearchArtifactsResponse) MergeFrom(*source); } } -void ListArtifactsResponse::MergeFrom(const ListArtifactsResponse& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.artifact.ListArtifactsResponse) +void SearchArtifactsResponse::MergeFrom(const SearchArtifactsResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.artifact.SearchArtifactsResponse) GOOGLE_DCHECK_NE(&from, this); _internal_metadata_.MergeFrom(from._internal_metadata_); ::google::protobuf::uint32 cached_has_bits = 0; @@ -4928,35 +5148,35 @@ void ListArtifactsResponse::MergeFrom(const ListArtifactsResponse& from) { artifacts_.MergeFrom(from.artifacts_); } -void ListArtifactsResponse::CopyFrom(const ::google::protobuf::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.artifact.ListArtifactsResponse) +void SearchArtifactsResponse::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.artifact.SearchArtifactsResponse) if (&from == this) return; Clear(); MergeFrom(from); } -void ListArtifactsResponse::CopyFrom(const ListArtifactsResponse& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.artifact.ListArtifactsResponse) +void SearchArtifactsResponse::CopyFrom(const SearchArtifactsResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.artifact.SearchArtifactsResponse) if (&from == this) return; Clear(); MergeFrom(from); } -bool ListArtifactsResponse::IsInitialized() const { +bool SearchArtifactsResponse::IsInitialized() const { return true; } -void ListArtifactsResponse::Swap(ListArtifactsResponse* other) { +void SearchArtifactsResponse::Swap(SearchArtifactsResponse* other) { if (other == this) return; InternalSwap(other); } -void ListArtifactsResponse::InternalSwap(ListArtifactsResponse* other) { +void SearchArtifactsResponse::InternalSwap(SearchArtifactsResponse* other) { using std::swap; _internal_metadata_.Swap(&other->_internal_metadata_); CastToBase(&artifacts_)->InternalSwap(CastToBase(&other->artifacts_)); } -::google::protobuf::Metadata ListArtifactsResponse::GetMetadata() const { +::google::protobuf::Metadata SearchArtifactsResponse::GetMetadata() const { ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fartifact_2fartifacts_2eproto); return ::file_level_metadata_flyteidl_2fartifact_2fartifacts_2eproto[kIndexInFileMessages]; } @@ -8092,61 +8312,776 @@ ::google::protobuf::Metadata RegisterResponse::GetMetadata() const { } -// @@protoc_insertion_point(namespace_scope) -} // namespace artifact -} // namespace flyteidl -namespace google { -namespace protobuf { -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::Artifact* Arena::CreateMaybeMessage< ::flyteidl::artifact::Artifact >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::Artifact >(arena); -} -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CreateArtifactRequest_PartitionsEntry_DoNotUse* Arena::CreateMaybeMessage< ::flyteidl::artifact::CreateArtifactRequest_PartitionsEntry_DoNotUse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::CreateArtifactRequest_PartitionsEntry_DoNotUse >(arena); +// =================================================================== + +void CloudEventRequest::InitAsDefaultInstance() { + ::flyteidl::artifact::_CloudEventRequest_default_instance_.workflow_execution_event_ = const_cast< ::flyteidl::event::CloudEventWorkflowExecution*>( + ::flyteidl::event::CloudEventWorkflowExecution::internal_default_instance()); + ::flyteidl::artifact::_CloudEventRequest_default_instance_.task_execution_event_ = const_cast< ::flyteidl::event::CloudEventTaskExecution*>( + ::flyteidl::event::CloudEventTaskExecution::internal_default_instance()); + ::flyteidl::artifact::_CloudEventRequest_default_instance_.node_execution_event_ = const_cast< ::flyteidl::event::CloudEventNodeExecution*>( + ::flyteidl::event::CloudEventNodeExecution::internal_default_instance()); } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CreateArtifactRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::CreateArtifactRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::CreateArtifactRequest >(arena); +class CloudEventRequest::HasBitSetters { + public: + static const ::flyteidl::event::CloudEventWorkflowExecution& workflow_execution_event(const CloudEventRequest* msg); + static const ::flyteidl::event::CloudEventTaskExecution& task_execution_event(const CloudEventRequest* msg); + static const ::flyteidl::event::CloudEventNodeExecution& node_execution_event(const CloudEventRequest* msg); +}; + +const ::flyteidl::event::CloudEventWorkflowExecution& +CloudEventRequest::HasBitSetters::workflow_execution_event(const CloudEventRequest* msg) { + return *msg->event_.workflow_execution_event_; +} +const ::flyteidl::event::CloudEventTaskExecution& +CloudEventRequest::HasBitSetters::task_execution_event(const CloudEventRequest* msg) { + return *msg->event_.task_execution_event_; +} +const ::flyteidl::event::CloudEventNodeExecution& +CloudEventRequest::HasBitSetters::node_execution_event(const CloudEventRequest* msg) { + return *msg->event_.node_execution_event_; +} +void CloudEventRequest::set_allocated_workflow_execution_event(::flyteidl::event::CloudEventWorkflowExecution* workflow_execution_event) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + clear_event(); + if (workflow_execution_event) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + workflow_execution_event = ::google::protobuf::internal::GetOwnedMessage( + message_arena, workflow_execution_event, submessage_arena); + } + set_has_workflow_execution_event(); + event_.workflow_execution_event_ = workflow_execution_event; + } + // @@protoc_insertion_point(field_set_allocated:flyteidl.artifact.CloudEventRequest.workflow_execution_event) } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::ArtifactSpec* Arena::CreateMaybeMessage< ::flyteidl::artifact::ArtifactSpec >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::ArtifactSpec >(arena); +void CloudEventRequest::clear_workflow_execution_event() { + if (has_workflow_execution_event()) { + delete event_.workflow_execution_event_; + clear_has_event(); + } } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CreateArtifactResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::CreateArtifactResponse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::CreateArtifactResponse >(arena); +void CloudEventRequest::set_allocated_task_execution_event(::flyteidl::event::CloudEventTaskExecution* task_execution_event) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + clear_event(); + if (task_execution_event) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + task_execution_event = ::google::protobuf::internal::GetOwnedMessage( + message_arena, task_execution_event, submessage_arena); + } + set_has_task_execution_event(); + event_.task_execution_event_ = task_execution_event; + } + // @@protoc_insertion_point(field_set_allocated:flyteidl.artifact.CloudEventRequest.task_execution_event) } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::GetArtifactRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::GetArtifactRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::GetArtifactRequest >(arena); +void CloudEventRequest::clear_task_execution_event() { + if (has_task_execution_event()) { + delete event_.task_execution_event_; + clear_has_event(); + } } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::GetArtifactResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::GetArtifactResponse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::GetArtifactResponse >(arena); +void CloudEventRequest::set_allocated_node_execution_event(::flyteidl::event::CloudEventNodeExecution* node_execution_event) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + clear_event(); + if (node_execution_event) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + node_execution_event = ::google::protobuf::internal::GetOwnedMessage( + message_arena, node_execution_event, submessage_arena); + } + set_has_node_execution_event(); + event_.node_execution_event_ = node_execution_event; + } + // @@protoc_insertion_point(field_set_allocated:flyteidl.artifact.CloudEventRequest.node_execution_event) } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::ListArtifactNamesRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::ListArtifactNamesRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::ListArtifactNamesRequest >(arena); +void CloudEventRequest::clear_node_execution_event() { + if (has_node_execution_event()) { + delete event_.node_execution_event_; + clear_has_event(); + } } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::ListArtifactNamesResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::ListArtifactNamesResponse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::ListArtifactNamesResponse >(arena); +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int CloudEventRequest::kWorkflowExecutionEventFieldNumber; +const int CloudEventRequest::kTaskExecutionEventFieldNumber; +const int CloudEventRequest::kNodeExecutionEventFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +CloudEventRequest::CloudEventRequest() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.artifact.CloudEventRequest) } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::ListArtifactsRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::ListArtifactsRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::ListArtifactsRequest >(arena); +CloudEventRequest::CloudEventRequest(const CloudEventRequest& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + clear_has_event(); + switch (from.event_case()) { + case kWorkflowExecutionEvent: { + mutable_workflow_execution_event()->::flyteidl::event::CloudEventWorkflowExecution::MergeFrom(from.workflow_execution_event()); + break; + } + case kTaskExecutionEvent: { + mutable_task_execution_event()->::flyteidl::event::CloudEventTaskExecution::MergeFrom(from.task_execution_event()); + break; + } + case kNodeExecutionEvent: { + mutable_node_execution_event()->::flyteidl::event::CloudEventNodeExecution::MergeFrom(from.node_execution_event()); + break; + } + case EVENT_NOT_SET: { + break; + } + } + // @@protoc_insertion_point(copy_constructor:flyteidl.artifact.CloudEventRequest) } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::ListArtifactsResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::ListArtifactsResponse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::ListArtifactsResponse >(arena); + +void CloudEventRequest::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_CloudEventRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); + clear_has_event(); } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::AddTagRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::AddTagRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::AddTagRequest >(arena); + +CloudEventRequest::~CloudEventRequest() { + // @@protoc_insertion_point(destructor:flyteidl.artifact.CloudEventRequest) + SharedDtor(); } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::AddTagResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::AddTagResponse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::AddTagResponse >(arena); + +void CloudEventRequest::SharedDtor() { + if (has_event()) { + clear_event(); + } } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CreateTriggerRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::CreateTriggerRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::CreateTriggerRequest >(arena); + +void CloudEventRequest::SetCachedSize(int size) const { + _cached_size_.Set(size); } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CreateTriggerResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::CreateTriggerResponse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::CreateTriggerResponse >(arena); +const CloudEventRequest& CloudEventRequest::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_CloudEventRequest_flyteidl_2fartifact_2fartifacts_2eproto.base); + return *internal_default_instance(); } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::DeleteTriggerRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::DeleteTriggerRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::DeleteTriggerRequest >(arena); + + +void CloudEventRequest::clear_event() { +// @@protoc_insertion_point(one_of_clear_start:flyteidl.artifact.CloudEventRequest) + switch (event_case()) { + case kWorkflowExecutionEvent: { + delete event_.workflow_execution_event_; + break; + } + case kTaskExecutionEvent: { + delete event_.task_execution_event_; + break; + } + case kNodeExecutionEvent: { + delete event_.node_execution_event_; + break; + } + case EVENT_NOT_SET: { + break; + } + } + _oneof_case_[0] = EVENT_NOT_SET; } -template<> PROTOBUF_NOINLINE ::flyteidl::artifact::DeleteTriggerResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::DeleteTriggerResponse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::artifact::DeleteTriggerResponse >(arena); + + +void CloudEventRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.artifact.CloudEventRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + clear_event(); + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* CloudEventRequest::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(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.event.CloudEventWorkflowExecution workflow_execution_event = 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::event::CloudEventWorkflowExecution::_InternalParse; + object = msg->mutable_workflow_execution_event(); + 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.event.CloudEventTaskExecution task_execution_event = 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::event::CloudEventTaskExecution::_InternalParse; + object = msg->mutable_task_execution_event(); + 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.event.CloudEventNodeExecution node_execution_event = 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::event::CloudEventNodeExecution::_InternalParse; + object = msg->mutable_node_execution_event(); + 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 CloudEventRequest::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.artifact.CloudEventRequest) + 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.event.CloudEventWorkflowExecution workflow_execution_event = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_workflow_execution_event())); + } else { + goto handle_unusual; + } + break; + } + + // .flyteidl.event.CloudEventTaskExecution task_execution_event = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_task_execution_event())); + } else { + goto handle_unusual; + } + break; + } + + // .flyteidl.event.CloudEventNodeExecution node_execution_event = 3; + case 3: { + if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_node_execution_event())); + } 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.artifact.CloudEventRequest) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.artifact.CloudEventRequest) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void CloudEventRequest::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.artifact.CloudEventRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1; + if (has_workflow_execution_event()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 1, HasBitSetters::workflow_execution_event(this), output); + } + + // .flyteidl.event.CloudEventTaskExecution task_execution_event = 2; + if (has_task_execution_event()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 2, HasBitSetters::task_execution_event(this), output); + } + + // .flyteidl.event.CloudEventNodeExecution node_execution_event = 3; + if (has_node_execution_event()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 3, HasBitSetters::node_execution_event(this), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.artifact.CloudEventRequest) +} + +::google::protobuf::uint8* CloudEventRequest::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.artifact.CloudEventRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1; + if (has_workflow_execution_event()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 1, HasBitSetters::workflow_execution_event(this), target); + } + + // .flyteidl.event.CloudEventTaskExecution task_execution_event = 2; + if (has_task_execution_event()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 2, HasBitSetters::task_execution_event(this), target); + } + + // .flyteidl.event.CloudEventNodeExecution node_execution_event = 3; + if (has_node_execution_event()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 3, HasBitSetters::node_execution_event(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.artifact.CloudEventRequest) + return target; +} + +size_t CloudEventRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.artifact.CloudEventRequest) + 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 (event_case()) { + // .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1; + case kWorkflowExecutionEvent: { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *event_.workflow_execution_event_); + break; + } + // .flyteidl.event.CloudEventTaskExecution task_execution_event = 2; + case kTaskExecutionEvent: { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *event_.task_execution_event_); + break; + } + // .flyteidl.event.CloudEventNodeExecution node_execution_event = 3; + case kNodeExecutionEvent: { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *event_.node_execution_event_); + break; + } + case EVENT_NOT_SET: { + break; + } + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void CloudEventRequest::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.artifact.CloudEventRequest) + GOOGLE_DCHECK_NE(&from, this); + const CloudEventRequest* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.artifact.CloudEventRequest) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.artifact.CloudEventRequest) + MergeFrom(*source); + } +} + +void CloudEventRequest::MergeFrom(const CloudEventRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.artifact.CloudEventRequest) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + switch (from.event_case()) { + case kWorkflowExecutionEvent: { + mutable_workflow_execution_event()->::flyteidl::event::CloudEventWorkflowExecution::MergeFrom(from.workflow_execution_event()); + break; + } + case kTaskExecutionEvent: { + mutable_task_execution_event()->::flyteidl::event::CloudEventTaskExecution::MergeFrom(from.task_execution_event()); + break; + } + case kNodeExecutionEvent: { + mutable_node_execution_event()->::flyteidl::event::CloudEventNodeExecution::MergeFrom(from.node_execution_event()); + break; + } + case EVENT_NOT_SET: { + break; + } + } +} + +void CloudEventRequest::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.artifact.CloudEventRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void CloudEventRequest::CopyFrom(const CloudEventRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.artifact.CloudEventRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool CloudEventRequest::IsInitialized() const { + return true; +} + +void CloudEventRequest::Swap(CloudEventRequest* other) { + if (other == this) return; + InternalSwap(other); +} +void CloudEventRequest::InternalSwap(CloudEventRequest* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + swap(event_, other->event_); + swap(_oneof_case_[0], other->_oneof_case_[0]); +} + +::google::protobuf::Metadata CloudEventRequest::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fartifact_2fartifacts_2eproto); + return ::file_level_metadata_flyteidl_2fartifact_2fartifacts_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void CloudEventResponse::InitAsDefaultInstance() { +} +class CloudEventResponse::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +CloudEventResponse::CloudEventResponse() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.artifact.CloudEventResponse) +} +CloudEventResponse::CloudEventResponse(const CloudEventResponse& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:flyteidl.artifact.CloudEventResponse) +} + +void CloudEventResponse::SharedCtor() { +} + +CloudEventResponse::~CloudEventResponse() { + // @@protoc_insertion_point(destructor:flyteidl.artifact.CloudEventResponse) + SharedDtor(); +} + +void CloudEventResponse::SharedDtor() { +} + +void CloudEventResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const CloudEventResponse& CloudEventResponse::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_CloudEventResponse_flyteidl_2fartifact_2fartifacts_2eproto.base); + return *internal_default_instance(); +} + + +void CloudEventResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.artifact.CloudEventResponse) + ::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* CloudEventResponse::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(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 CloudEventResponse::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.artifact.CloudEventResponse) + 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.artifact.CloudEventResponse) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.artifact.CloudEventResponse) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void CloudEventResponse::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.artifact.CloudEventResponse) + ::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.artifact.CloudEventResponse) +} + +::google::protobuf::uint8* CloudEventResponse::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.artifact.CloudEventResponse) + ::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.artifact.CloudEventResponse) + return target; +} + +size_t CloudEventResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.artifact.CloudEventResponse) + 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 CloudEventResponse::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.artifact.CloudEventResponse) + GOOGLE_DCHECK_NE(&from, this); + const CloudEventResponse* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.artifact.CloudEventResponse) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.artifact.CloudEventResponse) + MergeFrom(*source); + } +} + +void CloudEventResponse::MergeFrom(const CloudEventResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.artifact.CloudEventResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + +} + +void CloudEventResponse::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.artifact.CloudEventResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void CloudEventResponse::CopyFrom(const CloudEventResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.artifact.CloudEventResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool CloudEventResponse::IsInitialized() const { + return true; +} + +void CloudEventResponse::Swap(CloudEventResponse* other) { + if (other == this) return; + InternalSwap(other); +} +void CloudEventResponse::InternalSwap(CloudEventResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); +} + +::google::protobuf::Metadata CloudEventResponse::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fartifact_2fartifacts_2eproto); + return ::file_level_metadata_flyteidl_2fartifact_2fartifacts_2eproto[kIndexInFileMessages]; +} + + +// @@protoc_insertion_point(namespace_scope) +} // namespace artifact +} // namespace flyteidl +namespace google { +namespace protobuf { +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::Artifact* Arena::CreateMaybeMessage< ::flyteidl::artifact::Artifact >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::Artifact >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CreateArtifactRequest_PartitionsEntry_DoNotUse* Arena::CreateMaybeMessage< ::flyteidl::artifact::CreateArtifactRequest_PartitionsEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::CreateArtifactRequest_PartitionsEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CreateArtifactRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::CreateArtifactRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::CreateArtifactRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::ArtifactSpec* Arena::CreateMaybeMessage< ::flyteidl::artifact::ArtifactSpec >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::ArtifactSpec >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CreateArtifactResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::CreateArtifactResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::CreateArtifactResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::GetArtifactRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::GetArtifactRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::GetArtifactRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::GetArtifactResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::GetArtifactResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::GetArtifactResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::ListArtifactNamesRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::ListArtifactNamesRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::ListArtifactNamesRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::ListArtifactNamesResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::ListArtifactNamesResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::ListArtifactNamesResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::SearchArtifactsRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::SearchArtifactsRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::SearchArtifactsRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::SearchArtifactsResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::SearchArtifactsResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::SearchArtifactsResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::AddTagRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::AddTagRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::AddTagRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::AddTagResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::AddTagResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::AddTagResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CreateTriggerRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::CreateTriggerRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::CreateTriggerRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CreateTriggerResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::CreateTriggerResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::CreateTriggerResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::DeleteTriggerRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::DeleteTriggerRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::DeleteTriggerRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::DeleteTriggerResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::DeleteTriggerResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::DeleteTriggerResponse >(arena); } template<> PROTOBUF_NOINLINE ::flyteidl::artifact::ArtifactProducer* Arena::CreateMaybeMessage< ::flyteidl::artifact::ArtifactProducer >(Arena* arena) { return Arena::CreateInternal< ::flyteidl::artifact::ArtifactProducer >(arena); @@ -8163,6 +9098,12 @@ template<> PROTOBUF_NOINLINE ::flyteidl::artifact::RegisterConsumerRequest* Aren template<> PROTOBUF_NOINLINE ::flyteidl::artifact::RegisterResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::RegisterResponse >(Arena* arena) { return Arena::CreateInternal< ::flyteidl::artifact::RegisterResponse >(arena); } +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CloudEventRequest* Arena::CreateMaybeMessage< ::flyteidl::artifact::CloudEventRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::CloudEventRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::artifact::CloudEventResponse* Arena::CreateMaybeMessage< ::flyteidl::artifact::CloudEventResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::artifact::CloudEventResponse >(arena); +} } // namespace protobuf } // namespace google diff --git a/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.pb.h b/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.pb.h index 790dbd9698..0e21ee790c 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/artifact/artifacts.pb.h @@ -35,12 +35,14 @@ #include #include #include +#include "google/api/annotations.pb.h" #include "flyteidl/admin/launch_plan.pb.h" #include "flyteidl/core/literals.pb.h" #include "flyteidl/core/types.pb.h" #include "flyteidl/core/identifier.pb.h" #include "flyteidl/core/artifact_id.pb.h" #include "flyteidl/core/interface.pb.h" +#include "flyteidl/event/cloudevents.pb.h" // @@protoc_insertion_point(includes) #include #define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fartifact_2fartifacts_2eproto @@ -51,7 +53,7 @@ struct TableStruct_flyteidl_2fartifact_2fartifacts_2eproto { PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::google::protobuf::internal::ParseTable schema[22] + static const ::google::protobuf::internal::ParseTable schema[24] PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::FieldMetadata field_metadata[]; static const ::google::protobuf::internal::SerializationTable serialization_table[]; @@ -78,6 +80,12 @@ extern ArtifactProducerDefaultTypeInternal _ArtifactProducer_default_instance_; class ArtifactSpec; class ArtifactSpecDefaultTypeInternal; extern ArtifactSpecDefaultTypeInternal _ArtifactSpec_default_instance_; +class CloudEventRequest; +class CloudEventRequestDefaultTypeInternal; +extern CloudEventRequestDefaultTypeInternal _CloudEventRequest_default_instance_; +class CloudEventResponse; +class CloudEventResponseDefaultTypeInternal; +extern CloudEventResponseDefaultTypeInternal _CloudEventResponse_default_instance_; class CreateArtifactRequest; class CreateArtifactRequestDefaultTypeInternal; extern CreateArtifactRequestDefaultTypeInternal _CreateArtifactRequest_default_instance_; @@ -111,12 +119,6 @@ extern ListArtifactNamesRequestDefaultTypeInternal _ListArtifactNamesRequest_def class ListArtifactNamesResponse; class ListArtifactNamesResponseDefaultTypeInternal; extern ListArtifactNamesResponseDefaultTypeInternal _ListArtifactNamesResponse_default_instance_; -class ListArtifactsRequest; -class ListArtifactsRequestDefaultTypeInternal; -extern ListArtifactsRequestDefaultTypeInternal _ListArtifactsRequest_default_instance_; -class ListArtifactsResponse; -class ListArtifactsResponseDefaultTypeInternal; -extern ListArtifactsResponseDefaultTypeInternal _ListArtifactsResponse_default_instance_; class RegisterConsumerRequest; class RegisterConsumerRequestDefaultTypeInternal; extern RegisterConsumerRequestDefaultTypeInternal _RegisterConsumerRequest_default_instance_; @@ -126,6 +128,12 @@ extern RegisterProducerRequestDefaultTypeInternal _RegisterProducerRequest_defau class RegisterResponse; class RegisterResponseDefaultTypeInternal; extern RegisterResponseDefaultTypeInternal _RegisterResponse_default_instance_; +class SearchArtifactsRequest; +class SearchArtifactsRequestDefaultTypeInternal; +extern SearchArtifactsRequestDefaultTypeInternal _SearchArtifactsRequest_default_instance_; +class SearchArtifactsResponse; +class SearchArtifactsResponseDefaultTypeInternal; +extern SearchArtifactsResponseDefaultTypeInternal _SearchArtifactsResponse_default_instance_; } // namespace artifact } // namespace flyteidl namespace google { @@ -136,6 +144,8 @@ template<> ::flyteidl::artifact::Artifact* Arena::CreateMaybeMessage<::flyteidl: template<> ::flyteidl::artifact::ArtifactConsumer* Arena::CreateMaybeMessage<::flyteidl::artifact::ArtifactConsumer>(Arena*); template<> ::flyteidl::artifact::ArtifactProducer* Arena::CreateMaybeMessage<::flyteidl::artifact::ArtifactProducer>(Arena*); template<> ::flyteidl::artifact::ArtifactSpec* Arena::CreateMaybeMessage<::flyteidl::artifact::ArtifactSpec>(Arena*); +template<> ::flyteidl::artifact::CloudEventRequest* Arena::CreateMaybeMessage<::flyteidl::artifact::CloudEventRequest>(Arena*); +template<> ::flyteidl::artifact::CloudEventResponse* Arena::CreateMaybeMessage<::flyteidl::artifact::CloudEventResponse>(Arena*); template<> ::flyteidl::artifact::CreateArtifactRequest* Arena::CreateMaybeMessage<::flyteidl::artifact::CreateArtifactRequest>(Arena*); template<> ::flyteidl::artifact::CreateArtifactRequest_PartitionsEntry_DoNotUse* Arena::CreateMaybeMessage<::flyteidl::artifact::CreateArtifactRequest_PartitionsEntry_DoNotUse>(Arena*); template<> ::flyteidl::artifact::CreateArtifactResponse* Arena::CreateMaybeMessage<::flyteidl::artifact::CreateArtifactResponse>(Arena*); @@ -147,11 +157,11 @@ template<> ::flyteidl::artifact::GetArtifactRequest* Arena::CreateMaybeMessage<: template<> ::flyteidl::artifact::GetArtifactResponse* Arena::CreateMaybeMessage<::flyteidl::artifact::GetArtifactResponse>(Arena*); template<> ::flyteidl::artifact::ListArtifactNamesRequest* Arena::CreateMaybeMessage<::flyteidl::artifact::ListArtifactNamesRequest>(Arena*); template<> ::flyteidl::artifact::ListArtifactNamesResponse* Arena::CreateMaybeMessage<::flyteidl::artifact::ListArtifactNamesResponse>(Arena*); -template<> ::flyteidl::artifact::ListArtifactsRequest* Arena::CreateMaybeMessage<::flyteidl::artifact::ListArtifactsRequest>(Arena*); -template<> ::flyteidl::artifact::ListArtifactsResponse* Arena::CreateMaybeMessage<::flyteidl::artifact::ListArtifactsResponse>(Arena*); template<> ::flyteidl::artifact::RegisterConsumerRequest* Arena::CreateMaybeMessage<::flyteidl::artifact::RegisterConsumerRequest>(Arena*); template<> ::flyteidl::artifact::RegisterProducerRequest* Arena::CreateMaybeMessage<::flyteidl::artifact::RegisterProducerRequest>(Arena*); template<> ::flyteidl::artifact::RegisterResponse* Arena::CreateMaybeMessage<::flyteidl::artifact::RegisterResponse>(Arena*); +template<> ::flyteidl::artifact::SearchArtifactsRequest* Arena::CreateMaybeMessage<::flyteidl::artifact::SearchArtifactsRequest>(Arena*); +template<> ::flyteidl::artifact::SearchArtifactsResponse* Arena::CreateMaybeMessage<::flyteidl::artifact::SearchArtifactsResponse>(Arena*); } // namespace protobuf } // namespace google namespace flyteidl { @@ -625,20 +635,6 @@ class ArtifactSpec final : ::std::string* release_short_description(); void set_allocated_short_description(::std::string* short_description); - // string long_description = 9; - void clear_long_description(); - static const int kLongDescriptionFieldNumber = 9; - const ::std::string& long_description() const; - void set_long_description(const ::std::string& value); - #if LANG_CXX11 - void set_long_description(::std::string&& value); - #endif - void set_long_description(const char* value); - void set_long_description(const char* value, size_t size); - ::std::string* mutable_long_description(); - ::std::string* release_long_description(); - void set_allocated_long_description(::std::string* long_description); - // string metadata_type = 11; void clear_metadata_type(); static const int kMetadataTypeFieldNumber = 11; @@ -705,7 +701,6 @@ class ArtifactSpec final : ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; ::google::protobuf::internal::ArenaStringPtr principal_; ::google::protobuf::internal::ArenaStringPtr short_description_; - ::google::protobuf::internal::ArenaStringPtr long_description_; ::google::protobuf::internal::ArenaStringPtr metadata_type_; ::flyteidl::core::Literal* value_; ::flyteidl::core::LiteralType* type_; @@ -1322,25 +1317,25 @@ class ListArtifactNamesResponse final : }; // ------------------------------------------------------------------- -class ListArtifactsRequest final : - public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.artifact.ListArtifactsRequest) */ { +class SearchArtifactsRequest final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.artifact.SearchArtifactsRequest) */ { public: - ListArtifactsRequest(); - virtual ~ListArtifactsRequest(); + SearchArtifactsRequest(); + virtual ~SearchArtifactsRequest(); - ListArtifactsRequest(const ListArtifactsRequest& from); + SearchArtifactsRequest(const SearchArtifactsRequest& from); - inline ListArtifactsRequest& operator=(const ListArtifactsRequest& from) { + inline SearchArtifactsRequest& operator=(const SearchArtifactsRequest& from) { CopyFrom(from); return *this; } #if LANG_CXX11 - ListArtifactsRequest(ListArtifactsRequest&& from) noexcept - : ListArtifactsRequest() { + SearchArtifactsRequest(SearchArtifactsRequest&& from) noexcept + : SearchArtifactsRequest() { *this = ::std::move(from); } - inline ListArtifactsRequest& operator=(ListArtifactsRequest&& from) noexcept { + inline SearchArtifactsRequest& operator=(SearchArtifactsRequest&& from) noexcept { if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { if (this != &from) InternalSwap(&from); } else { @@ -1352,34 +1347,34 @@ class ListArtifactsRequest final : static const ::google::protobuf::Descriptor* descriptor() { return default_instance().GetDescriptor(); } - static const ListArtifactsRequest& default_instance(); + static const SearchArtifactsRequest& default_instance(); static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const ListArtifactsRequest* internal_default_instance() { - return reinterpret_cast( - &_ListArtifactsRequest_default_instance_); + static inline const SearchArtifactsRequest* internal_default_instance() { + return reinterpret_cast( + &_SearchArtifactsRequest_default_instance_); } static constexpr int kIndexInFileMessages = 9; - void Swap(ListArtifactsRequest* other); - friend void swap(ListArtifactsRequest& a, ListArtifactsRequest& b) { + void Swap(SearchArtifactsRequest* other); + friend void swap(SearchArtifactsRequest& a, SearchArtifactsRequest& b) { a.Swap(&b); } // implements Message ---------------------------------------------- - inline ListArtifactsRequest* New() const final { - return CreateMaybeMessage(nullptr); + inline SearchArtifactsRequest* New() const final { + return CreateMaybeMessage(nullptr); } - ListArtifactsRequest* New(::google::protobuf::Arena* arena) const final { - return CreateMaybeMessage(arena); + SearchArtifactsRequest* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); } void CopyFrom(const ::google::protobuf::Message& from) final; void MergeFrom(const ::google::protobuf::Message& from) final; - void CopyFrom(const ListArtifactsRequest& from); - void MergeFrom(const ListArtifactsRequest& from); + void CopyFrom(const SearchArtifactsRequest& from); + void MergeFrom(const SearchArtifactsRequest& from); PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; bool IsInitialized() const final; @@ -1401,7 +1396,7 @@ class ListArtifactsRequest final : void SharedCtor(); void SharedDtor(); void SetCachedSize(int size) const final; - void InternalSwap(ListArtifactsRequest* other); + void InternalSwap(SearchArtifactsRequest* other); private: inline ::google::protobuf::Arena* GetArenaNoVirtual() const { return nullptr; @@ -1417,6 +1412,34 @@ class ListArtifactsRequest final : // accessors ------------------------------------------------------- + // string filters = 2; + void clear_filters(); + static const int kFiltersFieldNumber = 2; + const ::std::string& filters() const; + void set_filters(const ::std::string& value); + #if LANG_CXX11 + void set_filters(::std::string&& value); + #endif + void set_filters(const char* value); + void set_filters(const char* value, size_t size); + ::std::string* mutable_filters(); + ::std::string* release_filters(); + void set_allocated_filters(::std::string* filters); + + // string token = 3; + void clear_token(); + static const int kTokenFieldNumber = 3; + const ::std::string& token() const; + void set_token(const ::std::string& value); + #if LANG_CXX11 + void set_token(::std::string&& value); + #endif + void set_token(const char* value); + void set_token(const char* value, size_t size); + ::std::string* mutable_token(); + ::std::string* release_token(); + void set_allocated_token(::std::string* token); + // .flyteidl.core.ArtifactKey artifact_key = 1; bool has_artifact_key() const; void clear_artifact_key(); @@ -1426,36 +1449,45 @@ class ListArtifactsRequest final : ::flyteidl::core::ArtifactKey* mutable_artifact_key(); void set_allocated_artifact_key(::flyteidl::core::ArtifactKey* artifact_key); - // @@protoc_insertion_point(class_scope:flyteidl.artifact.ListArtifactsRequest) + // int32 limit = 4; + void clear_limit(); + static const int kLimitFieldNumber = 4; + ::google::protobuf::int32 limit() const; + void set_limit(::google::protobuf::int32 value); + + // @@protoc_insertion_point(class_scope:flyteidl.artifact.SearchArtifactsRequest) private: class HasBitSetters; ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::ArenaStringPtr filters_; + ::google::protobuf::internal::ArenaStringPtr token_; ::flyteidl::core::ArtifactKey* artifact_key_; + ::google::protobuf::int32 limit_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fartifact_2fartifacts_2eproto; }; // ------------------------------------------------------------------- -class ListArtifactsResponse final : - public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.artifact.ListArtifactsResponse) */ { +class SearchArtifactsResponse final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.artifact.SearchArtifactsResponse) */ { public: - ListArtifactsResponse(); - virtual ~ListArtifactsResponse(); + SearchArtifactsResponse(); + virtual ~SearchArtifactsResponse(); - ListArtifactsResponse(const ListArtifactsResponse& from); + SearchArtifactsResponse(const SearchArtifactsResponse& from); - inline ListArtifactsResponse& operator=(const ListArtifactsResponse& from) { + inline SearchArtifactsResponse& operator=(const SearchArtifactsResponse& from) { CopyFrom(from); return *this; } #if LANG_CXX11 - ListArtifactsResponse(ListArtifactsResponse&& from) noexcept - : ListArtifactsResponse() { + SearchArtifactsResponse(SearchArtifactsResponse&& from) noexcept + : SearchArtifactsResponse() { *this = ::std::move(from); } - inline ListArtifactsResponse& operator=(ListArtifactsResponse&& from) noexcept { + inline SearchArtifactsResponse& operator=(SearchArtifactsResponse&& from) noexcept { if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { if (this != &from) InternalSwap(&from); } else { @@ -1467,34 +1499,34 @@ class ListArtifactsResponse final : static const ::google::protobuf::Descriptor* descriptor() { return default_instance().GetDescriptor(); } - static const ListArtifactsResponse& default_instance(); + static const SearchArtifactsResponse& default_instance(); static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const ListArtifactsResponse* internal_default_instance() { - return reinterpret_cast( - &_ListArtifactsResponse_default_instance_); + static inline const SearchArtifactsResponse* internal_default_instance() { + return reinterpret_cast( + &_SearchArtifactsResponse_default_instance_); } static constexpr int kIndexInFileMessages = 10; - void Swap(ListArtifactsResponse* other); - friend void swap(ListArtifactsResponse& a, ListArtifactsResponse& b) { + void Swap(SearchArtifactsResponse* other); + friend void swap(SearchArtifactsResponse& a, SearchArtifactsResponse& b) { a.Swap(&b); } // implements Message ---------------------------------------------- - inline ListArtifactsResponse* New() const final { - return CreateMaybeMessage(nullptr); + inline SearchArtifactsResponse* New() const final { + return CreateMaybeMessage(nullptr); } - ListArtifactsResponse* New(::google::protobuf::Arena* arena) const final { - return CreateMaybeMessage(arena); + SearchArtifactsResponse* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); } void CopyFrom(const ::google::protobuf::Message& from) final; void MergeFrom(const ::google::protobuf::Message& from) final; - void CopyFrom(const ListArtifactsResponse& from); - void MergeFrom(const ListArtifactsResponse& from); + void CopyFrom(const SearchArtifactsResponse& from); + void MergeFrom(const SearchArtifactsResponse& from); PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; bool IsInitialized() const final; @@ -1516,7 +1548,7 @@ class ListArtifactsResponse final : void SharedCtor(); void SharedDtor(); void SetCachedSize(int size) const final; - void InternalSwap(ListArtifactsResponse* other); + void InternalSwap(SearchArtifactsResponse* other); private: inline ::google::protobuf::Arena* GetArenaNoVirtual() const { return nullptr; @@ -1544,7 +1576,7 @@ class ListArtifactsResponse final : const ::google::protobuf::RepeatedPtrField< ::flyteidl::artifact::Artifact >& artifacts() const; - // @@protoc_insertion_point(class_scope:flyteidl.artifact.ListArtifactsResponse) + // @@protoc_insertion_point(class_scope:flyteidl.artifact.SearchArtifactsResponse) private: class HasBitSetters; @@ -2826,6 +2858,266 @@ class RegisterResponse final : mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fartifact_2fartifacts_2eproto; }; +// ------------------------------------------------------------------- + +class CloudEventRequest final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.artifact.CloudEventRequest) */ { + public: + CloudEventRequest(); + virtual ~CloudEventRequest(); + + CloudEventRequest(const CloudEventRequest& from); + + inline CloudEventRequest& operator=(const CloudEventRequest& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + CloudEventRequest(CloudEventRequest&& from) noexcept + : CloudEventRequest() { + *this = ::std::move(from); + } + + inline CloudEventRequest& operator=(CloudEventRequest&& 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 CloudEventRequest& default_instance(); + + enum EventCase { + kWorkflowExecutionEvent = 1, + kTaskExecutionEvent = 2, + kNodeExecutionEvent = 3, + EVENT_NOT_SET = 0, + }; + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const CloudEventRequest* internal_default_instance() { + return reinterpret_cast( + &_CloudEventRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 22; + + void Swap(CloudEventRequest* other); + friend void swap(CloudEventRequest& a, CloudEventRequest& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline CloudEventRequest* New() const final { + return CreateMaybeMessage(nullptr); + } + + CloudEventRequest* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const CloudEventRequest& from); + void MergeFrom(const CloudEventRequest& 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(CloudEventRequest* 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.event.CloudEventWorkflowExecution workflow_execution_event = 1; + bool has_workflow_execution_event() const; + void clear_workflow_execution_event(); + static const int kWorkflowExecutionEventFieldNumber = 1; + const ::flyteidl::event::CloudEventWorkflowExecution& workflow_execution_event() const; + ::flyteidl::event::CloudEventWorkflowExecution* release_workflow_execution_event(); + ::flyteidl::event::CloudEventWorkflowExecution* mutable_workflow_execution_event(); + void set_allocated_workflow_execution_event(::flyteidl::event::CloudEventWorkflowExecution* workflow_execution_event); + + // .flyteidl.event.CloudEventTaskExecution task_execution_event = 2; + bool has_task_execution_event() const; + void clear_task_execution_event(); + static const int kTaskExecutionEventFieldNumber = 2; + const ::flyteidl::event::CloudEventTaskExecution& task_execution_event() const; + ::flyteidl::event::CloudEventTaskExecution* release_task_execution_event(); + ::flyteidl::event::CloudEventTaskExecution* mutable_task_execution_event(); + void set_allocated_task_execution_event(::flyteidl::event::CloudEventTaskExecution* task_execution_event); + + // .flyteidl.event.CloudEventNodeExecution node_execution_event = 3; + bool has_node_execution_event() const; + void clear_node_execution_event(); + static const int kNodeExecutionEventFieldNumber = 3; + const ::flyteidl::event::CloudEventNodeExecution& node_execution_event() const; + ::flyteidl::event::CloudEventNodeExecution* release_node_execution_event(); + ::flyteidl::event::CloudEventNodeExecution* mutable_node_execution_event(); + void set_allocated_node_execution_event(::flyteidl::event::CloudEventNodeExecution* node_execution_event); + + void clear_event(); + EventCase event_case() const; + // @@protoc_insertion_point(class_scope:flyteidl.artifact.CloudEventRequest) + private: + class HasBitSetters; + void set_has_workflow_execution_event(); + void set_has_task_execution_event(); + void set_has_node_execution_event(); + + inline bool has_event() const; + inline void clear_has_event(); + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + union EventUnion { + EventUnion() {} + ::flyteidl::event::CloudEventWorkflowExecution* workflow_execution_event_; + ::flyteidl::event::CloudEventTaskExecution* task_execution_event_; + ::flyteidl::event::CloudEventNodeExecution* node_execution_event_; + } event_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + ::google::protobuf::uint32 _oneof_case_[1]; + + friend struct ::TableStruct_flyteidl_2fartifact_2fartifacts_2eproto; +}; +// ------------------------------------------------------------------- + +class CloudEventResponse final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.artifact.CloudEventResponse) */ { + public: + CloudEventResponse(); + virtual ~CloudEventResponse(); + + CloudEventResponse(const CloudEventResponse& from); + + inline CloudEventResponse& operator=(const CloudEventResponse& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + CloudEventResponse(CloudEventResponse&& from) noexcept + : CloudEventResponse() { + *this = ::std::move(from); + } + + inline CloudEventResponse& operator=(CloudEventResponse&& 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 CloudEventResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const CloudEventResponse* internal_default_instance() { + return reinterpret_cast( + &_CloudEventResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 23; + + void Swap(CloudEventResponse* other); + friend void swap(CloudEventResponse& a, CloudEventResponse& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline CloudEventResponse* New() const final { + return CreateMaybeMessage(nullptr); + } + + CloudEventResponse* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const CloudEventResponse& from); + void MergeFrom(const CloudEventResponse& 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(CloudEventResponse* 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 ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:flyteidl.artifact.CloudEventResponse) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fartifact_2fartifacts_2eproto; +}; // =================================================================== @@ -3518,59 +3810,6 @@ inline void ArtifactSpec::set_allocated_short_description(::std::string* short_d // @@protoc_insertion_point(field_set_allocated:flyteidl.artifact.ArtifactSpec.short_description) } -// string long_description = 9; -inline void ArtifactSpec::clear_long_description() { - long_description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline const ::std::string& ArtifactSpec::long_description() const { - // @@protoc_insertion_point(field_get:flyteidl.artifact.ArtifactSpec.long_description) - return long_description_.GetNoArena(); -} -inline void ArtifactSpec::set_long_description(const ::std::string& value) { - - long_description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); - // @@protoc_insertion_point(field_set:flyteidl.artifact.ArtifactSpec.long_description) -} -#if LANG_CXX11 -inline void ArtifactSpec::set_long_description(::std::string&& value) { - - long_description_.SetNoArena( - &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); - // @@protoc_insertion_point(field_set_rvalue:flyteidl.artifact.ArtifactSpec.long_description) -} -#endif -inline void ArtifactSpec::set_long_description(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - long_description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); - // @@protoc_insertion_point(field_set_char:flyteidl.artifact.ArtifactSpec.long_description) -} -inline void ArtifactSpec::set_long_description(const char* value, size_t size) { - - long_description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), - ::std::string(reinterpret_cast(value), size)); - // @@protoc_insertion_point(field_set_pointer:flyteidl.artifact.ArtifactSpec.long_description) -} -inline ::std::string* ArtifactSpec::mutable_long_description() { - - // @@protoc_insertion_point(field_mutable:flyteidl.artifact.ArtifactSpec.long_description) - return long_description_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline ::std::string* ArtifactSpec::release_long_description() { - // @@protoc_insertion_point(field_release:flyteidl.artifact.ArtifactSpec.long_description) - - return long_description_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline void ArtifactSpec::set_allocated_long_description(::std::string* long_description) { - if (long_description != nullptr) { - - } else { - - } - long_description_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), long_description); - // @@protoc_insertion_point(field_set_allocated:flyteidl.artifact.ArtifactSpec.long_description) -} - // .google.protobuf.Any user_metadata = 10; inline bool ArtifactSpec::has_user_metadata() const { return this != internal_default_instance() && user_metadata_ != nullptr; @@ -3985,35 +4224,35 @@ ListArtifactNamesResponse::artifact_keys() const { // ------------------------------------------------------------------- -// ListArtifactsRequest +// SearchArtifactsRequest // .flyteidl.core.ArtifactKey artifact_key = 1; -inline bool ListArtifactsRequest::has_artifact_key() const { +inline bool SearchArtifactsRequest::has_artifact_key() const { return this != internal_default_instance() && artifact_key_ != nullptr; } -inline const ::flyteidl::core::ArtifactKey& ListArtifactsRequest::artifact_key() const { +inline const ::flyteidl::core::ArtifactKey& SearchArtifactsRequest::artifact_key() const { const ::flyteidl::core::ArtifactKey* p = artifact_key_; - // @@protoc_insertion_point(field_get:flyteidl.artifact.ListArtifactsRequest.artifact_key) + // @@protoc_insertion_point(field_get:flyteidl.artifact.SearchArtifactsRequest.artifact_key) return p != nullptr ? *p : *reinterpret_cast( &::flyteidl::core::_ArtifactKey_default_instance_); } -inline ::flyteidl::core::ArtifactKey* ListArtifactsRequest::release_artifact_key() { - // @@protoc_insertion_point(field_release:flyteidl.artifact.ListArtifactsRequest.artifact_key) +inline ::flyteidl::core::ArtifactKey* SearchArtifactsRequest::release_artifact_key() { + // @@protoc_insertion_point(field_release:flyteidl.artifact.SearchArtifactsRequest.artifact_key) ::flyteidl::core::ArtifactKey* temp = artifact_key_; artifact_key_ = nullptr; return temp; } -inline ::flyteidl::core::ArtifactKey* ListArtifactsRequest::mutable_artifact_key() { +inline ::flyteidl::core::ArtifactKey* SearchArtifactsRequest::mutable_artifact_key() { if (artifact_key_ == nullptr) { auto* p = CreateMaybeMessage<::flyteidl::core::ArtifactKey>(GetArenaNoVirtual()); artifact_key_ = p; } - // @@protoc_insertion_point(field_mutable:flyteidl.artifact.ListArtifactsRequest.artifact_key) + // @@protoc_insertion_point(field_mutable:flyteidl.artifact.SearchArtifactsRequest.artifact_key) return artifact_key_; } -inline void ListArtifactsRequest::set_allocated_artifact_key(::flyteidl::core::ArtifactKey* artifact_key) { +inline void SearchArtifactsRequest::set_allocated_artifact_key(::flyteidl::core::ArtifactKey* artifact_key) { ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); if (message_arena == nullptr) { delete reinterpret_cast< ::google::protobuf::MessageLite*>(artifact_key_); @@ -4029,40 +4268,160 @@ inline void ListArtifactsRequest::set_allocated_artifact_key(::flyteidl::core::A } artifact_key_ = artifact_key; - // @@protoc_insertion_point(field_set_allocated:flyteidl.artifact.ListArtifactsRequest.artifact_key) + // @@protoc_insertion_point(field_set_allocated:flyteidl.artifact.SearchArtifactsRequest.artifact_key) +} + +// string filters = 2; +inline void SearchArtifactsRequest::clear_filters() { + filters_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& SearchArtifactsRequest::filters() const { + // @@protoc_insertion_point(field_get:flyteidl.artifact.SearchArtifactsRequest.filters) + return filters_.GetNoArena(); +} +inline void SearchArtifactsRequest::set_filters(const ::std::string& value) { + + filters_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.artifact.SearchArtifactsRequest.filters) +} +#if LANG_CXX11 +inline void SearchArtifactsRequest::set_filters(::std::string&& value) { + + filters_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.artifact.SearchArtifactsRequest.filters) +} +#endif +inline void SearchArtifactsRequest::set_filters(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + filters_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.artifact.SearchArtifactsRequest.filters) +} +inline void SearchArtifactsRequest::set_filters(const char* value, size_t size) { + + filters_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.artifact.SearchArtifactsRequest.filters) +} +inline ::std::string* SearchArtifactsRequest::mutable_filters() { + + // @@protoc_insertion_point(field_mutable:flyteidl.artifact.SearchArtifactsRequest.filters) + return filters_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* SearchArtifactsRequest::release_filters() { + // @@protoc_insertion_point(field_release:flyteidl.artifact.SearchArtifactsRequest.filters) + + return filters_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void SearchArtifactsRequest::set_allocated_filters(::std::string* filters) { + if (filters != nullptr) { + + } else { + + } + filters_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), filters); + // @@protoc_insertion_point(field_set_allocated:flyteidl.artifact.SearchArtifactsRequest.filters) +} + +// string token = 3; +inline void SearchArtifactsRequest::clear_token() { + token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& SearchArtifactsRequest::token() const { + // @@protoc_insertion_point(field_get:flyteidl.artifact.SearchArtifactsRequest.token) + return token_.GetNoArena(); +} +inline void SearchArtifactsRequest::set_token(const ::std::string& value) { + + token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.artifact.SearchArtifactsRequest.token) +} +#if LANG_CXX11 +inline void SearchArtifactsRequest::set_token(::std::string&& value) { + + token_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.artifact.SearchArtifactsRequest.token) +} +#endif +inline void SearchArtifactsRequest::set_token(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.artifact.SearchArtifactsRequest.token) +} +inline void SearchArtifactsRequest::set_token(const char* value, size_t size) { + + token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.artifact.SearchArtifactsRequest.token) +} +inline ::std::string* SearchArtifactsRequest::mutable_token() { + + // @@protoc_insertion_point(field_mutable:flyteidl.artifact.SearchArtifactsRequest.token) + return token_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* SearchArtifactsRequest::release_token() { + // @@protoc_insertion_point(field_release:flyteidl.artifact.SearchArtifactsRequest.token) + + return token_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void SearchArtifactsRequest::set_allocated_token(::std::string* token) { + if (token != nullptr) { + + } else { + + } + token_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), token); + // @@protoc_insertion_point(field_set_allocated:flyteidl.artifact.SearchArtifactsRequest.token) +} + +// int32 limit = 4; +inline void SearchArtifactsRequest::clear_limit() { + limit_ = 0; +} +inline ::google::protobuf::int32 SearchArtifactsRequest::limit() const { + // @@protoc_insertion_point(field_get:flyteidl.artifact.SearchArtifactsRequest.limit) + return limit_; +} +inline void SearchArtifactsRequest::set_limit(::google::protobuf::int32 value) { + + limit_ = value; + // @@protoc_insertion_point(field_set:flyteidl.artifact.SearchArtifactsRequest.limit) } // ------------------------------------------------------------------- -// ListArtifactsResponse +// SearchArtifactsResponse // repeated .flyteidl.artifact.Artifact artifacts = 1; -inline int ListArtifactsResponse::artifacts_size() const { +inline int SearchArtifactsResponse::artifacts_size() const { return artifacts_.size(); } -inline void ListArtifactsResponse::clear_artifacts() { +inline void SearchArtifactsResponse::clear_artifacts() { artifacts_.Clear(); } -inline ::flyteidl::artifact::Artifact* ListArtifactsResponse::mutable_artifacts(int index) { - // @@protoc_insertion_point(field_mutable:flyteidl.artifact.ListArtifactsResponse.artifacts) +inline ::flyteidl::artifact::Artifact* SearchArtifactsResponse::mutable_artifacts(int index) { + // @@protoc_insertion_point(field_mutable:flyteidl.artifact.SearchArtifactsResponse.artifacts) return artifacts_.Mutable(index); } inline ::google::protobuf::RepeatedPtrField< ::flyteidl::artifact::Artifact >* -ListArtifactsResponse::mutable_artifacts() { - // @@protoc_insertion_point(field_mutable_list:flyteidl.artifact.ListArtifactsResponse.artifacts) +SearchArtifactsResponse::mutable_artifacts() { + // @@protoc_insertion_point(field_mutable_list:flyteidl.artifact.SearchArtifactsResponse.artifacts) return &artifacts_; } -inline const ::flyteidl::artifact::Artifact& ListArtifactsResponse::artifacts(int index) const { - // @@protoc_insertion_point(field_get:flyteidl.artifact.ListArtifactsResponse.artifacts) +inline const ::flyteidl::artifact::Artifact& SearchArtifactsResponse::artifacts(int index) const { + // @@protoc_insertion_point(field_get:flyteidl.artifact.SearchArtifactsResponse.artifacts) return artifacts_.Get(index); } -inline ::flyteidl::artifact::Artifact* ListArtifactsResponse::add_artifacts() { - // @@protoc_insertion_point(field_add:flyteidl.artifact.ListArtifactsResponse.artifacts) +inline ::flyteidl::artifact::Artifact* SearchArtifactsResponse::add_artifacts() { + // @@protoc_insertion_point(field_add:flyteidl.artifact.SearchArtifactsResponse.artifacts) return artifacts_.Add(); } inline const ::google::protobuf::RepeatedPtrField< ::flyteidl::artifact::Artifact >& -ListArtifactsResponse::artifacts() const { - // @@protoc_insertion_point(field_list:flyteidl.artifact.ListArtifactsResponse.artifacts) +SearchArtifactsResponse::artifacts() const { + // @@protoc_insertion_point(field_list:flyteidl.artifact.SearchArtifactsResponse.artifacts) return artifacts_; } @@ -4552,6 +4911,128 @@ RegisterConsumerRequest::consumers() const { // RegisterResponse +// ------------------------------------------------------------------- + +// CloudEventRequest + +// .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1; +inline bool CloudEventRequest::has_workflow_execution_event() const { + return event_case() == kWorkflowExecutionEvent; +} +inline void CloudEventRequest::set_has_workflow_execution_event() { + _oneof_case_[0] = kWorkflowExecutionEvent; +} +inline ::flyteidl::event::CloudEventWorkflowExecution* CloudEventRequest::release_workflow_execution_event() { + // @@protoc_insertion_point(field_release:flyteidl.artifact.CloudEventRequest.workflow_execution_event) + if (has_workflow_execution_event()) { + clear_has_event(); + ::flyteidl::event::CloudEventWorkflowExecution* temp = event_.workflow_execution_event_; + event_.workflow_execution_event_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline const ::flyteidl::event::CloudEventWorkflowExecution& CloudEventRequest::workflow_execution_event() const { + // @@protoc_insertion_point(field_get:flyteidl.artifact.CloudEventRequest.workflow_execution_event) + return has_workflow_execution_event() + ? *event_.workflow_execution_event_ + : *reinterpret_cast< ::flyteidl::event::CloudEventWorkflowExecution*>(&::flyteidl::event::_CloudEventWorkflowExecution_default_instance_); +} +inline ::flyteidl::event::CloudEventWorkflowExecution* CloudEventRequest::mutable_workflow_execution_event() { + if (!has_workflow_execution_event()) { + clear_event(); + set_has_workflow_execution_event(); + event_.workflow_execution_event_ = CreateMaybeMessage< ::flyteidl::event::CloudEventWorkflowExecution >( + GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_mutable:flyteidl.artifact.CloudEventRequest.workflow_execution_event) + return event_.workflow_execution_event_; +} + +// .flyteidl.event.CloudEventTaskExecution task_execution_event = 2; +inline bool CloudEventRequest::has_task_execution_event() const { + return event_case() == kTaskExecutionEvent; +} +inline void CloudEventRequest::set_has_task_execution_event() { + _oneof_case_[0] = kTaskExecutionEvent; +} +inline ::flyteidl::event::CloudEventTaskExecution* CloudEventRequest::release_task_execution_event() { + // @@protoc_insertion_point(field_release:flyteidl.artifact.CloudEventRequest.task_execution_event) + if (has_task_execution_event()) { + clear_has_event(); + ::flyteidl::event::CloudEventTaskExecution* temp = event_.task_execution_event_; + event_.task_execution_event_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline const ::flyteidl::event::CloudEventTaskExecution& CloudEventRequest::task_execution_event() const { + // @@protoc_insertion_point(field_get:flyteidl.artifact.CloudEventRequest.task_execution_event) + return has_task_execution_event() + ? *event_.task_execution_event_ + : *reinterpret_cast< ::flyteidl::event::CloudEventTaskExecution*>(&::flyteidl::event::_CloudEventTaskExecution_default_instance_); +} +inline ::flyteidl::event::CloudEventTaskExecution* CloudEventRequest::mutable_task_execution_event() { + if (!has_task_execution_event()) { + clear_event(); + set_has_task_execution_event(); + event_.task_execution_event_ = CreateMaybeMessage< ::flyteidl::event::CloudEventTaskExecution >( + GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_mutable:flyteidl.artifact.CloudEventRequest.task_execution_event) + return event_.task_execution_event_; +} + +// .flyteidl.event.CloudEventNodeExecution node_execution_event = 3; +inline bool CloudEventRequest::has_node_execution_event() const { + return event_case() == kNodeExecutionEvent; +} +inline void CloudEventRequest::set_has_node_execution_event() { + _oneof_case_[0] = kNodeExecutionEvent; +} +inline ::flyteidl::event::CloudEventNodeExecution* CloudEventRequest::release_node_execution_event() { + // @@protoc_insertion_point(field_release:flyteidl.artifact.CloudEventRequest.node_execution_event) + if (has_node_execution_event()) { + clear_has_event(); + ::flyteidl::event::CloudEventNodeExecution* temp = event_.node_execution_event_; + event_.node_execution_event_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline const ::flyteidl::event::CloudEventNodeExecution& CloudEventRequest::node_execution_event() const { + // @@protoc_insertion_point(field_get:flyteidl.artifact.CloudEventRequest.node_execution_event) + return has_node_execution_event() + ? *event_.node_execution_event_ + : *reinterpret_cast< ::flyteidl::event::CloudEventNodeExecution*>(&::flyteidl::event::_CloudEventNodeExecution_default_instance_); +} +inline ::flyteidl::event::CloudEventNodeExecution* CloudEventRequest::mutable_node_execution_event() { + if (!has_node_execution_event()) { + clear_event(); + set_has_node_execution_event(); + event_.node_execution_event_ = CreateMaybeMessage< ::flyteidl::event::CloudEventNodeExecution >( + GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_mutable:flyteidl.artifact.CloudEventRequest.node_execution_event) + return event_.node_execution_event_; +} + +inline bool CloudEventRequest::has_event() const { + return event_case() != EVENT_NOT_SET; +} +inline void CloudEventRequest::clear_has_event() { + _oneof_case_[0] = EVENT_NOT_SET; +} +inline CloudEventRequest::EventCase CloudEventRequest::event_case() const { + return CloudEventRequest::EventCase(_oneof_case_[0]); +} +// ------------------------------------------------------------------- + +// CloudEventResponse + #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ @@ -4597,6 +5078,10 @@ RegisterConsumerRequest::consumers() const { // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) diff --git a/flyteidl/gen/pb-cpp/flyteidl/event/cloudevents.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/event/cloudevents.pb.cc index 32c380a783..eb76985cb3 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/event/cloudevents.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/event/cloudevents.pb.cc @@ -57,15 +57,16 @@ static void InitDefaultsCloudEventWorkflowExecution_flyteidl_2fevent_2fcloudeven ::flyteidl::event::CloudEventWorkflowExecution::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<7> scc_info_CloudEventWorkflowExecution_flyteidl_2fevent_2fcloudevents_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 7, InitDefaultsCloudEventWorkflowExecution_flyteidl_2fevent_2fcloudevents_2eproto}, { +::google::protobuf::internal::SCCInfo<8> scc_info_CloudEventWorkflowExecution_flyteidl_2fevent_2fcloudevents_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 8, InitDefaultsCloudEventWorkflowExecution_flyteidl_2fevent_2fcloudevents_2eproto}, { &scc_info_WorkflowExecutionEvent_flyteidl_2fevent_2fevent_2eproto.base, &scc_info_Literal_flyteidl_2fcore_2fliterals_2eproto.base, &scc_info_TypedInterface_flyteidl_2fcore_2finterface_2eproto.base, &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base, &scc_info_ArtifactID_flyteidl_2fcore_2fartifact_5fid_2eproto.base, &scc_info_NodeExecutionIdentifier_flyteidl_2fcore_2fidentifier_2eproto.base, - &scc_info_WorkflowExecutionIdentifier_flyteidl_2fcore_2fidentifier_2eproto.base,}}; + &scc_info_WorkflowExecutionIdentifier_flyteidl_2fcore_2fidentifier_2eproto.base, + &scc_info_Identifier_flyteidl_2fcore_2fidentifier_2eproto.base,}}; static void InitDefaultsCloudEventNodeExecution_flyteidl_2fevent_2fcloudevents_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -93,15 +94,16 @@ static void InitDefaultsCloudEventTaskExecution_flyteidl_2fevent_2fcloudevents_2 ::flyteidl::event::CloudEventTaskExecution::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<7> scc_info_CloudEventTaskExecution_flyteidl_2fevent_2fcloudevents_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 7, InitDefaultsCloudEventTaskExecution_flyteidl_2fevent_2fcloudevents_2eproto}, { +::google::protobuf::internal::SCCInfo<8> scc_info_CloudEventTaskExecution_flyteidl_2fevent_2fcloudevents_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 8, InitDefaultsCloudEventTaskExecution_flyteidl_2fevent_2fcloudevents_2eproto}, { &scc_info_TaskExecutionEvent_flyteidl_2fevent_2fevent_2eproto.base, &scc_info_Literal_flyteidl_2fcore_2fliterals_2eproto.base, &scc_info_TypedInterface_flyteidl_2fcore_2finterface_2eproto.base, &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base, &scc_info_ArtifactID_flyteidl_2fcore_2fartifact_5fid_2eproto.base, &scc_info_NodeExecutionIdentifier_flyteidl_2fcore_2fidentifier_2eproto.base, - &scc_info_WorkflowExecutionIdentifier_flyteidl_2fcore_2fidentifier_2eproto.base,}}; + &scc_info_WorkflowExecutionIdentifier_flyteidl_2fcore_2fidentifier_2eproto.base, + &scc_info_Identifier_flyteidl_2fcore_2fidentifier_2eproto.base,}}; static void InitDefaultsCloudEventExecutionStart_flyteidl_2fevent_2fcloudevents_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -145,6 +147,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fevent_2fcloudevents_2epr PROTOBUF_FIELD_OFFSET(::flyteidl::event::CloudEventWorkflowExecution, artifact_ids_), PROTOBUF_FIELD_OFFSET(::flyteidl::event::CloudEventWorkflowExecution, parent_node_execution_), PROTOBUF_FIELD_OFFSET(::flyteidl::event::CloudEventWorkflowExecution, reference_execution_), + PROTOBUF_FIELD_OFFSET(::flyteidl::event::CloudEventWorkflowExecution, launch_plan_id_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::event::CloudEventNodeExecution, _internal_metadata_), ~0u, // no _extensions_ @@ -164,6 +167,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fevent_2fcloudevents_2epr PROTOBUF_FIELD_OFFSET(::flyteidl::event::CloudEventTaskExecution, artifact_ids_), PROTOBUF_FIELD_OFFSET(::flyteidl::event::CloudEventTaskExecution, parent_node_execution_), PROTOBUF_FIELD_OFFSET(::flyteidl::event::CloudEventTaskExecution, reference_execution_), + PROTOBUF_FIELD_OFFSET(::flyteidl::event::CloudEventTaskExecution, launch_plan_id_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::event::CloudEventExecutionStart, _internal_metadata_), ~0u, // no _extensions_ @@ -177,9 +181,9 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fevent_2fcloudevents_2epr }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::event::CloudEventWorkflowExecution)}, - { 13, -1, sizeof(::flyteidl::event::CloudEventNodeExecution)}, - { 19, -1, sizeof(::flyteidl::event::CloudEventTaskExecution)}, - { 32, -1, sizeof(::flyteidl::event::CloudEventExecutionStart)}, + { 14, -1, sizeof(::flyteidl::event::CloudEventNodeExecution)}, + { 20, -1, sizeof(::flyteidl::event::CloudEventTaskExecution)}, + { 34, -1, sizeof(::flyteidl::event::CloudEventExecutionStart)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -201,7 +205,7 @@ const char descriptor_table_protodef_flyteidl_2fevent_2fcloudevents_2eproto[] = "flyteidl/core/literals.proto\032\035flyteidl/c" "ore/interface.proto\032\037flyteidl/core/artif" "act_id.proto\032\036flyteidl/core/identifier.p" - "roto\032\037google/protobuf/timestamp.proto\"\343\003" + "roto\032\037google/protobuf/timestamp.proto\"\226\004" "\n\033CloudEventWorkflowExecution\0229\n\traw_eve" "nt\030\001 \001(\0132&.flyteidl.event.WorkflowExecut" "ionEvent\022.\n\013output_data\030\002 \001(\0132\031.flyteidl" @@ -214,34 +218,37 @@ const char descriptor_table_protodef_flyteidl_2fevent_2fcloudevents_2eproto[] = "tion\030\007 \001(\0132&.flyteidl.core.NodeExecution" "Identifier\022G\n\023reference_execution\030\010 \001(\0132" "*.flyteidl.core.WorkflowExecutionIdentif" - "ier\"P\n\027CloudEventNodeExecution\0225\n\traw_ev" - "ent\030\001 \001(\0132\".flyteidl.event.NodeExecution" - "Event\"\333\003\n\027CloudEventTaskExecution\0225\n\traw" - "_event\030\001 \001(\0132\".flyteidl.event.TaskExecut" - "ionEvent\022.\n\013output_data\030\002 \001(\0132\031.flyteidl" - ".core.LiteralMap\0227\n\020output_interface\030\003 \001" - "(\0132\035.flyteidl.core.TypedInterface\022-\n\ninp" - "ut_data\030\004 \001(\0132\031.flyteidl.core.LiteralMap" - "\0220\n\014scheduled_at\030\005 \001(\0132\032.google.protobuf" - ".Timestamp\022/\n\014artifact_ids\030\006 \003(\0132\031.flyte" - "idl.core.ArtifactID\022E\n\025parent_node_execu" - "tion\030\007 \001(\0132&.flyteidl.core.NodeExecution" - "Identifier\022G\n\023reference_execution\030\010 \001(\0132" - "*.flyteidl.core.WorkflowExecutionIdentif" - "ier\"\207\002\n\030CloudEventExecutionStart\022@\n\014exec" - "ution_id\030\001 \001(\0132*.flyteidl.core.WorkflowE" - "xecutionIdentifier\0221\n\016launch_plan_id\030\002 \001" - "(\0132\031.flyteidl.core.Identifier\022.\n\013workflo" - "w_id\030\003 \001(\0132\031.flyteidl.core.Identifier\022/\n" - "\014artifact_ids\030\004 \003(\0132\031.flyteidl.core.Arti" - "factID\022\025\n\rartifact_keys\030\005 \003(\tB=Z;github." - "com/flyteorg/flyte/flyteidl/gen/pb-go/fl" - "yteidl/eventb\006proto3" + "ier\0221\n\016launch_plan_id\030\t \001(\0132\031.flyteidl.c" + "ore.Identifier\"P\n\027CloudEventNodeExecutio" + "n\0225\n\traw_event\030\001 \001(\0132\".flyteidl.event.No" + "deExecutionEvent\"\216\004\n\027CloudEventTaskExecu" + "tion\0225\n\traw_event\030\001 \001(\0132\".flyteidl.event" + ".TaskExecutionEvent\022.\n\013output_data\030\002 \001(\013" + "2\031.flyteidl.core.LiteralMap\0227\n\020output_in" + "terface\030\003 \001(\0132\035.flyteidl.core.TypedInter" + "face\022-\n\ninput_data\030\004 \001(\0132\031.flyteidl.core" + ".LiteralMap\0220\n\014scheduled_at\030\005 \001(\0132\032.goog" + "le.protobuf.Timestamp\022/\n\014artifact_ids\030\006 " + "\003(\0132\031.flyteidl.core.ArtifactID\022E\n\025parent" + "_node_execution\030\007 \001(\0132&.flyteidl.core.No" + "deExecutionIdentifier\022G\n\023reference_execu" + "tion\030\010 \001(\0132*.flyteidl.core.WorkflowExecu" + "tionIdentifier\0221\n\016launch_plan_id\030\t \001(\0132\031" + ".flyteidl.core.Identifier\"\207\002\n\030CloudEvent" + "ExecutionStart\022@\n\014execution_id\030\001 \001(\0132*.f" + "lyteidl.core.WorkflowExecutionIdentifier" + "\0221\n\016launch_plan_id\030\002 \001(\0132\031.flyteidl.core" + ".Identifier\022.\n\013workflow_id\030\003 \001(\0132\031.flyte" + "idl.core.Identifier\022/\n\014artifact_ids\030\004 \003(" + "\0132\031.flyteidl.core.ArtifactID\022\025\n\rartifact" + "_keys\030\005 \003(\tB=Z;github.com/flyteorg/flyte" + "/flyteidl/gen/pb-go/flyteidl/eventb\006prot" + "o3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fevent_2fcloudevents_2eproto = { false, InitDefaults_flyteidl_2fevent_2fcloudevents_2eproto, descriptor_table_protodef_flyteidl_2fevent_2fcloudevents_2eproto, - "flyteidl/event/cloudevents.proto", &assign_descriptors_table_flyteidl_2fevent_2fcloudevents_2eproto, 1620, + "flyteidl/event/cloudevents.proto", &assign_descriptors_table_flyteidl_2fevent_2fcloudevents_2eproto, 1722, }; void AddDescriptors_flyteidl_2fevent_2fcloudevents_2eproto() { @@ -279,6 +286,8 @@ void CloudEventWorkflowExecution::InitAsDefaultInstance() { ::flyteidl::core::NodeExecutionIdentifier::internal_default_instance()); ::flyteidl::event::_CloudEventWorkflowExecution_default_instance_._instance.get_mutable()->reference_execution_ = const_cast< ::flyteidl::core::WorkflowExecutionIdentifier*>( ::flyteidl::core::WorkflowExecutionIdentifier::internal_default_instance()); + ::flyteidl::event::_CloudEventWorkflowExecution_default_instance_._instance.get_mutable()->launch_plan_id_ = const_cast< ::flyteidl::core::Identifier*>( + ::flyteidl::core::Identifier::internal_default_instance()); } class CloudEventWorkflowExecution::HasBitSetters { public: @@ -289,6 +298,7 @@ class CloudEventWorkflowExecution::HasBitSetters { static const ::google::protobuf::Timestamp& scheduled_at(const CloudEventWorkflowExecution* msg); static const ::flyteidl::core::NodeExecutionIdentifier& parent_node_execution(const CloudEventWorkflowExecution* msg); static const ::flyteidl::core::WorkflowExecutionIdentifier& reference_execution(const CloudEventWorkflowExecution* msg); + static const ::flyteidl::core::Identifier& launch_plan_id(const CloudEventWorkflowExecution* msg); }; const ::flyteidl::event::WorkflowExecutionEvent& @@ -319,6 +329,10 @@ const ::flyteidl::core::WorkflowExecutionIdentifier& CloudEventWorkflowExecution::HasBitSetters::reference_execution(const CloudEventWorkflowExecution* msg) { return *msg->reference_execution_; } +const ::flyteidl::core::Identifier& +CloudEventWorkflowExecution::HasBitSetters::launch_plan_id(const CloudEventWorkflowExecution* msg) { + return *msg->launch_plan_id_; +} void CloudEventWorkflowExecution::clear_raw_event() { if (GetArenaNoVirtual() == nullptr && raw_event_ != nullptr) { delete raw_event_; @@ -364,6 +378,12 @@ void CloudEventWorkflowExecution::clear_reference_execution() { } reference_execution_ = nullptr; } +void CloudEventWorkflowExecution::clear_launch_plan_id() { + if (GetArenaNoVirtual() == nullptr && launch_plan_id_ != nullptr) { + delete launch_plan_id_; + } + launch_plan_id_ = nullptr; +} #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int CloudEventWorkflowExecution::kRawEventFieldNumber; const int CloudEventWorkflowExecution::kOutputDataFieldNumber; @@ -373,6 +393,7 @@ const int CloudEventWorkflowExecution::kScheduledAtFieldNumber; const int CloudEventWorkflowExecution::kArtifactIdsFieldNumber; const int CloudEventWorkflowExecution::kParentNodeExecutionFieldNumber; const int CloudEventWorkflowExecution::kReferenceExecutionFieldNumber; +const int CloudEventWorkflowExecution::kLaunchPlanIdFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 CloudEventWorkflowExecution::CloudEventWorkflowExecution() @@ -420,6 +441,11 @@ CloudEventWorkflowExecution::CloudEventWorkflowExecution(const CloudEventWorkflo } else { reference_execution_ = nullptr; } + if (from.has_launch_plan_id()) { + launch_plan_id_ = new ::flyteidl::core::Identifier(*from.launch_plan_id_); + } else { + launch_plan_id_ = nullptr; + } // @@protoc_insertion_point(copy_constructor:flyteidl.event.CloudEventWorkflowExecution) } @@ -427,8 +453,8 @@ void CloudEventWorkflowExecution::SharedCtor() { ::google::protobuf::internal::InitSCC( &scc_info_CloudEventWorkflowExecution_flyteidl_2fevent_2fcloudevents_2eproto.base); ::memset(&raw_event_, 0, static_cast( - reinterpret_cast(&reference_execution_) - - reinterpret_cast(&raw_event_)) + sizeof(reference_execution_)); + reinterpret_cast(&launch_plan_id_) - + reinterpret_cast(&raw_event_)) + sizeof(launch_plan_id_)); } CloudEventWorkflowExecution::~CloudEventWorkflowExecution() { @@ -444,6 +470,7 @@ void CloudEventWorkflowExecution::SharedDtor() { if (this != internal_default_instance()) delete scheduled_at_; if (this != internal_default_instance()) delete parent_node_execution_; if (this != internal_default_instance()) delete reference_execution_; + if (this != internal_default_instance()) delete launch_plan_id_; } void CloudEventWorkflowExecution::SetCachedSize(int size) const { @@ -490,6 +517,10 @@ void CloudEventWorkflowExecution::Clear() { delete reference_execution_; } reference_execution_ = nullptr; + if (GetArenaNoVirtual() == nullptr && launch_plan_id_ != nullptr) { + delete launch_plan_id_; + } + launch_plan_id_ = nullptr; _internal_metadata_.Clear(); } @@ -613,6 +644,19 @@ const char* CloudEventWorkflowExecution::_InternalParse(const char* begin, const {parser_till_end, object}, ptr - size, ptr)); break; } + // .flyteidl.core.Identifier launch_plan_id = 9; + case 9: { + if (static_cast<::google::protobuf::uint8>(tag) != 74) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::core::Identifier::_InternalParse; + object = msg->mutable_launch_plan_id(); + 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) { @@ -731,6 +775,17 @@ bool CloudEventWorkflowExecution::MergePartialFromCodedStream( break; } + // .flyteidl.core.Identifier launch_plan_id = 9; + case 9: { + if (static_cast< ::google::protobuf::uint8>(tag) == (74 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_launch_plan_id())); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -809,6 +864,12 @@ void CloudEventWorkflowExecution::SerializeWithCachedSizes( 8, HasBitSetters::reference_execution(this), output); } + // .flyteidl.core.Identifier launch_plan_id = 9; + if (this->has_launch_plan_id()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 9, HasBitSetters::launch_plan_id(this), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -879,6 +940,13 @@ ::google::protobuf::uint8* CloudEventWorkflowExecution::InternalSerializeWithCac 8, HasBitSetters::reference_execution(this), target); } + // .flyteidl.core.Identifier launch_plan_id = 9; + if (this->has_launch_plan_id()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 9, HasBitSetters::launch_plan_id(this), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -960,6 +1028,13 @@ size_t CloudEventWorkflowExecution::ByteSizeLong() const { *reference_execution_); } + // .flyteidl.core.Identifier launch_plan_id = 9; + if (this->has_launch_plan_id()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *launch_plan_id_); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -1009,6 +1084,9 @@ void CloudEventWorkflowExecution::MergeFrom(const CloudEventWorkflowExecution& f if (from.has_reference_execution()) { mutable_reference_execution()->::flyteidl::core::WorkflowExecutionIdentifier::MergeFrom(from.reference_execution()); } + if (from.has_launch_plan_id()) { + mutable_launch_plan_id()->::flyteidl::core::Identifier::MergeFrom(from.launch_plan_id()); + } } void CloudEventWorkflowExecution::CopyFrom(const ::google::protobuf::Message& from) { @@ -1044,6 +1122,7 @@ void CloudEventWorkflowExecution::InternalSwap(CloudEventWorkflowExecution* othe swap(scheduled_at_, other->scheduled_at_); swap(parent_node_execution_, other->parent_node_execution_); swap(reference_execution_, other->reference_execution_); + swap(launch_plan_id_, other->launch_plan_id_); } ::google::protobuf::Metadata CloudEventWorkflowExecution::GetMetadata() const { @@ -1362,6 +1441,8 @@ void CloudEventTaskExecution::InitAsDefaultInstance() { ::flyteidl::core::NodeExecutionIdentifier::internal_default_instance()); ::flyteidl::event::_CloudEventTaskExecution_default_instance_._instance.get_mutable()->reference_execution_ = const_cast< ::flyteidl::core::WorkflowExecutionIdentifier*>( ::flyteidl::core::WorkflowExecutionIdentifier::internal_default_instance()); + ::flyteidl::event::_CloudEventTaskExecution_default_instance_._instance.get_mutable()->launch_plan_id_ = const_cast< ::flyteidl::core::Identifier*>( + ::flyteidl::core::Identifier::internal_default_instance()); } class CloudEventTaskExecution::HasBitSetters { public: @@ -1372,6 +1453,7 @@ class CloudEventTaskExecution::HasBitSetters { static const ::google::protobuf::Timestamp& scheduled_at(const CloudEventTaskExecution* msg); static const ::flyteidl::core::NodeExecutionIdentifier& parent_node_execution(const CloudEventTaskExecution* msg); static const ::flyteidl::core::WorkflowExecutionIdentifier& reference_execution(const CloudEventTaskExecution* msg); + static const ::flyteidl::core::Identifier& launch_plan_id(const CloudEventTaskExecution* msg); }; const ::flyteidl::event::TaskExecutionEvent& @@ -1402,6 +1484,10 @@ const ::flyteidl::core::WorkflowExecutionIdentifier& CloudEventTaskExecution::HasBitSetters::reference_execution(const CloudEventTaskExecution* msg) { return *msg->reference_execution_; } +const ::flyteidl::core::Identifier& +CloudEventTaskExecution::HasBitSetters::launch_plan_id(const CloudEventTaskExecution* msg) { + return *msg->launch_plan_id_; +} void CloudEventTaskExecution::clear_raw_event() { if (GetArenaNoVirtual() == nullptr && raw_event_ != nullptr) { delete raw_event_; @@ -1447,6 +1533,12 @@ void CloudEventTaskExecution::clear_reference_execution() { } reference_execution_ = nullptr; } +void CloudEventTaskExecution::clear_launch_plan_id() { + if (GetArenaNoVirtual() == nullptr && launch_plan_id_ != nullptr) { + delete launch_plan_id_; + } + launch_plan_id_ = nullptr; +} #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int CloudEventTaskExecution::kRawEventFieldNumber; const int CloudEventTaskExecution::kOutputDataFieldNumber; @@ -1456,6 +1548,7 @@ const int CloudEventTaskExecution::kScheduledAtFieldNumber; const int CloudEventTaskExecution::kArtifactIdsFieldNumber; const int CloudEventTaskExecution::kParentNodeExecutionFieldNumber; const int CloudEventTaskExecution::kReferenceExecutionFieldNumber; +const int CloudEventTaskExecution::kLaunchPlanIdFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 CloudEventTaskExecution::CloudEventTaskExecution() @@ -1503,6 +1596,11 @@ CloudEventTaskExecution::CloudEventTaskExecution(const CloudEventTaskExecution& } else { reference_execution_ = nullptr; } + if (from.has_launch_plan_id()) { + launch_plan_id_ = new ::flyteidl::core::Identifier(*from.launch_plan_id_); + } else { + launch_plan_id_ = nullptr; + } // @@protoc_insertion_point(copy_constructor:flyteidl.event.CloudEventTaskExecution) } @@ -1510,8 +1608,8 @@ void CloudEventTaskExecution::SharedCtor() { ::google::protobuf::internal::InitSCC( &scc_info_CloudEventTaskExecution_flyteidl_2fevent_2fcloudevents_2eproto.base); ::memset(&raw_event_, 0, static_cast( - reinterpret_cast(&reference_execution_) - - reinterpret_cast(&raw_event_)) + sizeof(reference_execution_)); + reinterpret_cast(&launch_plan_id_) - + reinterpret_cast(&raw_event_)) + sizeof(launch_plan_id_)); } CloudEventTaskExecution::~CloudEventTaskExecution() { @@ -1527,6 +1625,7 @@ void CloudEventTaskExecution::SharedDtor() { if (this != internal_default_instance()) delete scheduled_at_; if (this != internal_default_instance()) delete parent_node_execution_; if (this != internal_default_instance()) delete reference_execution_; + if (this != internal_default_instance()) delete launch_plan_id_; } void CloudEventTaskExecution::SetCachedSize(int size) const { @@ -1573,6 +1672,10 @@ void CloudEventTaskExecution::Clear() { delete reference_execution_; } reference_execution_ = nullptr; + if (GetArenaNoVirtual() == nullptr && launch_plan_id_ != nullptr) { + delete launch_plan_id_; + } + launch_plan_id_ = nullptr; _internal_metadata_.Clear(); } @@ -1696,6 +1799,19 @@ const char* CloudEventTaskExecution::_InternalParse(const char* begin, const cha {parser_till_end, object}, ptr - size, ptr)); break; } + // .flyteidl.core.Identifier launch_plan_id = 9; + case 9: { + if (static_cast<::google::protobuf::uint8>(tag) != 74) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::core::Identifier::_InternalParse; + object = msg->mutable_launch_plan_id(); + 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) { @@ -1814,6 +1930,17 @@ bool CloudEventTaskExecution::MergePartialFromCodedStream( break; } + // .flyteidl.core.Identifier launch_plan_id = 9; + case 9: { + if (static_cast< ::google::protobuf::uint8>(tag) == (74 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_launch_plan_id())); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -1892,6 +2019,12 @@ void CloudEventTaskExecution::SerializeWithCachedSizes( 8, HasBitSetters::reference_execution(this), output); } + // .flyteidl.core.Identifier launch_plan_id = 9; + if (this->has_launch_plan_id()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 9, HasBitSetters::launch_plan_id(this), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -1962,6 +2095,13 @@ ::google::protobuf::uint8* CloudEventTaskExecution::InternalSerializeWithCachedS 8, HasBitSetters::reference_execution(this), target); } + // .flyteidl.core.Identifier launch_plan_id = 9; + if (this->has_launch_plan_id()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 9, HasBitSetters::launch_plan_id(this), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -2043,6 +2183,13 @@ size_t CloudEventTaskExecution::ByteSizeLong() const { *reference_execution_); } + // .flyteidl.core.Identifier launch_plan_id = 9; + if (this->has_launch_plan_id()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *launch_plan_id_); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -2092,6 +2239,9 @@ void CloudEventTaskExecution::MergeFrom(const CloudEventTaskExecution& from) { if (from.has_reference_execution()) { mutable_reference_execution()->::flyteidl::core::WorkflowExecutionIdentifier::MergeFrom(from.reference_execution()); } + if (from.has_launch_plan_id()) { + mutable_launch_plan_id()->::flyteidl::core::Identifier::MergeFrom(from.launch_plan_id()); + } } void CloudEventTaskExecution::CopyFrom(const ::google::protobuf::Message& from) { @@ -2127,6 +2277,7 @@ void CloudEventTaskExecution::InternalSwap(CloudEventTaskExecution* other) { swap(scheduled_at_, other->scheduled_at_); swap(parent_node_execution_, other->parent_node_execution_); swap(reference_execution_, other->reference_execution_); + swap(launch_plan_id_, other->launch_plan_id_); } ::google::protobuf::Metadata CloudEventTaskExecution::GetMetadata() const { diff --git a/flyteidl/gen/pb-cpp/flyteidl/event/cloudevents.pb.h b/flyteidl/gen/pb-cpp/flyteidl/event/cloudevents.pb.h index a093245398..972cb1efeb 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/event/cloudevents.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/event/cloudevents.pb.h @@ -253,6 +253,15 @@ class CloudEventWorkflowExecution final : ::flyteidl::core::WorkflowExecutionIdentifier* mutable_reference_execution(); void set_allocated_reference_execution(::flyteidl::core::WorkflowExecutionIdentifier* reference_execution); + // .flyteidl.core.Identifier launch_plan_id = 9; + bool has_launch_plan_id() const; + void clear_launch_plan_id(); + static const int kLaunchPlanIdFieldNumber = 9; + const ::flyteidl::core::Identifier& launch_plan_id() const; + ::flyteidl::core::Identifier* release_launch_plan_id(); + ::flyteidl::core::Identifier* mutable_launch_plan_id(); + void set_allocated_launch_plan_id(::flyteidl::core::Identifier* launch_plan_id); + // @@protoc_insertion_point(class_scope:flyteidl.event.CloudEventWorkflowExecution) private: class HasBitSetters; @@ -266,6 +275,7 @@ class CloudEventWorkflowExecution final : ::google::protobuf::Timestamp* scheduled_at_; ::flyteidl::core::NodeExecutionIdentifier* parent_node_execution_; ::flyteidl::core::WorkflowExecutionIdentifier* reference_execution_; + ::flyteidl::core::Identifier* launch_plan_id_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fevent_2fcloudevents_2eproto; }; @@ -556,6 +566,15 @@ class CloudEventTaskExecution final : ::flyteidl::core::WorkflowExecutionIdentifier* mutable_reference_execution(); void set_allocated_reference_execution(::flyteidl::core::WorkflowExecutionIdentifier* reference_execution); + // .flyteidl.core.Identifier launch_plan_id = 9; + bool has_launch_plan_id() const; + void clear_launch_plan_id(); + static const int kLaunchPlanIdFieldNumber = 9; + const ::flyteidl::core::Identifier& launch_plan_id() const; + ::flyteidl::core::Identifier* release_launch_plan_id(); + ::flyteidl::core::Identifier* mutable_launch_plan_id(); + void set_allocated_launch_plan_id(::flyteidl::core::Identifier* launch_plan_id); + // @@protoc_insertion_point(class_scope:flyteidl.event.CloudEventTaskExecution) private: class HasBitSetters; @@ -569,6 +588,7 @@ class CloudEventTaskExecution final : ::google::protobuf::Timestamp* scheduled_at_; ::flyteidl::core::NodeExecutionIdentifier* parent_node_execution_; ::flyteidl::core::WorkflowExecutionIdentifier* reference_execution_; + ::flyteidl::core::Identifier* launch_plan_id_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fevent_2fcloudevents_2eproto; }; @@ -1097,6 +1117,51 @@ inline void CloudEventWorkflowExecution::set_allocated_reference_execution(::fly // @@protoc_insertion_point(field_set_allocated:flyteidl.event.CloudEventWorkflowExecution.reference_execution) } +// .flyteidl.core.Identifier launch_plan_id = 9; +inline bool CloudEventWorkflowExecution::has_launch_plan_id() const { + return this != internal_default_instance() && launch_plan_id_ != nullptr; +} +inline const ::flyteidl::core::Identifier& CloudEventWorkflowExecution::launch_plan_id() const { + const ::flyteidl::core::Identifier* p = launch_plan_id_; + // @@protoc_insertion_point(field_get:flyteidl.event.CloudEventWorkflowExecution.launch_plan_id) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::core::_Identifier_default_instance_); +} +inline ::flyteidl::core::Identifier* CloudEventWorkflowExecution::release_launch_plan_id() { + // @@protoc_insertion_point(field_release:flyteidl.event.CloudEventWorkflowExecution.launch_plan_id) + + ::flyteidl::core::Identifier* temp = launch_plan_id_; + launch_plan_id_ = nullptr; + return temp; +} +inline ::flyteidl::core::Identifier* CloudEventWorkflowExecution::mutable_launch_plan_id() { + + if (launch_plan_id_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::core::Identifier>(GetArenaNoVirtual()); + launch_plan_id_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.event.CloudEventWorkflowExecution.launch_plan_id) + return launch_plan_id_; +} +inline void CloudEventWorkflowExecution::set_allocated_launch_plan_id(::flyteidl::core::Identifier* launch_plan_id) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::google::protobuf::MessageLite*>(launch_plan_id_); + } + if (launch_plan_id) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + launch_plan_id = ::google::protobuf::internal::GetOwnedMessage( + message_arena, launch_plan_id, submessage_arena); + } + + } else { + + } + launch_plan_id_ = launch_plan_id; + // @@protoc_insertion_point(field_set_allocated:flyteidl.event.CloudEventWorkflowExecution.launch_plan_id) +} + // ------------------------------------------------------------------- // CloudEventNodeExecution @@ -1493,6 +1558,51 @@ inline void CloudEventTaskExecution::set_allocated_reference_execution(::flyteid // @@protoc_insertion_point(field_set_allocated:flyteidl.event.CloudEventTaskExecution.reference_execution) } +// .flyteidl.core.Identifier launch_plan_id = 9; +inline bool CloudEventTaskExecution::has_launch_plan_id() const { + return this != internal_default_instance() && launch_plan_id_ != nullptr; +} +inline const ::flyteidl::core::Identifier& CloudEventTaskExecution::launch_plan_id() const { + const ::flyteidl::core::Identifier* p = launch_plan_id_; + // @@protoc_insertion_point(field_get:flyteidl.event.CloudEventTaskExecution.launch_plan_id) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::core::_Identifier_default_instance_); +} +inline ::flyteidl::core::Identifier* CloudEventTaskExecution::release_launch_plan_id() { + // @@protoc_insertion_point(field_release:flyteidl.event.CloudEventTaskExecution.launch_plan_id) + + ::flyteidl::core::Identifier* temp = launch_plan_id_; + launch_plan_id_ = nullptr; + return temp; +} +inline ::flyteidl::core::Identifier* CloudEventTaskExecution::mutable_launch_plan_id() { + + if (launch_plan_id_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::core::Identifier>(GetArenaNoVirtual()); + launch_plan_id_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.event.CloudEventTaskExecution.launch_plan_id) + return launch_plan_id_; +} +inline void CloudEventTaskExecution::set_allocated_launch_plan_id(::flyteidl::core::Identifier* launch_plan_id) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::google::protobuf::MessageLite*>(launch_plan_id_); + } + if (launch_plan_id) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + launch_plan_id = ::google::protobuf::internal::GetOwnedMessage( + message_arena, launch_plan_id, submessage_arena); + } + + } else { + + } + launch_plan_id_ = launch_plan_id; + // @@protoc_insertion_point(field_set_allocated:flyteidl.event.CloudEventTaskExecution.launch_plan_id) +} + // ------------------------------------------------------------------- // CloudEventExecutionStart diff --git a/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.pb.go b/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.pb.go index 334303ff0b..d9d2f141cf 100644 --- a/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.pb.go @@ -8,8 +8,10 @@ import ( fmt "fmt" admin "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin" core "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + event "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/event" proto "github.com/golang/protobuf/proto" any "github.com/golang/protobuf/ptypes/any" + _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -168,7 +170,6 @@ type ArtifactSpec struct { // Uploads, either from the UI or from the CLI, or FlyteRemote, will have this. Principal string `protobuf:"bytes,7,opt,name=principal,proto3" json:"principal,omitempty"` ShortDescription string `protobuf:"bytes,8,opt,name=short_description,json=shortDescription,proto3" json:"short_description,omitempty"` - LongDescription string `protobuf:"bytes,9,opt,name=long_description,json=longDescription,proto3" json:"long_description,omitempty"` // Additional user metadata UserMetadata *any.Any `protobuf:"bytes,10,opt,name=user_metadata,json=userMetadata,proto3" json:"user_metadata,omitempty"` MetadataType string `protobuf:"bytes,11,opt,name=metadata_type,json=metadataType,proto3" json:"metadata_type,omitempty"` @@ -244,13 +245,6 @@ func (m *ArtifactSpec) GetShortDescription() string { return "" } -func (m *ArtifactSpec) GetLongDescription() string { - if m != nil { - return m.LongDescription - } - return "" -} - func (m *ArtifactSpec) GetUserMetadata() *any.Any { if m != nil { return m.UserMetadata @@ -477,78 +471,102 @@ func (m *ListArtifactNamesResponse) GetArtifactKeys() []*core.ArtifactKey { return nil } -type ListArtifactsRequest struct { +type SearchArtifactsRequest struct { ArtifactKey *core.ArtifactKey `protobuf:"bytes,1,opt,name=artifact_key,json=artifactKey,proto3" json:"artifact_key,omitempty"` + Filters string `protobuf:"bytes,2,opt,name=filters,proto3" json:"filters,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` + Limit int32 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *ListArtifactsRequest) Reset() { *m = ListArtifactsRequest{} } -func (m *ListArtifactsRequest) String() string { return proto.CompactTextString(m) } -func (*ListArtifactsRequest) ProtoMessage() {} -func (*ListArtifactsRequest) Descriptor() ([]byte, []int) { +func (m *SearchArtifactsRequest) Reset() { *m = SearchArtifactsRequest{} } +func (m *SearchArtifactsRequest) String() string { return proto.CompactTextString(m) } +func (*SearchArtifactsRequest) ProtoMessage() {} +func (*SearchArtifactsRequest) Descriptor() ([]byte, []int) { return fileDescriptor_804518da5936dedb, []int{8} } -func (m *ListArtifactsRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListArtifactsRequest.Unmarshal(m, b) +func (m *SearchArtifactsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchArtifactsRequest.Unmarshal(m, b) } -func (m *ListArtifactsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListArtifactsRequest.Marshal(b, m, deterministic) +func (m *SearchArtifactsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchArtifactsRequest.Marshal(b, m, deterministic) } -func (m *ListArtifactsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListArtifactsRequest.Merge(m, src) +func (m *SearchArtifactsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchArtifactsRequest.Merge(m, src) } -func (m *ListArtifactsRequest) XXX_Size() int { - return xxx_messageInfo_ListArtifactsRequest.Size(m) +func (m *SearchArtifactsRequest) XXX_Size() int { + return xxx_messageInfo_SearchArtifactsRequest.Size(m) } -func (m *ListArtifactsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ListArtifactsRequest.DiscardUnknown(m) +func (m *SearchArtifactsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SearchArtifactsRequest.DiscardUnknown(m) } -var xxx_messageInfo_ListArtifactsRequest proto.InternalMessageInfo +var xxx_messageInfo_SearchArtifactsRequest proto.InternalMessageInfo -func (m *ListArtifactsRequest) GetArtifactKey() *core.ArtifactKey { +func (m *SearchArtifactsRequest) GetArtifactKey() *core.ArtifactKey { if m != nil { return m.ArtifactKey } return nil } -type ListArtifactsResponse struct { +func (m *SearchArtifactsRequest) GetFilters() string { + if m != nil { + return m.Filters + } + return "" +} + +func (m *SearchArtifactsRequest) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + +func (m *SearchArtifactsRequest) GetLimit() int32 { + if m != nil { + return m.Limit + } + return 0 +} + +type SearchArtifactsResponse struct { Artifacts []*Artifact `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *ListArtifactsResponse) Reset() { *m = ListArtifactsResponse{} } -func (m *ListArtifactsResponse) String() string { return proto.CompactTextString(m) } -func (*ListArtifactsResponse) ProtoMessage() {} -func (*ListArtifactsResponse) Descriptor() ([]byte, []int) { +func (m *SearchArtifactsResponse) Reset() { *m = SearchArtifactsResponse{} } +func (m *SearchArtifactsResponse) String() string { return proto.CompactTextString(m) } +func (*SearchArtifactsResponse) ProtoMessage() {} +func (*SearchArtifactsResponse) Descriptor() ([]byte, []int) { return fileDescriptor_804518da5936dedb, []int{9} } -func (m *ListArtifactsResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListArtifactsResponse.Unmarshal(m, b) +func (m *SearchArtifactsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchArtifactsResponse.Unmarshal(m, b) } -func (m *ListArtifactsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListArtifactsResponse.Marshal(b, m, deterministic) +func (m *SearchArtifactsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchArtifactsResponse.Marshal(b, m, deterministic) } -func (m *ListArtifactsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListArtifactsResponse.Merge(m, src) +func (m *SearchArtifactsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchArtifactsResponse.Merge(m, src) } -func (m *ListArtifactsResponse) XXX_Size() int { - return xxx_messageInfo_ListArtifactsResponse.Size(m) +func (m *SearchArtifactsResponse) XXX_Size() int { + return xxx_messageInfo_SearchArtifactsResponse.Size(m) } -func (m *ListArtifactsResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ListArtifactsResponse.DiscardUnknown(m) +func (m *SearchArtifactsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_SearchArtifactsResponse.DiscardUnknown(m) } -var xxx_messageInfo_ListArtifactsResponse proto.InternalMessageInfo +var xxx_messageInfo_SearchArtifactsResponse proto.InternalMessageInfo -func (m *ListArtifactsResponse) GetArtifacts() []*Artifact { +func (m *SearchArtifactsResponse) GetArtifacts() []*Artifact { if m != nil { return m.Artifacts } @@ -991,6 +1009,132 @@ func (m *RegisterResponse) XXX_DiscardUnknown() { var xxx_messageInfo_RegisterResponse proto.InternalMessageInfo +type CloudEventRequest struct { + // Types that are valid to be assigned to Event: + // *CloudEventRequest_WorkflowExecutionEvent + // *CloudEventRequest_TaskExecutionEvent + // *CloudEventRequest_NodeExecutionEvent + Event isCloudEventRequest_Event `protobuf_oneof:"event"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CloudEventRequest) Reset() { *m = CloudEventRequest{} } +func (m *CloudEventRequest) String() string { return proto.CompactTextString(m) } +func (*CloudEventRequest) ProtoMessage() {} +func (*CloudEventRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_804518da5936dedb, []int{21} +} + +func (m *CloudEventRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CloudEventRequest.Unmarshal(m, b) +} +func (m *CloudEventRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CloudEventRequest.Marshal(b, m, deterministic) +} +func (m *CloudEventRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloudEventRequest.Merge(m, src) +} +func (m *CloudEventRequest) XXX_Size() int { + return xxx_messageInfo_CloudEventRequest.Size(m) +} +func (m *CloudEventRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CloudEventRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CloudEventRequest proto.InternalMessageInfo + +type isCloudEventRequest_Event interface { + isCloudEventRequest_Event() +} + +type CloudEventRequest_WorkflowExecutionEvent struct { + WorkflowExecutionEvent *event.CloudEventWorkflowExecution `protobuf:"bytes,1,opt,name=workflow_execution_event,json=workflowExecutionEvent,proto3,oneof"` +} + +type CloudEventRequest_TaskExecutionEvent struct { + TaskExecutionEvent *event.CloudEventTaskExecution `protobuf:"bytes,2,opt,name=task_execution_event,json=taskExecutionEvent,proto3,oneof"` +} + +type CloudEventRequest_NodeExecutionEvent struct { + NodeExecutionEvent *event.CloudEventNodeExecution `protobuf:"bytes,3,opt,name=node_execution_event,json=nodeExecutionEvent,proto3,oneof"` +} + +func (*CloudEventRequest_WorkflowExecutionEvent) isCloudEventRequest_Event() {} + +func (*CloudEventRequest_TaskExecutionEvent) isCloudEventRequest_Event() {} + +func (*CloudEventRequest_NodeExecutionEvent) isCloudEventRequest_Event() {} + +func (m *CloudEventRequest) GetEvent() isCloudEventRequest_Event { + if m != nil { + return m.Event + } + return nil +} + +func (m *CloudEventRequest) GetWorkflowExecutionEvent() *event.CloudEventWorkflowExecution { + if x, ok := m.GetEvent().(*CloudEventRequest_WorkflowExecutionEvent); ok { + return x.WorkflowExecutionEvent + } + return nil +} + +func (m *CloudEventRequest) GetTaskExecutionEvent() *event.CloudEventTaskExecution { + if x, ok := m.GetEvent().(*CloudEventRequest_TaskExecutionEvent); ok { + return x.TaskExecutionEvent + } + return nil +} + +func (m *CloudEventRequest) GetNodeExecutionEvent() *event.CloudEventNodeExecution { + if x, ok := m.GetEvent().(*CloudEventRequest_NodeExecutionEvent); ok { + return x.NodeExecutionEvent + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*CloudEventRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*CloudEventRequest_WorkflowExecutionEvent)(nil), + (*CloudEventRequest_TaskExecutionEvent)(nil), + (*CloudEventRequest_NodeExecutionEvent)(nil), + } +} + +type CloudEventResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CloudEventResponse) Reset() { *m = CloudEventResponse{} } +func (m *CloudEventResponse) String() string { return proto.CompactTextString(m) } +func (*CloudEventResponse) ProtoMessage() {} +func (*CloudEventResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_804518da5936dedb, []int{22} +} + +func (m *CloudEventResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CloudEventResponse.Unmarshal(m, b) +} +func (m *CloudEventResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CloudEventResponse.Marshal(b, m, deterministic) +} +func (m *CloudEventResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloudEventResponse.Merge(m, src) +} +func (m *CloudEventResponse) XXX_Size() int { + return xxx_messageInfo_CloudEventResponse.Size(m) +} +func (m *CloudEventResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CloudEventResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CloudEventResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*Artifact)(nil), "flyteidl.artifact.Artifact") proto.RegisterType((*CreateArtifactRequest)(nil), "flyteidl.artifact.CreateArtifactRequest") @@ -1001,8 +1145,8 @@ func init() { proto.RegisterType((*GetArtifactResponse)(nil), "flyteidl.artifact.GetArtifactResponse") proto.RegisterType((*ListArtifactNamesRequest)(nil), "flyteidl.artifact.ListArtifactNamesRequest") proto.RegisterType((*ListArtifactNamesResponse)(nil), "flyteidl.artifact.ListArtifactNamesResponse") - proto.RegisterType((*ListArtifactsRequest)(nil), "flyteidl.artifact.ListArtifactsRequest") - proto.RegisterType((*ListArtifactsResponse)(nil), "flyteidl.artifact.ListArtifactsResponse") + proto.RegisterType((*SearchArtifactsRequest)(nil), "flyteidl.artifact.SearchArtifactsRequest") + proto.RegisterType((*SearchArtifactsResponse)(nil), "flyteidl.artifact.SearchArtifactsResponse") proto.RegisterType((*AddTagRequest)(nil), "flyteidl.artifact.AddTagRequest") proto.RegisterType((*AddTagResponse)(nil), "flyteidl.artifact.AddTagResponse") proto.RegisterType((*CreateTriggerRequest)(nil), "flyteidl.artifact.CreateTriggerRequest") @@ -1014,84 +1158,105 @@ func init() { proto.RegisterType((*ArtifactConsumer)(nil), "flyteidl.artifact.ArtifactConsumer") proto.RegisterType((*RegisterConsumerRequest)(nil), "flyteidl.artifact.RegisterConsumerRequest") proto.RegisterType((*RegisterResponse)(nil), "flyteidl.artifact.RegisterResponse") + proto.RegisterType((*CloudEventRequest)(nil), "flyteidl.artifact.CloudEventRequest") + proto.RegisterType((*CloudEventResponse)(nil), "flyteidl.artifact.CloudEventResponse") } func init() { proto.RegisterFile("flyteidl/artifact/artifacts.proto", fileDescriptor_804518da5936dedb) } var fileDescriptor_804518da5936dedb = []byte{ - // 1138 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x5d, 0x73, 0xdb, 0x44, - 0x17, 0xae, 0xeb, 0x7c, 0xd8, 0xc7, 0x71, 0xeb, 0x6e, 0xd3, 0x54, 0x71, 0xf3, 0xbe, 0x75, 0x95, - 0xa1, 0xb8, 0x05, 0xe4, 0x99, 0x84, 0x81, 0xb4, 0x33, 0x05, 0x42, 0xd3, 0x81, 0xd0, 0xa4, 0xa4, - 0x22, 0x7c, 0x0c, 0xd3, 0xc1, 0xb3, 0x96, 0x8e, 0x15, 0x11, 0x59, 0x52, 0x57, 0xab, 0x14, 0x5f, - 0x95, 0x7f, 0xc0, 0xbf, 0xe2, 0x9a, 0x7b, 0xfe, 0x0c, 0xa3, 0xd5, 0xae, 0x24, 0x3b, 0xb2, 0x9b, - 0x21, 0xdc, 0x49, 0x7b, 0x9e, 0xe7, 0x39, 0x1f, 0x3a, 0xe7, 0xac, 0x0d, 0xf7, 0x86, 0xde, 0x98, - 0xa3, 0x6b, 0x7b, 0x3d, 0xca, 0xb8, 0x3b, 0xa4, 0x16, 0xcf, 0x1e, 0x22, 0x23, 0x64, 0x01, 0x0f, - 0xc8, 0x0d, 0x05, 0x31, 0x94, 0xa5, 0xbd, 0xee, 0x04, 0x81, 0xe3, 0x61, 0x4f, 0x00, 0x06, 0xf1, - 0xb0, 0x47, 0xfd, 0x71, 0x8a, 0x6e, 0x77, 0x72, 0x41, 0x7b, 0xe4, 0xfa, 0x3d, 0x8f, 0xc6, 0xbe, - 0x75, 0xd2, 0x0f, 0x3d, 0xea, 0x4b, 0xc4, 0x46, 0x86, 0xb0, 0x02, 0x86, 0x3d, 0xcf, 0xe5, 0xc8, - 0xa8, 0x27, 0xbd, 0xb5, 0xd7, 0x27, 0xad, 0x7c, 0x1c, 0xa2, 0x32, 0xfd, 0x7f, 0xd2, 0xe4, 0xda, - 0xe8, 0x73, 0x77, 0xe8, 0x22, 0x93, 0xf6, 0xbb, 0x93, 0x76, 0x15, 0x6d, 0xdf, 0xb5, 0x25, 0xe0, - 0x7f, 0x53, 0x02, 0x3e, 0x47, 0x36, 0xa4, 0x16, 0xa6, 0x66, 0xfd, 0x8f, 0x0a, 0xd4, 0x76, 0x25, - 0x89, 0x3c, 0x86, 0x46, 0x41, 0x40, 0xab, 0x74, 0x2a, 0xdd, 0xc6, 0xd6, 0xba, 0x91, 0xd5, 0x22, - 0x51, 0x30, 0x14, 0x7a, 0x7f, 0xcf, 0x04, 0x85, 0xde, 0xb7, 0xc9, 0x36, 0x2c, 0x44, 0x21, 0x5a, - 0xda, 0x55, 0x41, 0xba, 0x6b, 0x9c, 0x2b, 0x60, 0x46, 0xfc, 0x2e, 0x44, 0xcb, 0x14, 0x60, 0x42, - 0x60, 0x81, 0x53, 0x27, 0xd2, 0xaa, 0x9d, 0x6a, 0xb7, 0x6e, 0x8a, 0x67, 0xfd, 0xaf, 0xab, 0x70, - 0xeb, 0x29, 0x43, 0xca, 0x51, 0x11, 0x4c, 0x7c, 0x1d, 0x63, 0xc4, 0xc9, 0x13, 0x58, 0xc9, 0xc2, - 0x3b, 0xc5, 0xb1, 0x8c, 0xaf, 0x3d, 0x23, 0xbe, 0xe7, 0x38, 0x36, 0xb3, 0x74, 0x9e, 0xe3, 0x98, - 0x68, 0xb0, 0x7c, 0x86, 0x2c, 0x72, 0x03, 0x5f, 0xab, 0x76, 0x2a, 0xdd, 0xba, 0xa9, 0x5e, 0xff, - 0x5d, 0xec, 0x3f, 0x01, 0x84, 0x89, 0x9d, 0xbb, 0x81, 0x1f, 0x69, 0x0b, 0x9d, 0x6a, 0xb7, 0xb1, - 0xb5, 0x53, 0x42, 0x2d, 0xcd, 0xc5, 0x38, 0xca, 0xa8, 0xcf, 0x7c, 0xce, 0xc6, 0x66, 0x41, 0x8b, - 0xb4, 0xa0, 0xca, 0xa9, 0xa3, 0x2d, 0x8a, 0x20, 0x93, 0xc7, 0xf6, 0x13, 0xb8, 0x3e, 0x45, 0x48, - 0x40, 0xaa, 0x06, 0x75, 0x33, 0x79, 0x24, 0xab, 0xb0, 0x78, 0x46, 0xbd, 0x18, 0x45, 0x1a, 0x75, - 0x33, 0x7d, 0x79, 0x7c, 0x75, 0xa7, 0xa2, 0xff, 0x5d, 0x85, 0x95, 0x62, 0x06, 0xe4, 0x43, 0x05, - 0x4d, 0x4b, 0xb8, 0x36, 0x55, 0xc2, 0x83, 0xb4, 0x3d, 0xa5, 0x04, 0x31, 0x60, 0x21, 0x69, 0x49, - 0x59, 0x9e, 0x76, 0x39, 0xf8, 0x78, 0x1c, 0xa2, 0x29, 0x70, 0xe4, 0x10, 0xae, 0x71, 0x1a, 0x9d, - 0xf6, 0xf1, 0x37, 0xb4, 0xe2, 0x24, 0x64, 0x91, 0x4a, 0x63, 0xeb, 0xfe, 0x14, 0xf3, 0x98, 0x46, - 0xa7, 0xcf, 0x14, 0x66, 0x3f, 0xeb, 0x6c, 0xb3, 0xc9, 0x8b, 0x06, 0xf2, 0x35, 0xd4, 0x73, 0xa5, - 0x25, 0xa1, 0xf4, 0x70, 0x4a, 0xe9, 0xc7, 0x80, 0x9d, 0x0e, 0xbd, 0xe0, 0x4d, 0x99, 0x5a, 0x4e, - 0x26, 0x1b, 0x50, 0x0f, 0x99, 0xeb, 0x5b, 0x6e, 0x48, 0x3d, 0x6d, 0x59, 0x54, 0x29, 0x3f, 0x20, - 0x1f, 0xc0, 0x8d, 0xe8, 0x24, 0x60, 0xbc, 0x6f, 0x63, 0x64, 0x31, 0x37, 0x14, 0xfe, 0x6a, 0x02, - 0xd5, 0x12, 0x86, 0xbd, 0xfc, 0x9c, 0x3c, 0x80, 0x96, 0x17, 0xf8, 0xce, 0x04, 0xb6, 0x2e, 0xb0, - 0xd7, 0x93, 0xf3, 0x22, 0xf4, 0x11, 0x34, 0xe3, 0x08, 0x59, 0x7f, 0x84, 0x9c, 0xda, 0x94, 0x53, - 0x0d, 0x44, 0x0e, 0xab, 0x46, 0xba, 0x50, 0x0c, 0xb5, 0x50, 0x8c, 0x5d, 0x7f, 0x6c, 0xae, 0x24, - 0xd0, 0x43, 0x89, 0x24, 0x9b, 0xd0, 0x54, 0xac, 0xbe, 0xf8, 0x04, 0x0d, 0xe1, 0x62, 0x45, 0x1d, - 0x26, 0x45, 0xd7, 0x5f, 0xc2, 0xda, 0x74, 0x8f, 0x45, 0x61, 0xe0, 0x47, 0x48, 0x3e, 0x85, 0x9a, - 0x6a, 0x43, 0xf9, 0xa5, 0xef, 0xcc, 0xe9, 0x6d, 0x33, 0x03, 0xeb, 0x03, 0x20, 0x5f, 0x21, 0x9f, - 0x9e, 0xbf, 0x2d, 0x58, 0x7c, 0x1d, 0x23, 0x53, 0x83, 0xb7, 0x31, 0x63, 0xf0, 0x5e, 0x26, 0x18, - 0x33, 0x85, 0x26, 0x43, 0x67, 0x23, 0xa7, 0xae, 0x17, 0x89, 0xf6, 0xa9, 0x99, 0xea, 0x55, 0x7f, - 0x01, 0x37, 0x27, 0x7c, 0x5c, 0x36, 0xe6, 0x03, 0xd0, 0x0e, 0xdc, 0x28, 0x13, 0x7c, 0x41, 0x47, - 0x18, 0xa9, 0xc8, 0x35, 0x58, 0x0e, 0x59, 0xf0, 0x2b, 0x4a, 0xcd, 0xba, 0xa9, 0x5e, 0xc9, 0x1a, - 0x2c, 0xd9, 0xc1, 0x88, 0xba, 0xbe, 0x9c, 0x1a, 0xf9, 0xa6, 0xbf, 0x82, 0xf5, 0x12, 0x35, 0x19, - 0xe3, 0xe7, 0xd0, 0x2c, 0x2e, 0xa2, 0x48, 0xab, 0x88, 0xe9, 0x9f, 0xb7, 0x89, 0x56, 0x0a, 0x9b, - 0x28, 0xd2, 0xbf, 0x87, 0xd5, 0xa2, 0x7a, 0xf4, 0xdf, 0x6c, 0x38, 0xdd, 0x84, 0x5b, 0x53, 0xb2, - 0x32, 0xe0, 0x47, 0x50, 0xcf, 0x6e, 0x38, 0x19, 0xec, 0xdc, 0xaa, 0xe6, 0x68, 0xfd, 0x2d, 0x34, - 0x77, 0x6d, 0xfb, 0x98, 0x3a, 0x2a, 0xc6, 0xcb, 0x5c, 0x12, 0xa5, 0x2b, 0x2a, 0x19, 0xcb, 0xe0, - 0x0c, 0xd9, 0x1b, 0xe6, 0x72, 0x14, 0xab, 0xb9, 0x66, 0xe6, 0x07, 0x7a, 0x0b, 0xae, 0xa9, 0x00, - 0xd2, 0x6c, 0xf4, 0x01, 0xac, 0xa6, 0x0d, 0x7f, 0xcc, 0x5c, 0xc7, 0x41, 0xa6, 0x22, 0xfb, 0x06, - 0x6e, 0xf2, 0xf4, 0xa4, 0x5f, 0xb8, 0x81, 0xcf, 0x17, 0x51, 0x5c, 0xd2, 0xc6, 0x81, 0x80, 0x1c, - 0x79, 0xd4, 0x37, 0x6f, 0x48, 0x5a, 0x7e, 0xa4, 0xdf, 0x56, 0x97, 0x50, 0xe6, 0x43, 0x3a, 0x3f, - 0x82, 0xd5, 0x3d, 0xf4, 0xf0, 0x9c, 0xf3, 0x1d, 0x00, 0xe5, 0x7c, 0x66, 0x55, 0x8a, 0x5b, 0x49, - 0x82, 0xf7, 0xed, 0xc4, 0xd5, 0x94, 0xa2, 0x74, 0xf5, 0x7b, 0x05, 0x5a, 0xaa, 0x90, 0x47, 0x2c, - 0xb0, 0x63, 0x0b, 0x19, 0xf9, 0x04, 0xea, 0x89, 0x08, 0x1f, 0x5f, 0xc8, 0x4d, 0x2d, 0xc5, 0xee, - 0xdb, 0xe4, 0x63, 0x58, 0x0e, 0x62, 0x1e, 0xc6, 0x3c, 0x9a, 0xb1, 0xc7, 0x7f, 0xa0, 0xcc, 0xa5, - 0x03, 0x0f, 0x0f, 0x69, 0x68, 0x2a, 0xa8, 0xfe, 0x0a, 0x6e, 0x9b, 0xe8, 0xb8, 0x11, 0x47, 0xa6, - 0x22, 0x50, 0x09, 0xef, 0x26, 0xcb, 0x34, 0x3d, 0x52, 0x3d, 0xb5, 0x39, 0xa7, 0xa7, 0x32, 0x7a, - 0xce, 0xd2, 0xdf, 0xe6, 0xf9, 0x3d, 0x0d, 0xfc, 0x28, 0x1e, 0x5d, 0x22, 0xbf, 0x6d, 0x58, 0x72, - 0xfd, 0x42, 0x7a, 0x77, 0xa6, 0x48, 0x47, 0x94, 0xd1, 0x11, 0x72, 0x64, 0x49, 0x7e, 0x12, 0x5a, - 0x4c, 0x4f, 0x05, 0x50, 0x48, 0xcf, 0x92, 0x47, 0x17, 0x49, 0x2f, 0xa3, 0xe7, 0x2c, 0x9d, 0x40, - 0x4b, 0xa9, 0xab, 0x6f, 0xba, 0xf5, 0xe7, 0x62, 0x9e, 0x73, 0x6a, 0x64, 0x63, 0xe2, 0xc0, 0xb5, - 0xc9, 0x0d, 0x4e, 0xba, 0x17, 0xfd, 0x21, 0xd1, 0x7e, 0x70, 0x01, 0xa4, 0xec, 0xa7, 0x2b, 0xe4, - 0x17, 0x68, 0x14, 0x76, 0x2e, 0x79, 0xaf, 0x84, 0x7b, 0x7e, 0xef, 0xb7, 0xef, 0xbf, 0x0b, 0x96, - 0xe9, 0xdb, 0xd0, 0x9c, 0x98, 0x1a, 0xf2, 0xfe, 0xcc, 0xe8, 0x26, 0xc7, 0xa7, 0xdd, 0x7d, 0x37, - 0xb0, 0xe8, 0x65, 0x62, 0x60, 0x4a, 0xbd, 0x94, 0x0d, 0x69, 0xa9, 0x97, 0xf2, 0xd9, 0xbb, 0x42, - 0xbe, 0x85, 0xa5, 0x74, 0xef, 0x90, 0x4e, 0xd9, 0x77, 0x2f, 0xee, 0xc4, 0xf6, 0xbd, 0x39, 0x88, - 0x4c, 0x10, 0xf3, 0x76, 0xc8, 0xa6, 0xf9, 0x61, 0x09, 0x71, 0xc6, 0xc0, 0xb5, 0x37, 0xe7, 0x60, - 0xcb, 0xdd, 0x64, 0x43, 0x35, 0xcf, 0xcd, 0x54, 0xe3, 0x5f, 0xd0, 0xcd, 0x97, 0x5f, 0xfc, 0xfc, - 0x99, 0xe3, 0xf2, 0x93, 0x78, 0x60, 0x58, 0xc1, 0xa8, 0x27, 0x28, 0x01, 0x73, 0xd2, 0x87, 0x5e, - 0xf6, 0x9f, 0xc3, 0x41, 0xbf, 0x17, 0x0e, 0x3e, 0x72, 0x82, 0xde, 0xb9, 0xff, 0x5c, 0x83, 0x25, - 0xf1, 0xc3, 0x67, 0xfb, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x45, 0x25, 0x8b, 0xe7, 0x8f, 0x0d, - 0x00, 0x00, + // 1450 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4f, 0x6f, 0xdc, 0x44, + 0x1b, 0x8f, 0xb3, 0xf9, 0xb7, 0x4f, 0xb2, 0x6d, 0x32, 0xcd, 0x9b, 0x3a, 0xdb, 0xbe, 0x6f, 0xb7, + 0xae, 0xde, 0x76, 0x69, 0xc1, 0x16, 0x29, 0x82, 0xb6, 0xa8, 0x40, 0xfa, 0x47, 0x34, 0x34, 0x6d, + 0x53, 0x37, 0x02, 0x14, 0x2a, 0xad, 0x66, 0xed, 0x59, 0xc7, 0xc4, 0x6b, 0xbb, 0xe3, 0xd9, 0x84, + 0x55, 0x55, 0x15, 0xf5, 0x8a, 0x44, 0x11, 0x1c, 0x38, 0x71, 0x46, 0xe2, 0xc4, 0x9d, 0x03, 0x9f, + 0x00, 0x09, 0x89, 0xaf, 0x80, 0xc4, 0x8d, 0xcf, 0x80, 0x3c, 0x9e, 0xb1, 0xbd, 0xbb, 0xde, 0xcd, + 0x8a, 0x70, 0xe0, 0xe6, 0x79, 0xe6, 0xf7, 0xfc, 0x9d, 0x67, 0x9e, 0xdf, 0xec, 0xc2, 0xd9, 0x96, + 0xd7, 0x65, 0xc4, 0xb5, 0x3d, 0x03, 0x53, 0xe6, 0xb6, 0xb0, 0xc5, 0xd2, 0x8f, 0x48, 0x0f, 0x69, + 0xc0, 0x02, 0xb4, 0x24, 0x21, 0xba, 0xdc, 0xa9, 0xae, 0x3a, 0x41, 0xe0, 0x78, 0xc4, 0xe0, 0x80, + 0x66, 0xa7, 0x65, 0x60, 0xbf, 0x9b, 0xa0, 0xab, 0xa7, 0xc5, 0x16, 0x0e, 0x5d, 0x03, 0xfb, 0x7e, + 0xc0, 0x30, 0x73, 0x03, 0x5f, 0xd8, 0xaa, 0xd6, 0x32, 0x77, 0x76, 0xdb, 0xf5, 0x0d, 0x0f, 0x77, + 0x7c, 0x6b, 0xb7, 0x11, 0x7a, 0xd8, 0x97, 0xfa, 0x29, 0xc2, 0x0a, 0x28, 0x31, 0x3c, 0x97, 0x11, + 0x8a, 0x3d, 0xa9, 0xbf, 0xda, 0xbb, 0xcb, 0xba, 0x21, 0x91, 0x5b, 0xff, 0xeb, 0xdd, 0x72, 0x6d, + 0xe2, 0x33, 0xb7, 0xe5, 0x12, 0x2a, 0xf6, 0xcf, 0xf4, 0xee, 0xcb, 0x5c, 0x1a, 0xae, 0x2d, 0x00, + 0xff, 0xed, 0x33, 0xe0, 0x33, 0x42, 0x5b, 0xd8, 0x22, 0x03, 0xa1, 0x93, 0x7d, 0xe2, 0x33, 0xc3, + 0xf2, 0x82, 0x8e, 0xcd, 0x3f, 0x45, 0x04, 0xda, 0x4b, 0x05, 0xe6, 0xd6, 0x85, 0x59, 0x74, 0x0d, + 0xe6, 0x73, 0x2e, 0x54, 0xa5, 0xa6, 0xd4, 0xe7, 0xd7, 0x56, 0xf5, 0xb4, 0x96, 0xb1, 0x0f, 0x5d, + 0xa2, 0x37, 0x6e, 0x99, 0x20, 0xd1, 0x1b, 0x36, 0xba, 0x0c, 0x53, 0x51, 0x48, 0x2c, 0x75, 0x92, + 0x2b, 0x9d, 0xd1, 0x07, 0x0e, 0x20, 0x55, 0x7c, 0x14, 0x12, 0xcb, 0xe4, 0x60, 0x84, 0x60, 0x8a, + 0x61, 0x27, 0x52, 0x4b, 0xb5, 0x52, 0xbd, 0x6c, 0xf2, 0x6f, 0xed, 0xd7, 0x49, 0xf8, 0xcf, 0x4d, + 0x4a, 0x30, 0x23, 0x52, 0xc1, 0x24, 0x4f, 0x3a, 0x24, 0x62, 0xe8, 0x3a, 0x2c, 0xa4, 0xe1, 0xed, + 0x91, 0xae, 0x88, 0xaf, 0x3a, 0x24, 0xbe, 0xbb, 0xa4, 0x6b, 0xa6, 0xe9, 0xdc, 0x25, 0x5d, 0xa4, + 0xc2, 0xec, 0x3e, 0xa1, 0x91, 0x1b, 0xf8, 0x6a, 0xa9, 0xa6, 0xd4, 0xcb, 0xa6, 0x5c, 0xfe, 0xbd, + 0xd8, 0x3f, 0x06, 0x08, 0xe3, 0x7d, 0xde, 0x2a, 0xea, 0x54, 0xad, 0x54, 0x9f, 0x5f, 0xbb, 0x52, + 0xa0, 0x5a, 0x98, 0x8b, 0xbe, 0x95, 0xaa, 0xde, 0xf6, 0x19, 0xed, 0x9a, 0x39, 0x5b, 0x68, 0x11, + 0x4a, 0x0c, 0x3b, 0xea, 0x34, 0x0f, 0x32, 0xfe, 0xac, 0x5e, 0x87, 0xe3, 0x7d, 0x0a, 0x31, 0x48, + 0xd6, 0xa0, 0x6c, 0xc6, 0x9f, 0x68, 0x19, 0xa6, 0xf7, 0xb1, 0xd7, 0x21, 0x3c, 0x8d, 0xb2, 0x99, + 0x2c, 0xae, 0x4d, 0x5e, 0x51, 0xb4, 0x1f, 0x4b, 0xb0, 0x90, 0xcf, 0x00, 0xbd, 0x2a, 0xa1, 0x49, + 0x09, 0x57, 0xfa, 0x4a, 0xb8, 0x99, 0x34, 0xb0, 0x30, 0x81, 0x74, 0x98, 0x8a, 0x9b, 0x56, 0x94, + 0xa7, 0x5a, 0x0c, 0xde, 0xee, 0x86, 0xc4, 0xe4, 0x38, 0x74, 0x0f, 0x8e, 0x31, 0x1c, 0xed, 0x35, + 0xc8, 0x67, 0xc4, 0xea, 0xc4, 0x21, 0xf3, 0x54, 0xe6, 0xd7, 0xce, 0xf7, 0x69, 0x6e, 0xe3, 0x68, + 0xef, 0xb6, 0xc4, 0x6c, 0xa4, 0xbd, 0x6f, 0x56, 0x58, 0x7e, 0x03, 0xdd, 0x81, 0x72, 0x66, 0x69, + 0x86, 0x5b, 0xba, 0xd8, 0x67, 0xe9, 0xa3, 0x80, 0xee, 0xb5, 0xbc, 0xe0, 0xa0, 0xc8, 0x5a, 0xa6, + 0x8c, 0x4e, 0x43, 0x39, 0xa4, 0xae, 0x6f, 0xb9, 0x21, 0xf6, 0xd4, 0x59, 0x5e, 0xa5, 0x4c, 0x80, + 0x2e, 0xc1, 0x52, 0xb4, 0x1b, 0x50, 0xd6, 0xb0, 0x49, 0x64, 0x51, 0x37, 0xe4, 0xfe, 0xe6, 0x38, + 0x6a, 0x91, 0x6f, 0xdc, 0xca, 0xe4, 0xe8, 0x2a, 0x54, 0x3a, 0x11, 0xa1, 0x8d, 0x36, 0x61, 0xd8, + 0xc6, 0x0c, 0xab, 0xc0, 0x03, 0x5b, 0xd6, 0x93, 0x51, 0xa2, 0xcb, 0x29, 0xa3, 0xaf, 0xfb, 0x5d, + 0x73, 0x21, 0x86, 0xde, 0x13, 0x48, 0x74, 0x0e, 0x2a, 0x52, 0xab, 0xc1, 0xeb, 0x3a, 0xcf, 0x7d, + 0x2c, 0x48, 0x61, 0x5c, 0x49, 0xed, 0x21, 0xac, 0xf4, 0x37, 0x4e, 0x14, 0x06, 0x7e, 0x44, 0xd0, + 0x5b, 0x30, 0x27, 0x7b, 0x4b, 0x1c, 0xdf, 0xa9, 0x11, 0x0d, 0x6b, 0xa6, 0x60, 0xad, 0x09, 0xe8, + 0x7d, 0xc2, 0xfa, 0x2f, 0xd5, 0x1a, 0x4c, 0x3f, 0xe9, 0x10, 0x2a, 0x6f, 0xd3, 0xe9, 0x21, 0xb7, + 0xe9, 0x61, 0x8c, 0x31, 0x13, 0x68, 0x7c, 0x93, 0x6c, 0xc2, 0xb0, 0xeb, 0x45, 0xbc, 0x27, 0xe6, + 0x4c, 0xb9, 0xd4, 0xee, 0xc3, 0x89, 0x1e, 0x1f, 0x47, 0x8d, 0x79, 0x13, 0xd4, 0x4d, 0x37, 0x4a, + 0x0d, 0xde, 0xc7, 0x6d, 0x12, 0xc9, 0xc8, 0x55, 0x98, 0x0d, 0x69, 0xf0, 0x29, 0x11, 0x36, 0xcb, + 0xa6, 0x5c, 0xa2, 0x15, 0x98, 0xb1, 0x83, 0x36, 0x76, 0x7d, 0x71, 0x15, 0xc4, 0x4a, 0x7b, 0x0c, + 0xab, 0x05, 0xd6, 0x44, 0x8c, 0xef, 0x42, 0x25, 0x3f, 0x5d, 0x22, 0x55, 0xe1, 0x57, 0x7a, 0xd4, + 0x78, 0x59, 0xc8, 0x8d, 0x97, 0x48, 0xfb, 0x4e, 0x81, 0x95, 0x47, 0x04, 0x53, 0x6b, 0x57, 0x62, + 0xa2, 0x7f, 0x6e, 0x72, 0xb5, 0x5c, 0x8f, 0x11, 0x1a, 0x89, 0x84, 0xe4, 0x32, 0xbe, 0xf3, 0x2c, + 0xd8, 0x23, 0x72, 0xa2, 0x25, 0x8b, 0x58, 0xea, 0xb9, 0x6d, 0x97, 0xa9, 0x53, 0x35, 0xa5, 0x3e, + 0x6d, 0x26, 0x0b, 0x6d, 0x1b, 0x4e, 0x0e, 0x84, 0x27, 0x72, 0xbf, 0x0a, 0xe5, 0x94, 0x41, 0x45, + 0xde, 0x23, 0x0f, 0x28, 0x43, 0x6b, 0xcf, 0xa1, 0xb2, 0x6e, 0xdb, 0xdb, 0xd8, 0x91, 0xb9, 0x1e, + 0x85, 0x44, 0x0a, 0x47, 0x58, 0x7c, 0x6d, 0x83, 0x7d, 0x42, 0x0f, 0xa8, 0xcb, 0x08, 0x4f, 0x74, + 0xce, 0xcc, 0x04, 0xda, 0x22, 0x1c, 0x93, 0x01, 0x24, 0xd9, 0x68, 0x4d, 0x58, 0x4e, 0xee, 0xce, + 0x36, 0x75, 0x1d, 0x87, 0x50, 0x19, 0xd9, 0x07, 0x70, 0x82, 0x25, 0x92, 0x46, 0x8e, 0xc3, 0x07, + 0x0f, 0x83, 0xd3, 0xbc, 0xbe, 0xc9, 0x21, 0x5b, 0x1e, 0xf6, 0xcd, 0x25, 0xa1, 0x96, 0x89, 0xb4, + 0x93, 0x92, 0xa4, 0x52, 0x1f, 0xc2, 0xf9, 0x16, 0x2c, 0xdf, 0x22, 0x1e, 0x19, 0x70, 0x7e, 0x05, + 0x40, 0x3a, 0x1f, 0x5a, 0x95, 0xfc, 0xd4, 0x12, 0xe0, 0x0d, 0x3b, 0x76, 0xd5, 0x67, 0x51, 0xb8, + 0xfa, 0x5c, 0x81, 0x45, 0x59, 0xc8, 0x2d, 0x1a, 0xd8, 0x1d, 0x8b, 0x50, 0xf4, 0x26, 0x94, 0x63, + 0x23, 0xac, 0x3b, 0x96, 0x9b, 0xb9, 0x04, 0xbb, 0x61, 0xa3, 0x37, 0x60, 0x36, 0xe8, 0xb0, 0xb0, + 0xc3, 0xa2, 0x21, 0x73, 0xfe, 0x43, 0x4c, 0x5d, 0xdc, 0xf4, 0xc8, 0x3d, 0x1c, 0x9a, 0x12, 0xaa, + 0x3d, 0x86, 0x93, 0x26, 0x71, 0xdc, 0x88, 0x11, 0x2a, 0x23, 0x90, 0x09, 0xaf, 0xc7, 0xc3, 0x36, + 0x11, 0xc9, 0x9e, 0x3a, 0x37, 0xa2, 0xa7, 0x52, 0xf5, 0x4c, 0x4b, 0x7b, 0x9e, 0xe5, 0x77, 0x33, + 0xf0, 0xa3, 0x4e, 0xfb, 0x08, 0xf9, 0x5d, 0x86, 0x19, 0xd7, 0xcf, 0xa5, 0x77, 0xaa, 0x4f, 0x69, + 0x0b, 0x53, 0xdc, 0x26, 0x8c, 0xd0, 0x38, 0x3f, 0x01, 0xcd, 0xa7, 0x27, 0x03, 0xc8, 0xa5, 0x67, + 0x09, 0xd1, 0x38, 0xe9, 0xa5, 0xea, 0x99, 0x96, 0x86, 0x60, 0x51, 0x5a, 0x4f, 0xcf, 0xf4, 0xe7, + 0x49, 0x58, 0xba, 0x19, 0xbf, 0xd2, 0x6e, 0xc7, 0xaf, 0x34, 0xe9, 0xcc, 0x01, 0xf5, 0x40, 0x50, + 0x5c, 0xc6, 0xaa, 0x0d, 0xfe, 0x90, 0x13, 0x35, 0xb8, 0x94, 0xf9, 0xe6, 0x62, 0x3d, 0x33, 0x32, + 0x40, 0x8e, 0x77, 0x26, 0xcc, 0x95, 0x83, 0x7e, 0x21, 0x87, 0xa2, 0x4f, 0x60, 0xb9, 0x97, 0xba, + 0x85, 0x93, 0xa4, 0x66, 0x17, 0x86, 0x3b, 0xe9, 0xe1, 0xf2, 0x3b, 0x13, 0x26, 0xea, 0xe1, 0xf0, + 0xd4, 0xb8, 0x1f, 0xd8, 0x64, 0xc0, 0x78, 0xe9, 0x30, 0xe3, 0xf7, 0x03, 0x9b, 0xf4, 0x18, 0xf7, + 0xf3, 0x02, 0x0e, 0xb9, 0x31, 0x0b, 0xd3, 0x5c, 0x4d, 0x5b, 0x06, 0x94, 0x2f, 0x60, 0x52, 0xd7, + 0xb5, 0x9f, 0xe6, 0xb3, 0x5e, 0x4a, 0x8a, 0x4e, 0xbb, 0xc8, 0x81, 0x63, 0xbd, 0x24, 0x8b, 0xea, + 0xe3, 0x3e, 0xe0, 0xaa, 0xaf, 0x8c, 0x81, 0x14, 0x67, 0x3a, 0x81, 0x7e, 0x99, 0x82, 0xf9, 0x1c, + 0x2f, 0xa2, 0xff, 0x17, 0x28, 0x0f, 0x72, 0x73, 0xf5, 0xfc, 0x61, 0x30, 0xe1, 0xe0, 0xcf, 0xd2, + 0x8b, 0xdf, 0x7e, 0xff, 0x66, 0xf2, 0x8f, 0x12, 0x42, 0x46, 0xfc, 0x82, 0x30, 0xf6, 0x5f, 0xcf, + 0x7e, 0x11, 0xed, 0xfc, 0xa0, 0xa0, 0xef, 0x95, 0x01, 0xb9, 0xe1, 0xda, 0xc6, 0x53, 0x4e, 0xe7, + 0x7a, 0xfe, 0x67, 0x45, 0x9e, 0xa6, 0x74, 0xc1, 0xa7, 0xcf, 0x0e, 0x05, 0x26, 0xfc, 0x7a, 0x38, + 0xce, 0xc7, 0x6d, 0x52, 0x88, 0x12, 0x2f, 0xf1, 0x67, 0x3b, 0x5f, 0x2a, 0xe8, 0x8b, 0x7f, 0x53, + 0xb0, 0x3b, 0x5f, 0x2b, 0xe8, 0x65, 0x41, 0x40, 0x0c, 0x3b, 0x03, 0x06, 0x18, 0x76, 0xc6, 0x0c, + 0x69, 0x00, 0x39, 0x2c, 0xa6, 0x01, 0x20, 0x0f, 0x0a, 0xbd, 0x98, 0x84, 0xe3, 0x7d, 0x5c, 0x8e, + 0x8a, 0x1a, 0xb2, 0xf8, 0x39, 0x52, 0xbd, 0x38, 0x0e, 0x54, 0xf4, 0xd6, 0xb7, 0x0a, 0xef, 0xad, + 0xaf, 0x14, 0xf4, 0x20, 0xad, 0x02, 0x0f, 0xd2, 0x78, 0x3a, 0x24, 0xd7, 0xe2, 0xc4, 0x0a, 0x4a, + 0x7b, 0x1d, 0xbd, 0x7d, 0x04, 0x93, 0xc8, 0x86, 0x4a, 0x0f, 0x05, 0xa3, 0x0b, 0x43, 0xaf, 0x64, + 0x2f, 0x17, 0x57, 0xeb, 0x87, 0x03, 0xd3, 0xab, 0x6b, 0x43, 0xa5, 0x87, 0x7d, 0x0b, 0xbd, 0x14, + 0x31, 0x7e, 0xa1, 0x97, 0x62, 0x22, 0x9f, 0x40, 0x0f, 0x60, 0x26, 0x79, 0xc4, 0xa0, 0x5a, 0x11, + 0x89, 0xe4, 0x1f, 0x58, 0xd5, 0xb3, 0x23, 0x10, 0xa9, 0x41, 0x92, 0x71, 0x4b, 0xfa, 0x34, 0x28, + 0x3a, 0xf6, 0x21, 0xec, 0x5d, 0x3d, 0x37, 0x02, 0x5b, 0xec, 0x26, 0x65, 0xe8, 0x51, 0x6e, 0xfa, + 0x58, 0x74, 0x4c, 0x37, 0x37, 0xde, 0xdb, 0x79, 0xc7, 0x71, 0xd9, 0x6e, 0xa7, 0xa9, 0x5b, 0x41, + 0xdb, 0xe0, 0x2a, 0x01, 0x75, 0x92, 0x0f, 0x23, 0xfd, 0x8f, 0xc3, 0x21, 0xbe, 0x11, 0x36, 0x5f, + 0x73, 0x02, 0x63, 0xe0, 0x0f, 0xa2, 0xe6, 0x0c, 0xff, 0x41, 0x76, 0xf9, 0xaf, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xa9, 0x47, 0x45, 0x10, 0x3c, 0x12, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1108,6 +1273,7 @@ const _ = grpc.SupportPackageIsVersion4 type ArtifactRegistryClient interface { CreateArtifact(ctx context.Context, in *CreateArtifactRequest, opts ...grpc.CallOption) (*CreateArtifactResponse, error) GetArtifact(ctx context.Context, in *GetArtifactRequest, opts ...grpc.CallOption) (*GetArtifactResponse, error) + SearchArtifacts(ctx context.Context, in *SearchArtifactsRequest, opts ...grpc.CallOption) (*SearchArtifactsResponse, error) CreateTrigger(ctx context.Context, in *CreateTriggerRequest, opts ...grpc.CallOption) (*CreateTriggerResponse, error) DeleteTrigger(ctx context.Context, in *DeleteTriggerRequest, opts ...grpc.CallOption) (*DeleteTriggerResponse, error) AddTag(ctx context.Context, in *AddTagRequest, opts ...grpc.CallOption) (*AddTagResponse, error) @@ -1141,6 +1307,15 @@ func (c *artifactRegistryClient) GetArtifact(ctx context.Context, in *GetArtifac return out, nil } +func (c *artifactRegistryClient) SearchArtifacts(ctx context.Context, in *SearchArtifactsRequest, opts ...grpc.CallOption) (*SearchArtifactsResponse, error) { + out := new(SearchArtifactsResponse) + err := c.cc.Invoke(ctx, "/flyteidl.artifact.ArtifactRegistry/SearchArtifacts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *artifactRegistryClient) CreateTrigger(ctx context.Context, in *CreateTriggerRequest, opts ...grpc.CallOption) (*CreateTriggerResponse, error) { out := new(CreateTriggerResponse) err := c.cc.Invoke(ctx, "/flyteidl.artifact.ArtifactRegistry/CreateTrigger", in, out, opts...) @@ -1190,6 +1365,7 @@ func (c *artifactRegistryClient) RegisterConsumer(ctx context.Context, in *Regis type ArtifactRegistryServer interface { CreateArtifact(context.Context, *CreateArtifactRequest) (*CreateArtifactResponse, error) GetArtifact(context.Context, *GetArtifactRequest) (*GetArtifactResponse, error) + SearchArtifacts(context.Context, *SearchArtifactsRequest) (*SearchArtifactsResponse, error) CreateTrigger(context.Context, *CreateTriggerRequest) (*CreateTriggerResponse, error) DeleteTrigger(context.Context, *DeleteTriggerRequest) (*DeleteTriggerResponse, error) AddTag(context.Context, *AddTagRequest) (*AddTagResponse, error) @@ -1207,6 +1383,9 @@ func (*UnimplementedArtifactRegistryServer) CreateArtifact(ctx context.Context, func (*UnimplementedArtifactRegistryServer) GetArtifact(ctx context.Context, req *GetArtifactRequest) (*GetArtifactResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetArtifact not implemented") } +func (*UnimplementedArtifactRegistryServer) SearchArtifacts(ctx context.Context, req *SearchArtifactsRequest) (*SearchArtifactsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchArtifacts not implemented") +} func (*UnimplementedArtifactRegistryServer) CreateTrigger(ctx context.Context, req *CreateTriggerRequest) (*CreateTriggerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateTrigger not implemented") } @@ -1263,6 +1442,24 @@ func _ArtifactRegistry_GetArtifact_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _ArtifactRegistry_SearchArtifacts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchArtifactsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtifactRegistryServer).SearchArtifacts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/flyteidl.artifact.ArtifactRegistry/SearchArtifacts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtifactRegistryServer).SearchArtifacts(ctx, req.(*SearchArtifactsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ArtifactRegistry_CreateTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateTriggerRequest) if err := dec(in); err != nil { @@ -1365,6 +1562,10 @@ var _ArtifactRegistry_serviceDesc = grpc.ServiceDesc{ MethodName: "GetArtifact", Handler: _ArtifactRegistry_GetArtifact_Handler, }, + { + MethodName: "SearchArtifacts", + Handler: _ArtifactRegistry_SearchArtifacts_Handler, + }, { MethodName: "CreateTrigger", Handler: _ArtifactRegistry_CreateTrigger_Handler, diff --git a/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.pb.gw.go b/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.pb.gw.go new file mode 100644 index 0000000000..8c5f610e15 --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.pb.gw.go @@ -0,0 +1,538 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: flyteidl/artifact/artifacts.proto + +/* +Package artifact is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package artifact + +import ( + "context" + "io" + "net/http" + + "github.com/golang/protobuf/proto" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/grpc-ecosystem/grpc-gateway/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/status" +) + +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray + +var ( + filter_ArtifactRegistry_GetArtifact_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_ArtifactRegistry_GetArtifact_0(ctx context.Context, marshaler runtime.Marshaler, client ArtifactRegistryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetArtifactRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ArtifactRegistry_GetArtifact_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetArtifact(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_ArtifactRegistry_GetArtifact_1 = &utilities.DoubleArray{Encoding: map[string]int{"query": 0, "artifact_id": 1, "artifact_key": 2, "project": 3, "domain": 4, "name": 5, "version": 6}, Base: []int{1, 13, 1, 1, 1, 4, 3, 2, 0, 0, 9, 7, 6, 0, 9, 9, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 7, 5, 8, 2, 11, 12, 13, 2, 15, 16}} +) + +func request_ArtifactRegistry_GetArtifact_1(ctx context.Context, marshaler runtime.Marshaler, client ArtifactRegistryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetArtifactRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["query.artifact_id.artifact_key.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "query.artifact_id.artifact_key.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "query.artifact_id.artifact_key.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "query.artifact_id.artifact_key.project", err) + } + + val, ok = pathParams["query.artifact_id.artifact_key.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "query.artifact_id.artifact_key.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "query.artifact_id.artifact_key.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "query.artifact_id.artifact_key.domain", err) + } + + val, ok = pathParams["query.artifact_id.artifact_key.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "query.artifact_id.artifact_key.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "query.artifact_id.artifact_key.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "query.artifact_id.artifact_key.name", err) + } + + val, ok = pathParams["query.artifact_id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "query.artifact_id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "query.artifact_id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "query.artifact_id.version", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ArtifactRegistry_GetArtifact_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetArtifact(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_ArtifactRegistry_GetArtifact_2 = &utilities.DoubleArray{Encoding: map[string]int{"query": 0, "artifact_id": 1, "artifact_key": 2, "project": 3, "domain": 4, "name": 5}, Base: []int{1, 9, 1, 1, 1, 4, 4, 0, 3, 0, 9, 7, 7, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 5, 7, 9, 2, 11, 12, 13}} +) + +func request_ArtifactRegistry_GetArtifact_2(ctx context.Context, marshaler runtime.Marshaler, client ArtifactRegistryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetArtifactRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["query.artifact_id.artifact_key.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "query.artifact_id.artifact_key.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "query.artifact_id.artifact_key.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "query.artifact_id.artifact_key.project", err) + } + + val, ok = pathParams["query.artifact_id.artifact_key.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "query.artifact_id.artifact_key.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "query.artifact_id.artifact_key.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "query.artifact_id.artifact_key.domain", err) + } + + val, ok = pathParams["query.artifact_id.artifact_key.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "query.artifact_id.artifact_key.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "query.artifact_id.artifact_key.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "query.artifact_id.artifact_key.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ArtifactRegistry_GetArtifact_2); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetArtifact(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_ArtifactRegistry_GetArtifact_3 = &utilities.DoubleArray{Encoding: map[string]int{"query": 0, "artifact_tag": 1, "artifact_key": 2, "project": 3, "domain": 4, "name": 5}, Base: []int{1, 9, 1, 1, 1, 4, 4, 0, 3, 0, 9, 7, 7, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 5, 7, 9, 2, 11, 12, 13}} +) + +func request_ArtifactRegistry_GetArtifact_3(ctx context.Context, marshaler runtime.Marshaler, client ArtifactRegistryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetArtifactRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["query.artifact_tag.artifact_key.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "query.artifact_tag.artifact_key.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "query.artifact_tag.artifact_key.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "query.artifact_tag.artifact_key.project", err) + } + + val, ok = pathParams["query.artifact_tag.artifact_key.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "query.artifact_tag.artifact_key.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "query.artifact_tag.artifact_key.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "query.artifact_tag.artifact_key.domain", err) + } + + val, ok = pathParams["query.artifact_tag.artifact_key.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "query.artifact_tag.artifact_key.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "query.artifact_tag.artifact_key.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "query.artifact_tag.artifact_key.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ArtifactRegistry_GetArtifact_3); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetArtifact(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_ArtifactRegistry_SearchArtifacts_0 = &utilities.DoubleArray{Encoding: map[string]int{"artifact_key": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} +) + +func request_ArtifactRegistry_SearchArtifacts_0(ctx context.Context, marshaler runtime.Marshaler, client ArtifactRegistryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SearchArtifactsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["artifact_key.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "artifact_key.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "artifact_key.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "artifact_key.project", err) + } + + val, ok = pathParams["artifact_key.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "artifact_key.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "artifact_key.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "artifact_key.domain", err) + } + + val, ok = pathParams["artifact_key.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "artifact_key.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "artifact_key.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "artifact_key.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ArtifactRegistry_SearchArtifacts_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SearchArtifacts(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_ArtifactRegistry_SearchArtifacts_1 = &utilities.DoubleArray{Encoding: map[string]int{"artifact_key": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}} +) + +func request_ArtifactRegistry_SearchArtifacts_1(ctx context.Context, marshaler runtime.Marshaler, client ArtifactRegistryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SearchArtifactsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["artifact_key.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "artifact_key.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "artifact_key.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "artifact_key.project", err) + } + + val, ok = pathParams["artifact_key.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "artifact_key.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "artifact_key.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "artifact_key.domain", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ArtifactRegistry_SearchArtifacts_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SearchArtifacts(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +// RegisterArtifactRegistryHandlerFromEndpoint is same as RegisterArtifactRegistryHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterArtifactRegistryHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterArtifactRegistryHandler(ctx, mux, conn) +} + +// RegisterArtifactRegistryHandler registers the http handlers for service ArtifactRegistry to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterArtifactRegistryHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterArtifactRegistryHandlerClient(ctx, mux, NewArtifactRegistryClient(conn)) +} + +// RegisterArtifactRegistryHandlerClient registers the http handlers for service ArtifactRegistry +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "ArtifactRegistryClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "ArtifactRegistryClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "ArtifactRegistryClient" to call the correct interceptors. +func RegisterArtifactRegistryHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ArtifactRegistryClient) error { + + mux.Handle("GET", pattern_ArtifactRegistry_GetArtifact_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ArtifactRegistry_GetArtifact_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ArtifactRegistry_GetArtifact_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ArtifactRegistry_GetArtifact_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ArtifactRegistry_GetArtifact_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ArtifactRegistry_GetArtifact_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ArtifactRegistry_GetArtifact_2, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ArtifactRegistry_GetArtifact_2(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ArtifactRegistry_GetArtifact_2(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ArtifactRegistry_GetArtifact_3, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ArtifactRegistry_GetArtifact_3(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ArtifactRegistry_GetArtifact_3(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ArtifactRegistry_SearchArtifacts_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ArtifactRegistry_SearchArtifacts_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ArtifactRegistry_SearchArtifacts_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ArtifactRegistry_SearchArtifacts_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ArtifactRegistry_SearchArtifacts_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ArtifactRegistry_SearchArtifacts_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_ArtifactRegistry_GetArtifact_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"data", "v1", "artifacts"}, "")) + + pattern_ArtifactRegistry_GetArtifact_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"data", "v1", "artifact", "id", "query.artifact_id.artifact_key.project", "query.artifact_id.artifact_key.domain", "query.artifact_id.artifact_key.name", "query.artifact_id.version"}, "")) + + pattern_ArtifactRegistry_GetArtifact_2 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"data", "v1", "artifact", "id", "query.artifact_id.artifact_key.project", "query.artifact_id.artifact_key.domain", "query.artifact_id.artifact_key.name"}, "")) + + pattern_ArtifactRegistry_GetArtifact_3 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"data", "v1", "artifact", "tag", "query.artifact_tag.artifact_key.project", "query.artifact_tag.artifact_key.domain", "query.artifact_tag.artifact_key.name"}, "")) + + pattern_ArtifactRegistry_SearchArtifacts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"data", "v1", "query", "artifact_key.project", "artifact_key.domain", "artifact_key.name"}, "")) + + pattern_ArtifactRegistry_SearchArtifacts_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"data", "v1", "query", "artifact_key.project", "artifact_key.domain"}, "")) +) + +var ( + forward_ArtifactRegistry_GetArtifact_0 = runtime.ForwardResponseMessage + + forward_ArtifactRegistry_GetArtifact_1 = runtime.ForwardResponseMessage + + forward_ArtifactRegistry_GetArtifact_2 = runtime.ForwardResponseMessage + + forward_ArtifactRegistry_GetArtifact_3 = runtime.ForwardResponseMessage + + forward_ArtifactRegistry_SearchArtifacts_0 = runtime.ForwardResponseMessage + + forward_ArtifactRegistry_SearchArtifacts_1 = runtime.ForwardResponseMessage +) diff --git a/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.pb.validate.go b/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.pb.validate.go index 1c7b6d40b3..1304d0c192 100644 --- a/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.pb.validate.go +++ b/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.pb.validate.go @@ -265,8 +265,6 @@ func (m *ArtifactSpec) Validate() error { // no validation rules for ShortDescription - // no validation rules for LongDescription - if v, ok := interface{}(m.GetUserMetadata()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { return ArtifactSpecValidationError{ @@ -722,17 +720,17 @@ var _ interface { ErrorName() string } = ListArtifactNamesResponseValidationError{} -// Validate checks the field values on ListArtifactsRequest with the rules +// Validate checks the field values on SearchArtifactsRequest with the rules // defined in the proto definition for this message. If any rules are // violated, an error is returned. -func (m *ListArtifactsRequest) Validate() error { +func (m *SearchArtifactsRequest) Validate() error { if m == nil { return nil } if v, ok := interface{}(m.GetArtifactKey()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ListArtifactsRequestValidationError{ + return SearchArtifactsRequestValidationError{ field: "ArtifactKey", reason: "embedded message failed validation", cause: err, @@ -740,12 +738,18 @@ func (m *ListArtifactsRequest) Validate() error { } } + // no validation rules for Filters + + // no validation rules for Token + + // no validation rules for Limit + return nil } -// ListArtifactsRequestValidationError is the validation error returned by -// ListArtifactsRequest.Validate if the designated constraints aren't met. -type ListArtifactsRequestValidationError struct { +// SearchArtifactsRequestValidationError is the validation error returned by +// SearchArtifactsRequest.Validate if the designated constraints aren't met. +type SearchArtifactsRequestValidationError struct { field string reason string cause error @@ -753,24 +757,24 @@ type ListArtifactsRequestValidationError struct { } // Field function returns field value. -func (e ListArtifactsRequestValidationError) Field() string { return e.field } +func (e SearchArtifactsRequestValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ListArtifactsRequestValidationError) Reason() string { return e.reason } +func (e SearchArtifactsRequestValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ListArtifactsRequestValidationError) Cause() error { return e.cause } +func (e SearchArtifactsRequestValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ListArtifactsRequestValidationError) Key() bool { return e.key } +func (e SearchArtifactsRequestValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ListArtifactsRequestValidationError) ErrorName() string { - return "ListArtifactsRequestValidationError" +func (e SearchArtifactsRequestValidationError) ErrorName() string { + return "SearchArtifactsRequestValidationError" } // Error satisfies the builtin error interface -func (e ListArtifactsRequestValidationError) Error() string { +func (e SearchArtifactsRequestValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -782,14 +786,14 @@ func (e ListArtifactsRequestValidationError) Error() string { } return fmt.Sprintf( - "invalid %sListArtifactsRequest.%s: %s%s", + "invalid %sSearchArtifactsRequest.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ListArtifactsRequestValidationError{} +var _ error = SearchArtifactsRequestValidationError{} var _ interface { Field() string @@ -797,12 +801,12 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ListArtifactsRequestValidationError{} +} = SearchArtifactsRequestValidationError{} -// Validate checks the field values on ListArtifactsResponse with the rules +// Validate checks the field values on SearchArtifactsResponse with the rules // defined in the proto definition for this message. If any rules are // violated, an error is returned. -func (m *ListArtifactsResponse) Validate() error { +func (m *SearchArtifactsResponse) Validate() error { if m == nil { return nil } @@ -812,7 +816,7 @@ func (m *ListArtifactsResponse) Validate() error { if v, ok := interface{}(item).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ListArtifactsResponseValidationError{ + return SearchArtifactsResponseValidationError{ field: fmt.Sprintf("Artifacts[%v]", idx), reason: "embedded message failed validation", cause: err, @@ -825,9 +829,9 @@ func (m *ListArtifactsResponse) Validate() error { return nil } -// ListArtifactsResponseValidationError is the validation error returned by -// ListArtifactsResponse.Validate if the designated constraints aren't met. -type ListArtifactsResponseValidationError struct { +// SearchArtifactsResponseValidationError is the validation error returned by +// SearchArtifactsResponse.Validate if the designated constraints aren't met. +type SearchArtifactsResponseValidationError struct { field string reason string cause error @@ -835,24 +839,24 @@ type ListArtifactsResponseValidationError struct { } // Field function returns field value. -func (e ListArtifactsResponseValidationError) Field() string { return e.field } +func (e SearchArtifactsResponseValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ListArtifactsResponseValidationError) Reason() string { return e.reason } +func (e SearchArtifactsResponseValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ListArtifactsResponseValidationError) Cause() error { return e.cause } +func (e SearchArtifactsResponseValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ListArtifactsResponseValidationError) Key() bool { return e.key } +func (e SearchArtifactsResponseValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ListArtifactsResponseValidationError) ErrorName() string { - return "ListArtifactsResponseValidationError" +func (e SearchArtifactsResponseValidationError) ErrorName() string { + return "SearchArtifactsResponseValidationError" } // Error satisfies the builtin error interface -func (e ListArtifactsResponseValidationError) Error() string { +func (e SearchArtifactsResponseValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -864,14 +868,14 @@ func (e ListArtifactsResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sListArtifactsResponse.%s: %s%s", + "invalid %sSearchArtifactsResponse.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ListArtifactsResponseValidationError{} +var _ error = SearchArtifactsResponseValidationError{} var _ interface { Field() string @@ -879,7 +883,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ListArtifactsResponseValidationError{} +} = SearchArtifactsResponseValidationError{} // Validate checks the field values on AddTagRequest with the rules defined in // the proto definition for this message. If any rules are violated, an error @@ -1711,3 +1715,177 @@ var _ interface { Cause() error ErrorName() string } = RegisterResponseValidationError{} + +// Validate checks the field values on CloudEventRequest with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *CloudEventRequest) Validate() error { + if m == nil { + return nil + } + + switch m.Event.(type) { + + case *CloudEventRequest_WorkflowExecutionEvent: + + if v, ok := interface{}(m.GetWorkflowExecutionEvent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CloudEventRequestValidationError{ + field: "WorkflowExecutionEvent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *CloudEventRequest_TaskExecutionEvent: + + if v, ok := interface{}(m.GetTaskExecutionEvent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CloudEventRequestValidationError{ + field: "TaskExecutionEvent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *CloudEventRequest_NodeExecutionEvent: + + if v, ok := interface{}(m.GetNodeExecutionEvent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CloudEventRequestValidationError{ + field: "NodeExecutionEvent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// CloudEventRequestValidationError is the validation error returned by +// CloudEventRequest.Validate if the designated constraints aren't met. +type CloudEventRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CloudEventRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CloudEventRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CloudEventRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CloudEventRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CloudEventRequestValidationError) ErrorName() string { + return "CloudEventRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e CloudEventRequestValidationError) 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 %sCloudEventRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CloudEventRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CloudEventRequestValidationError{} + +// Validate checks the field values on CloudEventResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *CloudEventResponse) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// CloudEventResponseValidationError is the validation error returned by +// CloudEventResponse.Validate if the designated constraints aren't met. +type CloudEventResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CloudEventResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CloudEventResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CloudEventResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CloudEventResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CloudEventResponseValidationError) ErrorName() string { + return "CloudEventResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e CloudEventResponseValidationError) 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 %sCloudEventResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CloudEventResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CloudEventResponseValidationError{} diff --git a/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.swagger.json b/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.swagger.json index 99a3cafb52..3ce44da9cd 100644 --- a/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.swagger.json @@ -14,7 +14,575 @@ "produces": [ "application/json" ], - "paths": {}, + "paths": { + "/data/v1/artifact/id/{query.artifact_id.artifact_key.project}/{query.artifact_id.artifact_key.domain}/{query.artifact_id.artifact_key.name}": { + "get": { + "operationId": "GetArtifact3", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/artifactGetArtifactResponse" + } + } + }, + "parameters": [ + { + "name": "query.artifact_id.artifact_key.project", + "description": "Project and domain and suffix needs to be unique across a given artifact store.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "query.artifact_id.artifact_key.domain", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "query.artifact_id.artifact_key.name", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "query.artifact_id.version", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.static_value", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.triggered_binding.index", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "query.artifact_tag.value.triggered_binding.partition_key", + "description": "These two fields are only relevant in the partition value case.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.triggered_binding.transform", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.input_binding.var", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.uri", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.binding.index", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "query.binding.partition_key", + "description": "These two fields are only relevant in the partition value case.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.binding.transform", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "details", + "description": "If false, then long_description is not returned.", + "in": "query", + "required": false, + "type": "boolean", + "format": "boolean" + } + ], + "tags": [ + "ArtifactRegistry" + ] + } + }, + "/data/v1/artifact/id/{query.artifact_id.artifact_key.project}/{query.artifact_id.artifact_key.domain}/{query.artifact_id.artifact_key.name}/{query.artifact_id.version}": { + "get": { + "operationId": "GetArtifact2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/artifactGetArtifactResponse" + } + } + }, + "parameters": [ + { + "name": "query.artifact_id.artifact_key.project", + "description": "Project and domain and suffix needs to be unique across a given artifact store.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "query.artifact_id.artifact_key.domain", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "query.artifact_id.artifact_key.name", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "query.artifact_id.version", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "query.artifact_tag.value.static_value", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.triggered_binding.index", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "query.artifact_tag.value.triggered_binding.partition_key", + "description": "These two fields are only relevant in the partition value case.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.triggered_binding.transform", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.input_binding.var", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.uri", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.binding.index", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "query.binding.partition_key", + "description": "These two fields are only relevant in the partition value case.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.binding.transform", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "details", + "description": "If false, then long_description is not returned.", + "in": "query", + "required": false, + "type": "boolean", + "format": "boolean" + } + ], + "tags": [ + "ArtifactRegistry" + ] + } + }, + "/data/v1/artifact/tag/{query.artifact_tag.artifact_key.project}/{query.artifact_tag.artifact_key.domain}/{query.artifact_tag.artifact_key.name}": { + "get": { + "operationId": "GetArtifact4", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/artifactGetArtifactResponse" + } + } + }, + "parameters": [ + { + "name": "query.artifact_tag.artifact_key.project", + "description": "Project and domain and suffix needs to be unique across a given artifact store.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "query.artifact_tag.artifact_key.domain", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "query.artifact_tag.artifact_key.name", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "query.artifact_id.version", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.static_value", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.triggered_binding.index", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "query.artifact_tag.value.triggered_binding.partition_key", + "description": "These two fields are only relevant in the partition value case.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.triggered_binding.transform", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.input_binding.var", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.uri", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.binding.index", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "query.binding.partition_key", + "description": "These two fields are only relevant in the partition value case.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.binding.transform", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "details", + "description": "If false, then long_description is not returned.", + "in": "query", + "required": false, + "type": "boolean", + "format": "boolean" + } + ], + "tags": [ + "ArtifactRegistry" + ] + } + }, + "/data/v1/artifacts": { + "get": { + "operationId": "GetArtifact", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/artifactGetArtifactResponse" + } + } + }, + "parameters": [ + { + "name": "query.artifact_id.artifact_key.project", + "description": "Project and domain and suffix needs to be unique across a given artifact store.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_id.artifact_key.domain", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_id.artifact_key.name", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_id.version", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.artifact_key.project", + "description": "Project and domain and suffix needs to be unique across a given artifact store.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.artifact_key.domain", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.artifact_key.name", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.static_value", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.triggered_binding.index", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "query.artifact_tag.value.triggered_binding.partition_key", + "description": "These two fields are only relevant in the partition value case.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.triggered_binding.transform", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.artifact_tag.value.input_binding.var", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.uri", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.binding.index", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "query.binding.partition_key", + "description": "These two fields are only relevant in the partition value case.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "query.binding.transform", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "details", + "description": "If false, then long_description is not returned.", + "in": "query", + "required": false, + "type": "boolean", + "format": "boolean" + } + ], + "tags": [ + "ArtifactRegistry" + ] + } + }, + "/data/v1/query/{artifact_key.project}/{artifact_key.domain}": { + "get": { + "operationId": "SearchArtifacts2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/artifactSearchArtifactsResponse" + } + } + }, + "parameters": [ + { + "name": "artifact_key.project", + "description": "Project and domain and suffix needs to be unique across a given artifact store.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "artifact_key.domain", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "artifact_key.name", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "token", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "ArtifactRegistry" + ] + } + }, + "/data/v1/query/{artifact_key.project}/{artifact_key.domain}/{artifact_key.name}": { + "get": { + "operationId": "SearchArtifacts", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/artifactSearchArtifactsResponse" + } + } + }, + "parameters": [ + { + "name": "artifact_key.project", + "description": "Project and domain and suffix needs to be unique across a given artifact store.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "artifact_key.domain", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "artifact_key.name", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "filters", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "token", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "ArtifactRegistry" + ] + } + } + }, "definitions": { "BlobTypeBlobDimensionality": { "type": "string", @@ -24,14 +592,6 @@ ], "default": "SINGLE" }, - "OAuth2TokenRequestType": { - "type": "string", - "enum": [ - "CLIENT_CREDENTIALS" - ], - "default": "CLIENT_CREDENTIALS", - "description": "Type of the token requested.\n\n - CLIENT_CREDENTIALS: CLIENT_CREDENTIALS indicates a 2-legged OAuth token requested using client credentials." - }, "QualityOfServiceTier": { "type": "string", "enum": [ @@ -504,9 +1064,6 @@ "short_description": { "type": "string" }, - "long_description": { - "type": "string" - }, "user_metadata": { "$ref": "#/definitions/protobufAny", "title": "Additional user metadata" @@ -541,6 +1098,17 @@ "artifactRegisterResponse": { "type": "object" }, + "artifactSearchArtifactsResponse": { + "type": "object", + "properties": { + "artifacts": { + "type": "array", + "items": { + "$ref": "#/definitions/artifactArtifact" + } + } + } + }, "coreArtifactBindingData": { "type": "object", "properties": { @@ -911,7 +1479,7 @@ "title": "name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for\nenvironment variables and as a filename for mounting tokens as files.\n+required" }, "type": { - "$ref": "#/definitions/OAuth2TokenRequestType", + "$ref": "#/definitions/coreOAuth2TokenRequestType", "title": "type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.\n+required" }, "client": { @@ -929,6 +1497,14 @@ }, "description": "OAuth2TokenRequest encapsulates information needed to request an OAuth2 token.\nFLYTE_TOKENS_ENV_PREFIX will be passed to indicate the prefix of the environment variables that will be present if\ntokens are passed through environment variables.\nFLYTE_TOKENS_PATH_PREFIX will be passed to indicate the prefix of the path where secrets will be mounted if tokens\nare passed through file mounts." }, + "coreOAuth2TokenRequestType": { + "type": "string", + "enum": [ + "CLIENT_CREDENTIALS" + ], + "default": "CLIENT_CREDENTIALS", + "description": "Type of the token requested.\n\n - CLIENT_CREDENTIALS: CLIENT_CREDENTIALS indicates a 2-legged OAuth token requested using client credentials." + }, "coreParameter": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-go/flyteidl/event/cloudevents.pb.go b/flyteidl/gen/pb-go/flyteidl/event/cloudevents.pb.go index 9c7c10d618..6dd3349d8f 100644 --- a/flyteidl/gen/pb-go/flyteidl/event/cloudevents.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/event/cloudevents.pb.go @@ -31,13 +31,17 @@ type CloudEventWorkflowExecution struct { InputData *core.LiteralMap `protobuf:"bytes,4,opt,name=input_data,json=inputData,proto3" json:"input_data,omitempty"` // The following are ExecutionMetadata fields // We can't have the ExecutionMetadata object directly because of import cycle - ScheduledAt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=scheduled_at,json=scheduledAt,proto3" json:"scheduled_at,omitempty"` - ArtifactIds []*core.ArtifactID `protobuf:"bytes,6,rep,name=artifact_ids,json=artifactIds,proto3" json:"artifact_ids,omitempty"` - ParentNodeExecution *core.NodeExecutionIdentifier `protobuf:"bytes,7,opt,name=parent_node_execution,json=parentNodeExecution,proto3" json:"parent_node_execution,omitempty"` - ReferenceExecution *core.WorkflowExecutionIdentifier `protobuf:"bytes,8,opt,name=reference_execution,json=referenceExecution,proto3" json:"reference_execution,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ScheduledAt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=scheduled_at,json=scheduledAt,proto3" json:"scheduled_at,omitempty"` + ArtifactIds []*core.ArtifactID `protobuf:"bytes,6,rep,name=artifact_ids,json=artifactIds,proto3" json:"artifact_ids,omitempty"` + ParentNodeExecution *core.NodeExecutionIdentifier `protobuf:"bytes,7,opt,name=parent_node_execution,json=parentNodeExecution,proto3" json:"parent_node_execution,omitempty"` + ReferenceExecution *core.WorkflowExecutionIdentifier `protobuf:"bytes,8,opt,name=reference_execution,json=referenceExecution,proto3" json:"reference_execution,omitempty"` + // The ID of the LP that generated the execution that generated the Artifact. + // Here for provenance information. + // Launch plan IDs are easier to get than workflow IDs so we'll use these for now. + LaunchPlanId *core.Identifier `protobuf:"bytes,9,opt,name=launch_plan_id,json=launchPlanId,proto3" json:"launch_plan_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *CloudEventWorkflowExecution) Reset() { *m = CloudEventWorkflowExecution{} } @@ -121,6 +125,13 @@ func (m *CloudEventWorkflowExecution) GetReferenceExecution() *core.WorkflowExec return nil } +func (m *CloudEventWorkflowExecution) GetLaunchPlanId() *core.Identifier { + if m != nil { + return m.LaunchPlanId + } + return nil +} + type CloudEventNodeExecution struct { RawEvent *NodeExecutionEvent `protobuf:"bytes,1,opt,name=raw_event,json=rawEvent,proto3" json:"raw_event,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -169,13 +180,17 @@ type CloudEventTaskExecution struct { InputData *core.LiteralMap `protobuf:"bytes,4,opt,name=input_data,json=inputData,proto3" json:"input_data,omitempty"` // The following are ExecutionMetadata fields // We can't have the ExecutionMetadata object directly because of import cycle - ScheduledAt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=scheduled_at,json=scheduledAt,proto3" json:"scheduled_at,omitempty"` - ArtifactIds []*core.ArtifactID `protobuf:"bytes,6,rep,name=artifact_ids,json=artifactIds,proto3" json:"artifact_ids,omitempty"` - ParentNodeExecution *core.NodeExecutionIdentifier `protobuf:"bytes,7,opt,name=parent_node_execution,json=parentNodeExecution,proto3" json:"parent_node_execution,omitempty"` - ReferenceExecution *core.WorkflowExecutionIdentifier `protobuf:"bytes,8,opt,name=reference_execution,json=referenceExecution,proto3" json:"reference_execution,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ScheduledAt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=scheduled_at,json=scheduledAt,proto3" json:"scheduled_at,omitempty"` + ArtifactIds []*core.ArtifactID `protobuf:"bytes,6,rep,name=artifact_ids,json=artifactIds,proto3" json:"artifact_ids,omitempty"` + ParentNodeExecution *core.NodeExecutionIdentifier `protobuf:"bytes,7,opt,name=parent_node_execution,json=parentNodeExecution,proto3" json:"parent_node_execution,omitempty"` + ReferenceExecution *core.WorkflowExecutionIdentifier `protobuf:"bytes,8,opt,name=reference_execution,json=referenceExecution,proto3" json:"reference_execution,omitempty"` + // The ID of the LP that generated the execution that generated the Artifact. + // Here for provenance information. + // Launch plan IDs are easier to get than workflow IDs so we'll use these for now. + LaunchPlanId *core.Identifier `protobuf:"bytes,9,opt,name=launch_plan_id,json=launchPlanId,proto3" json:"launch_plan_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *CloudEventTaskExecution) Reset() { *m = CloudEventTaskExecution{} } @@ -259,6 +274,13 @@ func (m *CloudEventTaskExecution) GetReferenceExecution() *core.WorkflowExecutio return nil } +func (m *CloudEventTaskExecution) GetLaunchPlanId() *core.Identifier { + if m != nil { + return m.LaunchPlanId + } + return nil +} + // This event is to be sent by Admin after it creates an execution. type CloudEventExecutionStart struct { // The execution created. @@ -345,42 +367,42 @@ func init() { func init() { proto.RegisterFile("flyteidl/event/cloudevents.proto", fileDescriptor_f8af3ecc827e5d5e) } var fileDescriptor_f8af3ecc827e5d5e = []byte{ - // 581 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x95, 0xe1, 0x6b, 0xd3, 0x40, - 0x18, 0xc6, 0xd9, 0xda, 0xcd, 0xf5, 0x52, 0xa7, 0x64, 0x88, 0xb1, 0x3a, 0x2d, 0x15, 0x64, 0x08, - 0x26, 0xa0, 0x5f, 0x64, 0x3a, 0xc6, 0xdc, 0x06, 0x16, 0x9d, 0x48, 0x2c, 0x08, 0xf5, 0x43, 0xb8, - 0xe6, 0xde, 0xa4, 0x47, 0xaf, 0x77, 0xe1, 0x72, 0xb1, 0xf6, 0x4f, 0xf4, 0x9b, 0x1f, 0xfd, 0x73, - 0x46, 0x2f, 0xc9, 0xb5, 0x49, 0x07, 0xa3, 0xdf, 0xf7, 0xa5, 0x5c, 0xef, 0x7d, 0x9e, 0xdf, 0xdd, - 0xbd, 0xef, 0x03, 0x41, 0xdd, 0x88, 0xcd, 0x15, 0x50, 0xc2, 0x3c, 0xf8, 0x0d, 0x5c, 0x79, 0x21, - 0x13, 0x19, 0xd1, 0xcb, 0xd4, 0x4d, 0xa4, 0x50, 0xc2, 0xde, 0x2f, 0x15, 0xae, 0xde, 0xee, 0x74, - 0x6a, 0x0e, 0xfd, 0x9b, 0x6b, 0x3b, 0xcf, 0x4c, 0x2d, 0x14, 0x12, 0x3c, 0x46, 0x15, 0x48, 0xcc, - 0x0a, 0x52, 0xe7, 0xb0, 0x5a, 0xa5, 0x5c, 0x81, 0x8c, 0x70, 0x08, 0x45, 0xf9, 0x45, 0xb5, 0x8c, - 0xa5, 0xa2, 0x11, 0x0e, 0x55, 0x40, 0x49, 0x21, 0x78, 0x5e, 0xf3, 0x13, 0xe0, 0x8a, 0x46, 0x14, - 0x64, 0x09, 0x88, 0x85, 0x88, 0x19, 0x78, 0xfa, 0xdf, 0x28, 0x8b, 0x3c, 0x45, 0xa7, 0x90, 0x2a, - 0x3c, 0x4d, 0x72, 0x41, 0xef, 0x7f, 0x13, 0x3d, 0x3d, 0x5f, 0x3c, 0xf0, 0x72, 0x71, 0xe7, 0x9f, - 0x42, 0x4e, 0x22, 0x26, 0x66, 0x97, 0x7f, 0x20, 0xcc, 0x14, 0x15, 0xdc, 0x3e, 0x47, 0x2d, 0x89, - 0x67, 0x81, 0x7e, 0x91, 0xb3, 0xd5, 0xdd, 0x3a, 0xb2, 0xde, 0xbe, 0x72, 0xab, 0xcf, 0x77, 0xd7, - 0x5c, 0x9a, 0xe5, 0xef, 0x49, 0x3c, 0xd3, 0x2b, 0xfb, 0x18, 0x59, 0x22, 0x53, 0x49, 0xa6, 0x02, - 0x82, 0x15, 0x76, 0xb6, 0x35, 0xe6, 0xc9, 0x12, 0xb3, 0xb8, 0xbb, 0xfb, 0x35, 0xef, 0xcc, 0x15, - 0x4e, 0x7c, 0x94, 0xab, 0x2f, 0xb0, 0xc2, 0xf6, 0x67, 0xf4, 0xb0, 0xf0, 0x9a, 0xe6, 0x38, 0x0d, - 0x0d, 0x38, 0xac, 0x01, 0x06, 0xf3, 0x04, 0x48, 0xbf, 0x14, 0xf9, 0x0f, 0x72, 0x9b, 0xd9, 0xb0, - 0xdf, 0x23, 0x44, 0xb9, 0xb9, 0x44, 0xf3, 0xb6, 0x4b, 0xb4, 0xb4, 0x58, 0xdf, 0xe1, 0x04, 0xb5, - 0xd3, 0x70, 0x0c, 0x24, 0x63, 0x40, 0x02, 0xac, 0x9c, 0x1d, 0xed, 0xed, 0xb8, 0x79, 0x73, 0xdd, - 0xb2, 0xb9, 0xee, 0xa0, 0x6c, 0xae, 0x6f, 0x19, 0xfd, 0x99, 0xb2, 0x3f, 0xa2, 0xf6, 0xca, 0xe4, - 0x52, 0x67, 0xb7, 0xdb, 0xb8, 0xe1, 0xe8, 0xb3, 0x42, 0xd2, 0xbf, 0xf0, 0xad, 0x52, 0xde, 0x27, - 0xa9, 0x3d, 0x44, 0x8f, 0x12, 0x2c, 0x81, 0xab, 0x80, 0x0b, 0x02, 0x01, 0x94, 0x4d, 0x76, 0xee, - 0xd5, 0xa7, 0xa1, 0x31, 0xdf, 0x04, 0x01, 0x33, 0x88, 0xbe, 0xc9, 0x83, 0x7f, 0x90, 0x43, 0x2a, - 0x65, 0xfb, 0x17, 0x3a, 0x90, 0x10, 0x81, 0x04, 0x1e, 0xae, 0x92, 0xf7, 0x34, 0xf9, 0x75, 0x8d, - 0xbc, 0x36, 0xe6, 0x15, 0xba, 0x6d, 0x30, 0xa6, 0xda, 0x1b, 0xa2, 0xc7, 0xcb, 0x64, 0x55, 0xcf, - 0x3d, 0x5d, 0x4f, 0x55, 0xaf, 0x9e, 0xaa, 0x8a, 0xa3, 0x96, 0xa8, 0xde, 0xbf, 0xe6, 0x2a, 0x7c, - 0x80, 0xd3, 0xc9, 0x66, 0xf0, 0x8a, 0xe3, 0x2e, 0xae, 0x77, 0x71, 0xe5, 0xbd, 0xbf, 0xdb, 0xc8, - 0x59, 0x46, 0xca, 0xec, 0xff, 0x50, 0x58, 0x2a, 0xfb, 0x0a, 0xb5, 0xcd, 0x79, 0x01, 0x25, 0x45, - 0xac, 0x36, 0x39, 0xd2, 0x82, 0xe5, 0xa6, 0x7d, 0x8a, 0xf6, 0x19, 0xce, 0x78, 0x38, 0x0e, 0x12, - 0x86, 0x35, 0xf0, 0xe6, 0x90, 0xad, 0xf8, 0xdb, 0xb9, 0xe1, 0x3b, 0xc3, 0x0b, 0xc0, 0x31, 0xb2, - 0x66, 0xc5, 0x61, 0x0b, 0x77, 0xe3, 0x36, 0x37, 0x2a, 0xd5, 0x7d, 0xb2, 0x36, 0xdf, 0xe6, 0x46, - 0xf3, 0x7d, 0x89, 0xee, 0x1b, 0xf7, 0x04, 0xe6, 0xa9, 0xb3, 0xd3, 0x6d, 0x1c, 0xb5, 0x7c, 0x83, - 0xfc, 0x02, 0xf3, 0xf4, 0xd3, 0xc9, 0xf0, 0x43, 0x4c, 0xd5, 0x38, 0x1b, 0xb9, 0xa1, 0x98, 0x7a, - 0x1a, 0x2c, 0x64, 0x9c, 0x2f, 0x3c, 0xf3, 0xc9, 0x8a, 0x81, 0x7b, 0xc9, 0xe8, 0x4d, 0x2c, 0xbc, - 0xea, 0xf7, 0x73, 0xb4, 0xab, 0x23, 0xfa, 0xee, 0x3a, 0x00, 0x00, 0xff, 0xff, 0x92, 0xc9, 0x62, - 0x56, 0x8a, 0x07, 0x00, 0x00, + // 592 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x95, 0xd1, 0x8a, 0xd3, 0x4c, + 0x1c, 0xc5, 0x69, 0xbb, 0xdd, 0x6f, 0x3b, 0xed, 0xb7, 0x4a, 0x16, 0x31, 0x56, 0x57, 0x4b, 0x05, + 0x59, 0x04, 0x13, 0xd0, 0x1b, 0x51, 0x97, 0x65, 0xdd, 0x5d, 0x30, 0xe8, 0x8a, 0xc4, 0x82, 0x50, + 0x2f, 0xc2, 0x34, 0xf3, 0x4f, 0x3a, 0x34, 0x9d, 0x09, 0x93, 0x89, 0xb5, 0x8f, 0xe1, 0xa5, 0x8f, + 0xe4, 0x5b, 0x49, 0x26, 0xc9, 0xb4, 0x49, 0x0b, 0x4b, 0xc1, 0xcb, 0xbd, 0x29, 0xe9, 0xcc, 0x39, + 0xbf, 0x9c, 0xf9, 0xcf, 0x81, 0xa0, 0x41, 0x10, 0x2d, 0x25, 0x50, 0x12, 0xd9, 0xf0, 0x03, 0x98, + 0xb4, 0xfd, 0x88, 0xa7, 0x44, 0x3d, 0x26, 0x56, 0x2c, 0xb8, 0xe4, 0xc6, 0x61, 0xa9, 0xb0, 0xd4, + 0x72, 0xbf, 0x5f, 0x73, 0xa8, 0xdf, 0x5c, 0xdb, 0x7f, 0xa4, 0xf7, 0x7c, 0x2e, 0xc0, 0x8e, 0xa8, + 0x04, 0x81, 0xa3, 0x82, 0xd4, 0x3f, 0xae, 0xee, 0x52, 0x26, 0x41, 0x04, 0xd8, 0x87, 0x62, 0xfb, + 0x49, 0x75, 0x1b, 0x0b, 0x49, 0x03, 0xec, 0x4b, 0x8f, 0x92, 0x42, 0xf0, 0xb8, 0xe6, 0x27, 0xc0, + 0x24, 0x0d, 0x28, 0x88, 0x12, 0x10, 0x72, 0x1e, 0x46, 0x60, 0xab, 0x7f, 0x93, 0x34, 0xb0, 0x25, + 0x9d, 0x43, 0x22, 0xf1, 0x3c, 0xce, 0x05, 0xc3, 0xdf, 0x6d, 0xf4, 0xf0, 0x22, 0x3b, 0xe0, 0x55, + 0x96, 0xf9, 0x1b, 0x17, 0xb3, 0x20, 0xe2, 0x8b, 0xab, 0x9f, 0xe0, 0xa7, 0x92, 0x72, 0x66, 0x5c, + 0xa0, 0x8e, 0xc0, 0x0b, 0x4f, 0x9d, 0xc8, 0x6c, 0x0c, 0x1a, 0x27, 0xdd, 0x97, 0xcf, 0xac, 0xea, + 0xf1, 0xad, 0x0d, 0x97, 0x62, 0xb9, 0x07, 0x02, 0x2f, 0xd4, 0x93, 0xf1, 0x06, 0x75, 0x79, 0x2a, + 0xe3, 0x54, 0x7a, 0x04, 0x4b, 0x6c, 0x36, 0x15, 0xe6, 0xc1, 0x0a, 0x93, 0x65, 0xb7, 0x3e, 0xe5, + 0x93, 0xb9, 0xc6, 0xb1, 0x8b, 0x72, 0xf5, 0x25, 0x96, 0xd8, 0xf8, 0x80, 0xee, 0x16, 0x5e, 0x3d, + 0x1c, 0xb3, 0xa5, 0x00, 0xc7, 0x35, 0xc0, 0x68, 0x19, 0x03, 0x71, 0x4a, 0x91, 0x7b, 0x27, 0xb7, + 0xe9, 0x05, 0xe3, 0x35, 0x42, 0x94, 0xe9, 0x10, 0x7b, 0x37, 0x85, 0xe8, 0x28, 0xb1, 0xca, 0x70, + 0x8a, 0x7a, 0x89, 0x3f, 0x05, 0x92, 0x46, 0x40, 0x3c, 0x2c, 0xcd, 0xb6, 0xf2, 0xf6, 0xad, 0x7c, + 0xb8, 0x56, 0x39, 0x5c, 0x6b, 0x54, 0x0e, 0xd7, 0xed, 0x6a, 0xfd, 0xb9, 0x34, 0xde, 0xa1, 0xde, + 0xda, 0xcd, 0x25, 0xe6, 0xfe, 0xa0, 0xb5, 0xe5, 0xd5, 0xe7, 0x85, 0xc4, 0xb9, 0x74, 0xbb, 0xa5, + 0xdc, 0x21, 0x89, 0x31, 0x46, 0xf7, 0x62, 0x2c, 0x80, 0x49, 0x8f, 0x71, 0x02, 0x1e, 0x94, 0x43, + 0x36, 0xff, 0xab, 0xdf, 0x86, 0xc2, 0x7c, 0xe6, 0x04, 0xf4, 0x45, 0x38, 0xba, 0x0f, 0xee, 0x51, + 0x0e, 0xa9, 0x6c, 0x1b, 0xdf, 0xd1, 0x91, 0x80, 0x00, 0x04, 0x30, 0x7f, 0x9d, 0x7c, 0xa0, 0xc8, + 0xcf, 0x6b, 0xe4, 0x8d, 0x6b, 0x5e, 0xa3, 0x1b, 0x1a, 0xb3, 0x82, 0x9f, 0xa1, 0xc3, 0x08, 0xa7, + 0xcc, 0x9f, 0x7a, 0x71, 0x84, 0x99, 0x47, 0x89, 0xd9, 0xd9, 0x3a, 0xf3, 0x35, 0x4c, 0x2f, 0x37, + 0x7c, 0x89, 0x30, 0x73, 0xc8, 0x70, 0x8c, 0xee, 0xaf, 0xaa, 0x59, 0x0d, 0x7e, 0xb6, 0x59, 0xcb, + 0x61, 0xbd, 0x96, 0x15, 0x47, 0xad, 0x92, 0xc3, 0x5f, 0xed, 0x75, 0xf8, 0x08, 0x27, 0xb3, 0xdd, + 0xe0, 0x15, 0xc7, 0x6d, 0xdf, 0x6f, 0xfb, 0xfe, 0x0f, 0xfa, 0xfe, 0xa7, 0x89, 0xcc, 0x55, 0x27, + 0x35, 0xf8, 0xab, 0xc4, 0x42, 0x1a, 0xd7, 0xa8, 0xa7, 0x03, 0x67, 0xec, 0xc6, 0xce, 0x99, 0xbb, + 0xb0, 0x5a, 0xdc, 0x12, 0xb6, 0xb9, 0x53, 0xd8, 0xac, 0xe3, 0x8b, 0xe2, 0x65, 0x99, 0xbb, 0x75, + 0x93, 0x1b, 0x95, 0x6a, 0x87, 0x6c, 0x14, 0x64, 0x6f, 0xa7, 0x82, 0x3c, 0x45, 0xff, 0x6b, 0xf7, + 0x0c, 0x96, 0x89, 0xd9, 0x1e, 0xb4, 0x4e, 0x3a, 0xae, 0x46, 0x7e, 0x84, 0x65, 0xf2, 0xfe, 0x74, + 0xfc, 0x36, 0xa4, 0x72, 0x9a, 0x4e, 0x2c, 0x9f, 0xcf, 0x6d, 0x05, 0xe6, 0x22, 0xcc, 0x1f, 0x6c, + 0xfd, 0xd1, 0x0c, 0x81, 0xd9, 0xf1, 0xe4, 0x45, 0xc8, 0xed, 0xea, 0x17, 0x7c, 0xb2, 0xaf, 0x3a, + 0xfe, 0xea, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xec, 0xc8, 0xf2, 0x4c, 0x0c, 0x08, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/event/cloudevents.pb.validate.go b/flyteidl/gen/pb-go/flyteidl/event/cloudevents.pb.validate.go index 5440650bb9..977e224c4c 100644 --- a/flyteidl/gen/pb-go/flyteidl/event/cloudevents.pb.validate.go +++ b/flyteidl/gen/pb-go/flyteidl/event/cloudevents.pb.validate.go @@ -129,6 +129,16 @@ func (m *CloudEventWorkflowExecution) Validate() error { } } + if v, ok := interface{}(m.GetLaunchPlanId()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CloudEventWorkflowExecutionValidationError{ + field: "LaunchPlanId", + reason: "embedded message failed validation", + cause: err, + } + } + } + return nil } @@ -359,6 +369,16 @@ func (m *CloudEventTaskExecution) Validate() error { } } + if v, ok := interface{}(m.GetLaunchPlanId()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CloudEventTaskExecutionValidationError{ + field: "LaunchPlanId", + reason: "embedded message failed validation", + cause: err, + } + } + } + return nil } diff --git a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json index 37455d411b..8a66fcc089 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json @@ -240,9 +240,6 @@ "short_description": { "type": "string" }, - "long_description": { - "type": "string" - }, "user_metadata": { "$ref": "#/definitions/protobufAny", "title": "Additional user metadata" diff --git a/flyteidl/gen/pb-java/flyteidl/artifact/Artifacts.java b/flyteidl/gen/pb-java/flyteidl/artifact/Artifacts.java index 127a733077..69786f8396 100644 --- a/flyteidl/gen/pb-java/flyteidl/artifact/Artifacts.java +++ b/flyteidl/gen/pb-java/flyteidl/artifact/Artifacts.java @@ -2648,16 +2648,6 @@ public interface ArtifactSpecOrBuilder extends com.google.protobuf.ByteString getShortDescriptionBytes(); - /** - * string long_description = 9; - */ - java.lang.String getLongDescription(); - /** - * string long_description = 9; - */ - com.google.protobuf.ByteString - getLongDescriptionBytes(); - /** *
      * Additional user metadata
@@ -2708,7 +2698,6 @@ private ArtifactSpec(com.google.protobuf.GeneratedMessageV3.Builder builder)
     private ArtifactSpec() {
       principal_ = "";
       shortDescription_ = "";
-      longDescription_ = "";
       metadataType_ = "";
     }
 
@@ -2800,12 +2789,6 @@ private ArtifactSpec(
               shortDescription_ = s;
               break;
             }
-            case 74: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              longDescription_ = s;
-              break;
-            }
             case 82: {
               com.google.protobuf.Any.Builder subBuilder = null;
               if (userMetadata_ != null) {
@@ -3059,40 +3042,6 @@ public java.lang.String getShortDescription() {
       }
     }
 
-    public static final int LONG_DESCRIPTION_FIELD_NUMBER = 9;
-    private volatile java.lang.Object longDescription_;
-    /**
-     * string long_description = 9;
-     */
-    public java.lang.String getLongDescription() {
-      java.lang.Object ref = longDescription_;
-      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();
-        longDescription_ = s;
-        return s;
-      }
-    }
-    /**
-     * string long_description = 9;
-     */
-    public com.google.protobuf.ByteString
-        getLongDescriptionBytes() {
-      java.lang.Object ref = longDescription_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8(
-                (java.lang.String) ref);
-        longDescription_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-
     public static final int USER_METADATA_FIELD_NUMBER = 10;
     private com.google.protobuf.Any userMetadata_;
     /**
@@ -3192,9 +3141,6 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (!getShortDescriptionBytes().isEmpty()) {
         com.google.protobuf.GeneratedMessageV3.writeString(output, 8, shortDescription_);
       }
-      if (!getLongDescriptionBytes().isEmpty()) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, longDescription_);
-      }
       if (userMetadata_ != null) {
         output.writeMessage(10, getUserMetadata());
       }
@@ -3232,9 +3178,6 @@ public int getSerializedSize() {
       if (!getShortDescriptionBytes().isEmpty()) {
         size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, shortDescription_);
       }
-      if (!getLongDescriptionBytes().isEmpty()) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, longDescription_);
-      }
       if (userMetadata_ != null) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(10, getUserMetadata());
@@ -3281,8 +3224,6 @@ public boolean equals(final java.lang.Object obj) {
           .equals(other.getPrincipal())) return false;
       if (!getShortDescription()
           .equals(other.getShortDescription())) return false;
-      if (!getLongDescription()
-          .equals(other.getLongDescription())) return false;
       if (hasUserMetadata() != other.hasUserMetadata()) return false;
       if (hasUserMetadata()) {
         if (!getUserMetadata()
@@ -3321,8 +3262,6 @@ public int hashCode() {
       hash = (53 * hash) + getPrincipal().hashCode();
       hash = (37 * hash) + SHORT_DESCRIPTION_FIELD_NUMBER;
       hash = (53 * hash) + getShortDescription().hashCode();
-      hash = (37 * hash) + LONG_DESCRIPTION_FIELD_NUMBER;
-      hash = (53 * hash) + getLongDescription().hashCode();
       if (hasUserMetadata()) {
         hash = (37 * hash) + USER_METADATA_FIELD_NUMBER;
         hash = (53 * hash) + getUserMetadata().hashCode();
@@ -3490,8 +3429,6 @@ public Builder clear() {
 
         shortDescription_ = "";
 
-        longDescription_ = "";
-
         if (userMetadataBuilder_ == null) {
           userMetadata_ = null;
         } else {
@@ -3548,7 +3485,6 @@ public flyteidl.artifact.Artifacts.ArtifactSpec buildPartial() {
         }
         result.principal_ = principal_;
         result.shortDescription_ = shortDescription_;
-        result.longDescription_ = longDescription_;
         if (userMetadataBuilder_ == null) {
           result.userMetadata_ = userMetadata_;
         } else {
@@ -3623,10 +3559,6 @@ public Builder mergeFrom(flyteidl.artifact.Artifacts.ArtifactSpec other) {
           shortDescription_ = other.shortDescription_;
           onChanged();
         }
-        if (!other.getLongDescription().isEmpty()) {
-          longDescription_ = other.longDescription_;
-          onChanged();
-        }
         if (other.hasUserMetadata()) {
           mergeUserMetadata(other.getUserMetadata());
         }
@@ -4415,75 +4347,6 @@ public Builder setShortDescriptionBytes(
         return this;
       }
 
-      private java.lang.Object longDescription_ = "";
-      /**
-       * string long_description = 9;
-       */
-      public java.lang.String getLongDescription() {
-        java.lang.Object ref = longDescription_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          longDescription_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       * string long_description = 9;
-       */
-      public com.google.protobuf.ByteString
-          getLongDescriptionBytes() {
-        java.lang.Object ref = longDescription_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          longDescription_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
-      /**
-       * string long_description = 9;
-       */
-      public Builder setLongDescription(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        longDescription_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * string long_description = 9;
-       */
-      public Builder clearLongDescription() {
-        
-        longDescription_ = getDefaultInstance().getLongDescription();
-        onChanged();
-        return this;
-      }
-      /**
-       * string long_description = 9;
-       */
-      public Builder setLongDescriptionBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
-        longDescription_ = value;
-        onChanged();
-        return this;
-      }
-
       private com.google.protobuf.Any userMetadata_;
       private com.google.protobuf.SingleFieldBuilderV3<
           com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> userMetadataBuilder_;
@@ -8126,8 +7989,8 @@ public flyteidl.artifact.Artifacts.ListArtifactNamesResponse getDefaultInstanceF
 
   }
 
-  public interface ListArtifactsRequestOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.artifact.ListArtifactsRequest)
+  public interface SearchArtifactsRequestOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:flyteidl.artifact.SearchArtifactsRequest)
       com.google.protobuf.MessageOrBuilder {
 
     /**
@@ -8142,20 +8005,47 @@ public interface ListArtifactsRequestOrBuilder extends
      * .flyteidl.core.ArtifactKey artifact_key = 1;
      */
     flyteidl.core.ArtifactId.ArtifactKeyOrBuilder getArtifactKeyOrBuilder();
+
+    /**
+     * string filters = 2;
+     */
+    java.lang.String getFilters();
+    /**
+     * string filters = 2;
+     */
+    com.google.protobuf.ByteString
+        getFiltersBytes();
+
+    /**
+     * string token = 3;
+     */
+    java.lang.String getToken();
+    /**
+     * string token = 3;
+     */
+    com.google.protobuf.ByteString
+        getTokenBytes();
+
+    /**
+     * int32 limit = 4;
+     */
+    int getLimit();
   }
   /**
-   * Protobuf type {@code flyteidl.artifact.ListArtifactsRequest}
+   * Protobuf type {@code flyteidl.artifact.SearchArtifactsRequest}
    */
-  public  static final class ListArtifactsRequest extends
+  public  static final class SearchArtifactsRequest extends
       com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.artifact.ListArtifactsRequest)
-      ListArtifactsRequestOrBuilder {
+      // @@protoc_insertion_point(message_implements:flyteidl.artifact.SearchArtifactsRequest)
+      SearchArtifactsRequestOrBuilder {
   private static final long serialVersionUID = 0L;
-    // Use ListArtifactsRequest.newBuilder() to construct.
-    private ListArtifactsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
+    // Use SearchArtifactsRequest.newBuilder() to construct.
+    private SearchArtifactsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
       super(builder);
     }
-    private ListArtifactsRequest() {
+    private SearchArtifactsRequest() {
+      filters_ = "";
+      token_ = "";
     }
 
     @java.lang.Override
@@ -8163,7 +8053,7 @@ private ListArtifactsRequest() {
     getUnknownFields() {
       return this.unknownFields;
     }
-    private ListArtifactsRequest(
+    private SearchArtifactsRequest(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
@@ -8195,6 +8085,23 @@ private ListArtifactsRequest(
 
               break;
             }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              filters_ = s;
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              token_ = s;
+              break;
+            }
+            case 32: {
+
+              limit_ = input.readInt32();
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -8216,15 +8123,15 @@ private ListArtifactsRequest(
     }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_ListArtifactsRequest_descriptor;
+      return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_SearchArtifactsRequest_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_ListArtifactsRequest_fieldAccessorTable
+      return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_SearchArtifactsRequest_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              flyteidl.artifact.Artifacts.ListArtifactsRequest.class, flyteidl.artifact.Artifacts.ListArtifactsRequest.Builder.class);
+              flyteidl.artifact.Artifacts.SearchArtifactsRequest.class, flyteidl.artifact.Artifacts.SearchArtifactsRequest.Builder.class);
     }
 
     public static final int ARTIFACT_KEY_FIELD_NUMBER = 1;
@@ -8248,6 +8155,83 @@ public flyteidl.core.ArtifactId.ArtifactKeyOrBuilder getArtifactKeyOrBuilder() {
       return getArtifactKey();
     }
 
+    public static final int FILTERS_FIELD_NUMBER = 2;
+    private volatile java.lang.Object filters_;
+    /**
+     * string filters = 2;
+     */
+    public java.lang.String getFilters() {
+      java.lang.Object ref = filters_;
+      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();
+        filters_ = s;
+        return s;
+      }
+    }
+    /**
+     * string filters = 2;
+     */
+    public com.google.protobuf.ByteString
+        getFiltersBytes() {
+      java.lang.Object ref = filters_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        filters_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TOKEN_FIELD_NUMBER = 3;
+    private volatile java.lang.Object token_;
+    /**
+     * string token = 3;
+     */
+    public java.lang.String getToken() {
+      java.lang.Object ref = token_;
+      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();
+        token_ = s;
+        return s;
+      }
+    }
+    /**
+     * string token = 3;
+     */
+    public com.google.protobuf.ByteString
+        getTokenBytes() {
+      java.lang.Object ref = token_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        token_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int LIMIT_FIELD_NUMBER = 4;
+    private int limit_;
+    /**
+     * int32 limit = 4;
+     */
+    public int getLimit() {
+      return limit_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -8265,6 +8249,15 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (artifactKey_ != null) {
         output.writeMessage(1, getArtifactKey());
       }
+      if (!getFiltersBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, filters_);
+      }
+      if (!getTokenBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, token_);
+      }
+      if (limit_ != 0) {
+        output.writeInt32(4, limit_);
+      }
       unknownFields.writeTo(output);
     }
 
@@ -8278,6 +8271,16 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, getArtifactKey());
       }
+      if (!getFiltersBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, filters_);
+      }
+      if (!getTokenBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, token_);
+      }
+      if (limit_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, limit_);
+      }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
@@ -8288,16 +8291,22 @@ public boolean equals(final java.lang.Object obj) {
       if (obj == this) {
        return true;
       }
-      if (!(obj instanceof flyteidl.artifact.Artifacts.ListArtifactsRequest)) {
+      if (!(obj instanceof flyteidl.artifact.Artifacts.SearchArtifactsRequest)) {
         return super.equals(obj);
       }
-      flyteidl.artifact.Artifacts.ListArtifactsRequest other = (flyteidl.artifact.Artifacts.ListArtifactsRequest) obj;
+      flyteidl.artifact.Artifacts.SearchArtifactsRequest other = (flyteidl.artifact.Artifacts.SearchArtifactsRequest) obj;
 
       if (hasArtifactKey() != other.hasArtifactKey()) return false;
       if (hasArtifactKey()) {
         if (!getArtifactKey()
             .equals(other.getArtifactKey())) return false;
       }
+      if (!getFilters()
+          .equals(other.getFilters())) return false;
+      if (!getToken()
+          .equals(other.getToken())) return false;
+      if (getLimit()
+          != other.getLimit()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -8313,74 +8322,80 @@ public int hashCode() {
         hash = (37 * hash) + ARTIFACT_KEY_FIELD_NUMBER;
         hash = (53 * hash) + getArtifactKey().hashCode();
       }
+      hash = (37 * hash) + FILTERS_FIELD_NUMBER;
+      hash = (53 * hash) + getFilters().hashCode();
+      hash = (37 * hash) + TOKEN_FIELD_NUMBER;
+      hash = (53 * hash) + getToken().hashCode();
+      hash = (37 * hash) + LIMIT_FIELD_NUMBER;
+      hash = (53 * hash) + getLimit();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
 
-    public static flyteidl.artifact.Artifacts.ListArtifactsRequest parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest parseFrom(
         java.nio.ByteBuffer data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsRequest parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest parseFrom(
         java.nio.ByteBuffer data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsRequest parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsRequest parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsRequest parseFrom(byte[] data)
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest parseFrom(byte[] data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsRequest parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest parseFrom(
         byte[] data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsRequest parseFrom(java.io.InputStream input)
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsRequest parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest 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.artifact.Artifacts.ListArtifactsRequest parseDelimitedFrom(java.io.InputStream input)
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsRequest parseDelimitedFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest 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.artifact.Artifacts.ListArtifactsRequest parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest parseFrom(
         com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsRequest parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -8393,7 +8408,7 @@ public static flyteidl.artifact.Artifacts.ListArtifactsRequest parseFrom(
     public static Builder newBuilder() {
       return DEFAULT_INSTANCE.toBuilder();
     }
-    public static Builder newBuilder(flyteidl.artifact.Artifacts.ListArtifactsRequest prototype) {
+    public static Builder newBuilder(flyteidl.artifact.Artifacts.SearchArtifactsRequest prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
     @java.lang.Override
@@ -8409,26 +8424,26 @@ protected Builder newBuilderForType(
       return builder;
     }
     /**
-     * Protobuf type {@code flyteidl.artifact.ListArtifactsRequest}
+     * Protobuf type {@code flyteidl.artifact.SearchArtifactsRequest}
      */
     public static final class Builder extends
         com.google.protobuf.GeneratedMessageV3.Builder implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.artifact.ListArtifactsRequest)
-        flyteidl.artifact.Artifacts.ListArtifactsRequestOrBuilder {
+        // @@protoc_insertion_point(builder_implements:flyteidl.artifact.SearchArtifactsRequest)
+        flyteidl.artifact.Artifacts.SearchArtifactsRequestOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_ListArtifactsRequest_descriptor;
+        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_SearchArtifactsRequest_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_ListArtifactsRequest_fieldAccessorTable
+        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_SearchArtifactsRequest_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                flyteidl.artifact.Artifacts.ListArtifactsRequest.class, flyteidl.artifact.Artifacts.ListArtifactsRequest.Builder.class);
+                flyteidl.artifact.Artifacts.SearchArtifactsRequest.class, flyteidl.artifact.Artifacts.SearchArtifactsRequest.Builder.class);
       }
 
-      // Construct using flyteidl.artifact.Artifacts.ListArtifactsRequest.newBuilder()
+      // Construct using flyteidl.artifact.Artifacts.SearchArtifactsRequest.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -8452,23 +8467,29 @@ public Builder clear() {
           artifactKey_ = null;
           artifactKeyBuilder_ = null;
         }
+        filters_ = "";
+
+        token_ = "";
+
+        limit_ = 0;
+
         return this;
       }
 
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_ListArtifactsRequest_descriptor;
+        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_SearchArtifactsRequest_descriptor;
       }
 
       @java.lang.Override
-      public flyteidl.artifact.Artifacts.ListArtifactsRequest getDefaultInstanceForType() {
-        return flyteidl.artifact.Artifacts.ListArtifactsRequest.getDefaultInstance();
+      public flyteidl.artifact.Artifacts.SearchArtifactsRequest getDefaultInstanceForType() {
+        return flyteidl.artifact.Artifacts.SearchArtifactsRequest.getDefaultInstance();
       }
 
       @java.lang.Override
-      public flyteidl.artifact.Artifacts.ListArtifactsRequest build() {
-        flyteidl.artifact.Artifacts.ListArtifactsRequest result = buildPartial();
+      public flyteidl.artifact.Artifacts.SearchArtifactsRequest build() {
+        flyteidl.artifact.Artifacts.SearchArtifactsRequest result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
@@ -8476,13 +8497,16 @@ public flyteidl.artifact.Artifacts.ListArtifactsRequest build() {
       }
 
       @java.lang.Override
-      public flyteidl.artifact.Artifacts.ListArtifactsRequest buildPartial() {
-        flyteidl.artifact.Artifacts.ListArtifactsRequest result = new flyteidl.artifact.Artifacts.ListArtifactsRequest(this);
+      public flyteidl.artifact.Artifacts.SearchArtifactsRequest buildPartial() {
+        flyteidl.artifact.Artifacts.SearchArtifactsRequest result = new flyteidl.artifact.Artifacts.SearchArtifactsRequest(this);
         if (artifactKeyBuilder_ == null) {
           result.artifactKey_ = artifactKey_;
         } else {
           result.artifactKey_ = artifactKeyBuilder_.build();
         }
+        result.filters_ = filters_;
+        result.token_ = token_;
+        result.limit_ = limit_;
         onBuilt();
         return result;
       }
@@ -8521,19 +8545,30 @@ public Builder addRepeatedField(
       }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.artifact.Artifacts.ListArtifactsRequest) {
-          return mergeFrom((flyteidl.artifact.Artifacts.ListArtifactsRequest)other);
+        if (other instanceof flyteidl.artifact.Artifacts.SearchArtifactsRequest) {
+          return mergeFrom((flyteidl.artifact.Artifacts.SearchArtifactsRequest)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(flyteidl.artifact.Artifacts.ListArtifactsRequest other) {
-        if (other == flyteidl.artifact.Artifacts.ListArtifactsRequest.getDefaultInstance()) return this;
+      public Builder mergeFrom(flyteidl.artifact.Artifacts.SearchArtifactsRequest other) {
+        if (other == flyteidl.artifact.Artifacts.SearchArtifactsRequest.getDefaultInstance()) return this;
         if (other.hasArtifactKey()) {
           mergeArtifactKey(other.getArtifactKey());
         }
+        if (!other.getFilters().isEmpty()) {
+          filters_ = other.filters_;
+          onChanged();
+        }
+        if (!other.getToken().isEmpty()) {
+          token_ = other.token_;
+          onChanged();
+        }
+        if (other.getLimit() != 0) {
+          setLimit(other.getLimit());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -8549,11 +8584,11 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        flyteidl.artifact.Artifacts.ListArtifactsRequest parsedMessage = null;
+        flyteidl.artifact.Artifacts.SearchArtifactsRequest parsedMessage = null;
         try {
           parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.artifact.Artifacts.ListArtifactsRequest) e.getUnfinishedMessage();
+          parsedMessage = (flyteidl.artifact.Artifacts.SearchArtifactsRequest) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
           if (parsedMessage != null) {
@@ -8679,69 +8714,233 @@ public flyteidl.core.ArtifactId.ArtifactKeyOrBuilder getArtifactKeyOrBuilder() {
         }
         return artifactKeyBuilder_;
       }
-      @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);
+      private java.lang.Object filters_ = "";
+      /**
+       * string filters = 2;
+       */
+      public java.lang.String getFilters() {
+        java.lang.Object ref = filters_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          filters_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
       }
-
-
-      // @@protoc_insertion_point(builder_scope:flyteidl.artifact.ListArtifactsRequest)
-    }
-
-    // @@protoc_insertion_point(class_scope:flyteidl.artifact.ListArtifactsRequest)
-    private static final flyteidl.artifact.Artifacts.ListArtifactsRequest DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new flyteidl.artifact.Artifacts.ListArtifactsRequest();
-    }
-
-    public static flyteidl.artifact.Artifacts.ListArtifactsRequest getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser
-        PARSER = new com.google.protobuf.AbstractParser() {
-      @java.lang.Override
-      public ListArtifactsRequest parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ListArtifactsRequest(input, extensionRegistry);
+      /**
+       * string filters = 2;
+       */
+      public com.google.protobuf.ByteString
+          getFiltersBytes() {
+        java.lang.Object ref = filters_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          filters_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
       }
-    };
-
-    public static com.google.protobuf.Parser parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public flyteidl.artifact.Artifacts.ListArtifactsRequest getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-
+      /**
+       * string filters = 2;
+       */
+      public Builder setFilters(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
   }
-
-  public interface ListArtifactsResponseOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:flyteidl.artifact.ListArtifactsResponse)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     * repeated .flyteidl.artifact.Artifact artifacts = 1;
-     */
-    java.util.List 
-        getArtifactsList();
-    /**
+  
+        filters_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * string filters = 2;
+       */
+      public Builder clearFilters() {
+        
+        filters_ = getDefaultInstance().getFilters();
+        onChanged();
+        return this;
+      }
+      /**
+       * string filters = 2;
+       */
+      public Builder setFiltersBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        filters_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object token_ = "";
+      /**
+       * string token = 3;
+       */
+      public java.lang.String getToken() {
+        java.lang.Object ref = token_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          token_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * string token = 3;
+       */
+      public com.google.protobuf.ByteString
+          getTokenBytes() {
+        java.lang.Object ref = token_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          token_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * string token = 3;
+       */
+      public Builder setToken(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        token_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * string token = 3;
+       */
+      public Builder clearToken() {
+        
+        token_ = getDefaultInstance().getToken();
+        onChanged();
+        return this;
+      }
+      /**
+       * string token = 3;
+       */
+      public Builder setTokenBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        token_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int limit_ ;
+      /**
+       * int32 limit = 4;
+       */
+      public int getLimit() {
+        return limit_;
+      }
+      /**
+       * int32 limit = 4;
+       */
+      public Builder setLimit(int value) {
+        
+        limit_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * int32 limit = 4;
+       */
+      public Builder clearLimit() {
+        
+        limit_ = 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.artifact.SearchArtifactsRequest)
+    }
+
+    // @@protoc_insertion_point(class_scope:flyteidl.artifact.SearchArtifactsRequest)
+    private static final flyteidl.artifact.Artifacts.SearchArtifactsRequest DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new flyteidl.artifact.Artifacts.SearchArtifactsRequest();
+    }
+
+    public static flyteidl.artifact.Artifacts.SearchArtifactsRequest getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser
+        PARSER = new com.google.protobuf.AbstractParser() {
+      @java.lang.Override
+      public SearchArtifactsRequest parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SearchArtifactsRequest(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public flyteidl.artifact.Artifacts.SearchArtifactsRequest getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface SearchArtifactsResponseOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:flyteidl.artifact.SearchArtifactsResponse)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * repeated .flyteidl.artifact.Artifact artifacts = 1;
+     */
+    java.util.List 
+        getArtifactsList();
+    /**
      * repeated .flyteidl.artifact.Artifact artifacts = 1;
      */
     flyteidl.artifact.Artifacts.Artifact getArtifacts(int index);
@@ -8761,18 +8960,18 @@ flyteidl.artifact.Artifacts.ArtifactOrBuilder getArtifactsOrBuilder(
         int index);
   }
   /**
-   * Protobuf type {@code flyteidl.artifact.ListArtifactsResponse}
+   * Protobuf type {@code flyteidl.artifact.SearchArtifactsResponse}
    */
-  public  static final class ListArtifactsResponse extends
+  public  static final class SearchArtifactsResponse extends
       com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:flyteidl.artifact.ListArtifactsResponse)
-      ListArtifactsResponseOrBuilder {
+      // @@protoc_insertion_point(message_implements:flyteidl.artifact.SearchArtifactsResponse)
+      SearchArtifactsResponseOrBuilder {
   private static final long serialVersionUID = 0L;
-    // Use ListArtifactsResponse.newBuilder() to construct.
-    private ListArtifactsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
+    // Use SearchArtifactsResponse.newBuilder() to construct.
+    private SearchArtifactsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
       super(builder);
     }
-    private ListArtifactsResponse() {
+    private SearchArtifactsResponse() {
       artifacts_ = java.util.Collections.emptyList();
     }
 
@@ -8781,7 +8980,7 @@ private ListArtifactsResponse() {
     getUnknownFields() {
       return this.unknownFields;
     }
-    private ListArtifactsResponse(
+    private SearchArtifactsResponse(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
@@ -8833,15 +9032,15 @@ private ListArtifactsResponse(
     }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_ListArtifactsResponse_descriptor;
+      return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_SearchArtifactsResponse_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_ListArtifactsResponse_fieldAccessorTable
+      return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_SearchArtifactsResponse_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              flyteidl.artifact.Artifacts.ListArtifactsResponse.class, flyteidl.artifact.Artifacts.ListArtifactsResponse.Builder.class);
+              flyteidl.artifact.Artifacts.SearchArtifactsResponse.class, flyteidl.artifact.Artifacts.SearchArtifactsResponse.Builder.class);
     }
 
     public static final int ARTIFACTS_FIELD_NUMBER = 1;
@@ -8919,10 +9118,10 @@ public boolean equals(final java.lang.Object obj) {
       if (obj == this) {
        return true;
       }
-      if (!(obj instanceof flyteidl.artifact.Artifacts.ListArtifactsResponse)) {
+      if (!(obj instanceof flyteidl.artifact.Artifacts.SearchArtifactsResponse)) {
         return super.equals(obj);
       }
-      flyteidl.artifact.Artifacts.ListArtifactsResponse other = (flyteidl.artifact.Artifacts.ListArtifactsResponse) obj;
+      flyteidl.artifact.Artifacts.SearchArtifactsResponse other = (flyteidl.artifact.Artifacts.SearchArtifactsResponse) obj;
 
       if (!getArtifactsList()
           .equals(other.getArtifactsList())) return false;
@@ -8946,69 +9145,69 @@ public int hashCode() {
       return hash;
     }
 
-    public static flyteidl.artifact.Artifacts.ListArtifactsResponse parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse parseFrom(
         java.nio.ByteBuffer data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsResponse parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse parseFrom(
         java.nio.ByteBuffer data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsResponse parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsResponse parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsResponse parseFrom(byte[] data)
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse parseFrom(byte[] data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsResponse parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse parseFrom(
         byte[] data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsResponse parseFrom(java.io.InputStream input)
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsResponse parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse 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.artifact.Artifacts.ListArtifactsResponse parseDelimitedFrom(java.io.InputStream input)
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsResponse parseDelimitedFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse 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.artifact.Artifacts.ListArtifactsResponse parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse parseFrom(
         com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input);
     }
-    public static flyteidl.artifact.Artifacts.ListArtifactsResponse parseFrom(
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -9021,7 +9220,7 @@ public static flyteidl.artifact.Artifacts.ListArtifactsResponse parseFrom(
     public static Builder newBuilder() {
       return DEFAULT_INSTANCE.toBuilder();
     }
-    public static Builder newBuilder(flyteidl.artifact.Artifacts.ListArtifactsResponse prototype) {
+    public static Builder newBuilder(flyteidl.artifact.Artifacts.SearchArtifactsResponse prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
     @java.lang.Override
@@ -9037,26 +9236,26 @@ protected Builder newBuilderForType(
       return builder;
     }
     /**
-     * Protobuf type {@code flyteidl.artifact.ListArtifactsResponse}
+     * Protobuf type {@code flyteidl.artifact.SearchArtifactsResponse}
      */
     public static final class Builder extends
         com.google.protobuf.GeneratedMessageV3.Builder implements
-        // @@protoc_insertion_point(builder_implements:flyteidl.artifact.ListArtifactsResponse)
-        flyteidl.artifact.Artifacts.ListArtifactsResponseOrBuilder {
+        // @@protoc_insertion_point(builder_implements:flyteidl.artifact.SearchArtifactsResponse)
+        flyteidl.artifact.Artifacts.SearchArtifactsResponseOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_ListArtifactsResponse_descriptor;
+        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_SearchArtifactsResponse_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_ListArtifactsResponse_fieldAccessorTable
+        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_SearchArtifactsResponse_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                flyteidl.artifact.Artifacts.ListArtifactsResponse.class, flyteidl.artifact.Artifacts.ListArtifactsResponse.Builder.class);
+                flyteidl.artifact.Artifacts.SearchArtifactsResponse.class, flyteidl.artifact.Artifacts.SearchArtifactsResponse.Builder.class);
       }
 
-      // Construct using flyteidl.artifact.Artifacts.ListArtifactsResponse.newBuilder()
+      // Construct using flyteidl.artifact.Artifacts.SearchArtifactsResponse.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -9087,17 +9286,17 @@ public Builder clear() {
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_ListArtifactsResponse_descriptor;
+        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_SearchArtifactsResponse_descriptor;
       }
 
       @java.lang.Override
-      public flyteidl.artifact.Artifacts.ListArtifactsResponse getDefaultInstanceForType() {
-        return flyteidl.artifact.Artifacts.ListArtifactsResponse.getDefaultInstance();
+      public flyteidl.artifact.Artifacts.SearchArtifactsResponse getDefaultInstanceForType() {
+        return flyteidl.artifact.Artifacts.SearchArtifactsResponse.getDefaultInstance();
       }
 
       @java.lang.Override
-      public flyteidl.artifact.Artifacts.ListArtifactsResponse build() {
-        flyteidl.artifact.Artifacts.ListArtifactsResponse result = buildPartial();
+      public flyteidl.artifact.Artifacts.SearchArtifactsResponse build() {
+        flyteidl.artifact.Artifacts.SearchArtifactsResponse result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
@@ -9105,8 +9304,8 @@ public flyteidl.artifact.Artifacts.ListArtifactsResponse build() {
       }
 
       @java.lang.Override
-      public flyteidl.artifact.Artifacts.ListArtifactsResponse buildPartial() {
-        flyteidl.artifact.Artifacts.ListArtifactsResponse result = new flyteidl.artifact.Artifacts.ListArtifactsResponse(this);
+      public flyteidl.artifact.Artifacts.SearchArtifactsResponse buildPartial() {
+        flyteidl.artifact.Artifacts.SearchArtifactsResponse result = new flyteidl.artifact.Artifacts.SearchArtifactsResponse(this);
         int from_bitField0_ = bitField0_;
         if (artifactsBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
@@ -9155,16 +9354,16 @@ public Builder addRepeatedField(
       }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof flyteidl.artifact.Artifacts.ListArtifactsResponse) {
-          return mergeFrom((flyteidl.artifact.Artifacts.ListArtifactsResponse)other);
+        if (other instanceof flyteidl.artifact.Artifacts.SearchArtifactsResponse) {
+          return mergeFrom((flyteidl.artifact.Artifacts.SearchArtifactsResponse)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(flyteidl.artifact.Artifacts.ListArtifactsResponse other) {
-        if (other == flyteidl.artifact.Artifacts.ListArtifactsResponse.getDefaultInstance()) return this;
+      public Builder mergeFrom(flyteidl.artifact.Artifacts.SearchArtifactsResponse other) {
+        if (other == flyteidl.artifact.Artifacts.SearchArtifactsResponse.getDefaultInstance()) return this;
         if (artifactsBuilder_ == null) {
           if (!other.artifacts_.isEmpty()) {
             if (artifacts_.isEmpty()) {
@@ -9206,11 +9405,11 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        flyteidl.artifact.Artifacts.ListArtifactsResponse parsedMessage = null;
+        flyteidl.artifact.Artifacts.SearchArtifactsResponse parsedMessage = null;
         try {
           parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (flyteidl.artifact.Artifacts.ListArtifactsResponse) e.getUnfinishedMessage();
+          parsedMessage = (flyteidl.artifact.Artifacts.SearchArtifactsResponse) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
           if (parsedMessage != null) {
@@ -9473,41 +9672,41 @@ public final Builder mergeUnknownFields(
       }
 
 
-      // @@protoc_insertion_point(builder_scope:flyteidl.artifact.ListArtifactsResponse)
+      // @@protoc_insertion_point(builder_scope:flyteidl.artifact.SearchArtifactsResponse)
     }
 
-    // @@protoc_insertion_point(class_scope:flyteidl.artifact.ListArtifactsResponse)
-    private static final flyteidl.artifact.Artifacts.ListArtifactsResponse DEFAULT_INSTANCE;
+    // @@protoc_insertion_point(class_scope:flyteidl.artifact.SearchArtifactsResponse)
+    private static final flyteidl.artifact.Artifacts.SearchArtifactsResponse DEFAULT_INSTANCE;
     static {
-      DEFAULT_INSTANCE = new flyteidl.artifact.Artifacts.ListArtifactsResponse();
+      DEFAULT_INSTANCE = new flyteidl.artifact.Artifacts.SearchArtifactsResponse();
     }
 
-    public static flyteidl.artifact.Artifacts.ListArtifactsResponse getDefaultInstance() {
+    public static flyteidl.artifact.Artifacts.SearchArtifactsResponse getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
-    private static final com.google.protobuf.Parser
-        PARSER = new com.google.protobuf.AbstractParser() {
+    private static final com.google.protobuf.Parser
+        PARSER = new com.google.protobuf.AbstractParser() {
       @java.lang.Override
-      public ListArtifactsResponse parsePartialFrom(
+      public SearchArtifactsResponse parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ListArtifactsResponse(input, extensionRegistry);
+        return new SearchArtifactsResponse(input, extensionRegistry);
       }
     };
 
-    public static com.google.protobuf.Parser parser() {
+    public static com.google.protobuf.Parser parser() {
       return PARSER;
     }
 
     @java.lang.Override
-    public com.google.protobuf.Parser getParserForType() {
+    public com.google.protobuf.Parser getParserForType() {
       return PARSER;
     }
 
     @java.lang.Override
-    public flyteidl.artifact.Artifacts.ListArtifactsResponse getDefaultInstanceForType() {
+    public flyteidl.artifact.Artifacts.SearchArtifactsResponse getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
 
@@ -16504,204 +16703,1784 @@ public flyteidl.artifact.Artifacts.RegisterResponse getDefaultInstanceForType()
 
   }
 
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_Artifact_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_Artifact_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_CreateArtifactRequest_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_CreateArtifactRequest_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_CreateArtifactRequest_PartitionsEntry_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_CreateArtifactRequest_PartitionsEntry_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_ArtifactSpec_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_ArtifactSpec_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_CreateArtifactResponse_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_CreateArtifactResponse_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_GetArtifactRequest_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_GetArtifactRequest_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_GetArtifactResponse_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_GetArtifactResponse_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_ListArtifactNamesRequest_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_ListArtifactNamesRequest_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_ListArtifactNamesResponse_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_ListArtifactNamesResponse_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_ListArtifactsRequest_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_ListArtifactsRequest_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_ListArtifactsResponse_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_ListArtifactsResponse_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_AddTagRequest_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_AddTagRequest_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_AddTagResponse_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_AddTagResponse_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_CreateTriggerRequest_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_CreateTriggerRequest_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_CreateTriggerResponse_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_CreateTriggerResponse_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_DeleteTriggerRequest_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_DeleteTriggerRequest_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_DeleteTriggerResponse_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_DeleteTriggerResponse_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_ArtifactProducer_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_ArtifactProducer_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_RegisterProducerRequest_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_RegisterProducerRequest_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_ArtifactConsumer_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_ArtifactConsumer_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_RegisterConsumerRequest_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_RegisterConsumerRequest_fieldAccessorTable;
-  private static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_flyteidl_artifact_RegisterResponse_descriptor;
-  private static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_flyteidl_artifact_RegisterResponse_fieldAccessorTable;
+  public interface CloudEventRequestOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:flyteidl.artifact.CloudEventRequest)
+      com.google.protobuf.MessageOrBuilder {
 
-  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/artifact/artifacts.proto\022\021fly" +
-      "teidl.artifact\032\031google/protobuf/any.prot" +
-      "o\032 flyteidl/admin/launch_plan.proto\032\034fly" +
-      "teidl/core/literals.proto\032\031flyteidl/core" +
-      "/types.proto\032\036flyteidl/core/identifier.p" +
-      "roto\032\037flyteidl/core/artifact_id.proto\032\035f" +
-      "lyteidl/core/interface.proto\"w\n\010Artifact" +
-      "\022.\n\013artifact_id\030\001 \001(\0132\031.flyteidl.core.Ar" +
-      "tifactID\022-\n\004spec\030\002 \001(\0132\037.flyteidl.artifa" +
-      "ct.ArtifactSpec\022\014\n\004tags\030\003 \003(\t\"\227\002\n\025Create" +
-      "ArtifactRequest\0220\n\014artifact_key\030\001 \001(\0132\032." +
-      "flyteidl.core.ArtifactKey\022\017\n\007version\030\003 \001" +
-      "(\t\022-\n\004spec\030\002 \001(\0132\037.flyteidl.artifact.Art" +
-      "ifactSpec\022L\n\npartitions\030\004 \003(\01328.flyteidl" +
-      ".artifact.CreateArtifactRequest.Partitio" +
-      "nsEntry\022\013\n\003tag\030\005 \001(\t\0321\n\017PartitionsEntry\022" +
-      "\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\352\002\n\014Arti" +
-      "factSpec\022%\n\005value\030\001 \001(\0132\026.flyteidl.core." +
-      "Literal\022(\n\004type\030\002 \001(\0132\032.flyteidl.core.Li" +
-      "teralType\022>\n\016task_execution\030\005 \001(\0132&.flyt" +
-      "eidl.core.TaskExecutionIdentifier\022=\n\texe" +
-      "cution\030\006 \001(\0132*.flyteidl.core.WorkflowExe" +
-      "cutionIdentifier\022\021\n\tprincipal\030\007 \001(\t\022\031\n\021s" +
-      "hort_description\030\010 \001(\t\022\030\n\020long_descripti" +
-      "on\030\t \001(\t\022+\n\ruser_metadata\030\n \001(\0132\024.google" +
-      ".protobuf.Any\022\025\n\rmetadata_type\030\013 \001(\t\"G\n\026" +
-      "CreateArtifactResponse\022-\n\010artifact\030\001 \001(\013" +
-      "2\033.flyteidl.artifact.Artifact\"R\n\022GetArti" +
-      "factRequest\022+\n\005query\030\001 \001(\0132\034.flyteidl.co" +
-      "re.ArtifactQuery\022\017\n\007details\030\002 \001(\010\"D\n\023Get" +
-      "ArtifactResponse\022-\n\010artifact\030\001 \001(\0132\033.fly" +
-      "teidl.artifact.Artifact\";\n\030ListArtifactN" +
-      "amesRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002" +
-      " \001(\t\"N\n\031ListArtifactNamesResponse\0221\n\rart" +
-      "ifact_keys\030\001 \003(\0132\032.flyteidl.core.Artifac" +
-      "tKey\"H\n\024ListArtifactsRequest\0220\n\014artifact" +
-      "_key\030\001 \001(\0132\032.flyteidl.core.ArtifactKey\"G" +
-      "\n\025ListArtifactsResponse\022.\n\tartifacts\030\001 \003" +
-      "(\0132\033.flyteidl.artifact.Artifact\"a\n\rAddTa" +
-      "gRequest\022.\n\013artifact_id\030\001 \001(\0132\031.flyteidl" +
-      ".core.ArtifactID\022\r\n\005value\030\002 \001(\t\022\021\n\toverw" +
-      "rite\030\003 \001(\010\"\020\n\016AddTagResponse\"O\n\024CreateTr" +
-      "iggerRequest\0227\n\023trigger_launch_plan\030\001 \001(" +
-      "\0132\032.flyteidl.admin.LaunchPlan\"\027\n\025CreateT" +
-      "riggerResponse\"E\n\024DeleteTriggerRequest\022-" +
-      "\n\ntrigger_id\030\001 \001(\0132\031.flyteidl.core.Ident" +
-      "ifier\"\027\n\025DeleteTriggerResponse\"m\n\020Artifa" +
-      "ctProducer\022,\n\tentity_id\030\001 \001(\0132\031.flyteidl" +
-      ".core.Identifier\022+\n\007outputs\030\002 \001(\0132\032.flyt" +
-      "eidl.core.VariableMap\"Q\n\027RegisterProduce" +
-      "rRequest\0226\n\tproducers\030\001 \003(\0132#.flyteidl.a" +
-      "rtifact.ArtifactProducer\"m\n\020ArtifactCons" +
-      "umer\022,\n\tentity_id\030\001 \001(\0132\031.flyteidl.core." +
-      "Identifier\022+\n\006inputs\030\002 \001(\0132\033.flyteidl.co" +
-      "re.ParameterMap\"Q\n\027RegisterConsumerReque" +
-      "st\0226\n\tconsumers\030\001 \003(\0132#.flyteidl.artifac" +
-      "t.ArtifactConsumer\"\022\n\020RegisterResponse2\306" +
-      "\005\n\020ArtifactRegistry\022g\n\016CreateArtifact\022(." +
-      "flyteidl.artifact.CreateArtifactRequest\032" +
-      ").flyteidl.artifact.CreateArtifactRespon" +
-      "se\"\000\022^\n\013GetArtifact\022%.flyteidl.artifact." +
-      "GetArtifactRequest\032&.flyteidl.artifact.G" +
-      "etArtifactResponse\"\000\022d\n\rCreateTrigger\022\'." +
-      "flyteidl.artifact.CreateTriggerRequest\032(" +
-      ".flyteidl.artifact.CreateTriggerResponse" +
-      "\"\000\022d\n\rDeleteTrigger\022\'.flyteidl.artifact." +
-      "DeleteTriggerRequest\032(.flyteidl.artifact" +
-      ".DeleteTriggerResponse\"\000\022O\n\006AddTag\022 .fly" +
-      "teidl.artifact.AddTagRequest\032!.flyteidl." +
-      "artifact.AddTagResponse\"\000\022e\n\020RegisterPro" +
-      "ducer\022*.flyteidl.artifact.RegisterProduc" +
-      "erRequest\032#.flyteidl.artifact.RegisterRe" +
-      "sponse\"\000\022e\n\020RegisterConsumer\022*.flyteidl." +
-      "artifact.RegisterConsumerRequest\032#.flyte" +
-      "idl.artifact.RegisterResponse\"\000B@Z>githu" +
-      "b.com/flyteorg/flyte/flyteidl/gen/pb-go/" +
-      "flyteidl/artifactb\006proto3"
-    };
-    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+    /**
+     * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+     */
+    boolean hasWorkflowExecutionEvent();
+    /**
+     * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+     */
+    flyteidl.event.Cloudevents.CloudEventWorkflowExecution getWorkflowExecutionEvent();
+    /**
+     * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+     */
+    flyteidl.event.Cloudevents.CloudEventWorkflowExecutionOrBuilder getWorkflowExecutionEventOrBuilder();
+
+    /**
+     * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+     */
+    boolean hasTaskExecutionEvent();
+    /**
+     * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+     */
+    flyteidl.event.Cloudevents.CloudEventTaskExecution getTaskExecutionEvent();
+    /**
+     * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+     */
+    flyteidl.event.Cloudevents.CloudEventTaskExecutionOrBuilder getTaskExecutionEventOrBuilder();
+
+    /**
+     * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+     */
+    boolean hasNodeExecutionEvent();
+    /**
+     * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+     */
+    flyteidl.event.Cloudevents.CloudEventNodeExecution getNodeExecutionEvent();
+    /**
+     * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+     */
+    flyteidl.event.Cloudevents.CloudEventNodeExecutionOrBuilder getNodeExecutionEventOrBuilder();
+
+    public flyteidl.artifact.Artifacts.CloudEventRequest.EventCase getEventCase();
+  }
+  /**
+   * Protobuf type {@code flyteidl.artifact.CloudEventRequest}
+   */
+  public  static final class CloudEventRequest extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:flyteidl.artifact.CloudEventRequest)
+      CloudEventRequestOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CloudEventRequest.newBuilder() to construct.
+    private CloudEventRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
+      super(builder);
+    }
+    private CloudEventRequest() {
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CloudEventRequest(
+        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.event.Cloudevents.CloudEventWorkflowExecution.Builder subBuilder = null;
+              if (eventCase_ == 1) {
+                subBuilder = ((flyteidl.event.Cloudevents.CloudEventWorkflowExecution) event_).toBuilder();
+              }
+              event_ =
+                  input.readMessage(flyteidl.event.Cloudevents.CloudEventWorkflowExecution.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom((flyteidl.event.Cloudevents.CloudEventWorkflowExecution) event_);
+                event_ = subBuilder.buildPartial();
+              }
+              eventCase_ = 1;
+              break;
+            }
+            case 18: {
+              flyteidl.event.Cloudevents.CloudEventTaskExecution.Builder subBuilder = null;
+              if (eventCase_ == 2) {
+                subBuilder = ((flyteidl.event.Cloudevents.CloudEventTaskExecution) event_).toBuilder();
+              }
+              event_ =
+                  input.readMessage(flyteidl.event.Cloudevents.CloudEventTaskExecution.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom((flyteidl.event.Cloudevents.CloudEventTaskExecution) event_);
+                event_ = subBuilder.buildPartial();
+              }
+              eventCase_ = 2;
+              break;
+            }
+            case 26: {
+              flyteidl.event.Cloudevents.CloudEventNodeExecution.Builder subBuilder = null;
+              if (eventCase_ == 3) {
+                subBuilder = ((flyteidl.event.Cloudevents.CloudEventNodeExecution) event_).toBuilder();
+              }
+              event_ =
+                  input.readMessage(flyteidl.event.Cloudevents.CloudEventNodeExecution.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom((flyteidl.event.Cloudevents.CloudEventNodeExecution) event_);
+                event_ = subBuilder.buildPartial();
+              }
+              eventCase_ = 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.artifact.Artifacts.internal_static_flyteidl_artifact_CloudEventRequest_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_CloudEventRequest_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              flyteidl.artifact.Artifacts.CloudEventRequest.class, flyteidl.artifact.Artifacts.CloudEventRequest.Builder.class);
+    }
+
+    private int eventCase_ = 0;
+    private java.lang.Object event_;
+    public enum EventCase
+        implements com.google.protobuf.Internal.EnumLite {
+      WORKFLOW_EXECUTION_EVENT(1),
+      TASK_EXECUTION_EVENT(2),
+      NODE_EXECUTION_EVENT(3),
+      EVENT_NOT_SET(0);
+      private final int value;
+      private EventCase(int value) {
+        this.value = value;
+      }
+      /**
+       * @deprecated Use {@link #forNumber(int)} instead.
+       */
+      @java.lang.Deprecated
+      public static EventCase valueOf(int value) {
+        return forNumber(value);
+      }
+
+      public static EventCase forNumber(int value) {
+        switch (value) {
+          case 1: return WORKFLOW_EXECUTION_EVENT;
+          case 2: return TASK_EXECUTION_EVENT;
+          case 3: return NODE_EXECUTION_EVENT;
+          case 0: return EVENT_NOT_SET;
+          default: return null;
+        }
+      }
+      public int getNumber() {
+        return this.value;
+      }
+    };
+
+    public EventCase
+    getEventCase() {
+      return EventCase.forNumber(
+          eventCase_);
+    }
+
+    public static final int WORKFLOW_EXECUTION_EVENT_FIELD_NUMBER = 1;
+    /**
+     * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+     */
+    public boolean hasWorkflowExecutionEvent() {
+      return eventCase_ == 1;
+    }
+    /**
+     * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+     */
+    public flyteidl.event.Cloudevents.CloudEventWorkflowExecution getWorkflowExecutionEvent() {
+      if (eventCase_ == 1) {
+         return (flyteidl.event.Cloudevents.CloudEventWorkflowExecution) event_;
+      }
+      return flyteidl.event.Cloudevents.CloudEventWorkflowExecution.getDefaultInstance();
+    }
+    /**
+     * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+     */
+    public flyteidl.event.Cloudevents.CloudEventWorkflowExecutionOrBuilder getWorkflowExecutionEventOrBuilder() {
+      if (eventCase_ == 1) {
+         return (flyteidl.event.Cloudevents.CloudEventWorkflowExecution) event_;
+      }
+      return flyteidl.event.Cloudevents.CloudEventWorkflowExecution.getDefaultInstance();
+    }
+
+    public static final int TASK_EXECUTION_EVENT_FIELD_NUMBER = 2;
+    /**
+     * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+     */
+    public boolean hasTaskExecutionEvent() {
+      return eventCase_ == 2;
+    }
+    /**
+     * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+     */
+    public flyteidl.event.Cloudevents.CloudEventTaskExecution getTaskExecutionEvent() {
+      if (eventCase_ == 2) {
+         return (flyteidl.event.Cloudevents.CloudEventTaskExecution) event_;
+      }
+      return flyteidl.event.Cloudevents.CloudEventTaskExecution.getDefaultInstance();
+    }
+    /**
+     * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+     */
+    public flyteidl.event.Cloudevents.CloudEventTaskExecutionOrBuilder getTaskExecutionEventOrBuilder() {
+      if (eventCase_ == 2) {
+         return (flyteidl.event.Cloudevents.CloudEventTaskExecution) event_;
+      }
+      return flyteidl.event.Cloudevents.CloudEventTaskExecution.getDefaultInstance();
+    }
+
+    public static final int NODE_EXECUTION_EVENT_FIELD_NUMBER = 3;
+    /**
+     * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+     */
+    public boolean hasNodeExecutionEvent() {
+      return eventCase_ == 3;
+    }
+    /**
+     * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+     */
+    public flyteidl.event.Cloudevents.CloudEventNodeExecution getNodeExecutionEvent() {
+      if (eventCase_ == 3) {
+         return (flyteidl.event.Cloudevents.CloudEventNodeExecution) event_;
+      }
+      return flyteidl.event.Cloudevents.CloudEventNodeExecution.getDefaultInstance();
+    }
+    /**
+     * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+     */
+    public flyteidl.event.Cloudevents.CloudEventNodeExecutionOrBuilder getNodeExecutionEventOrBuilder() {
+      if (eventCase_ == 3) {
+         return (flyteidl.event.Cloudevents.CloudEventNodeExecution) event_;
+      }
+      return flyteidl.event.Cloudevents.CloudEventNodeExecution.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 (eventCase_ == 1) {
+        output.writeMessage(1, (flyteidl.event.Cloudevents.CloudEventWorkflowExecution) event_);
+      }
+      if (eventCase_ == 2) {
+        output.writeMessage(2, (flyteidl.event.Cloudevents.CloudEventTaskExecution) event_);
+      }
+      if (eventCase_ == 3) {
+        output.writeMessage(3, (flyteidl.event.Cloudevents.CloudEventNodeExecution) event_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (eventCase_ == 1) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(1, (flyteidl.event.Cloudevents.CloudEventWorkflowExecution) event_);
+      }
+      if (eventCase_ == 2) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, (flyteidl.event.Cloudevents.CloudEventTaskExecution) event_);
+      }
+      if (eventCase_ == 3) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, (flyteidl.event.Cloudevents.CloudEventNodeExecution) event_);
+      }
+      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.artifact.Artifacts.CloudEventRequest)) {
+        return super.equals(obj);
+      }
+      flyteidl.artifact.Artifacts.CloudEventRequest other = (flyteidl.artifact.Artifacts.CloudEventRequest) obj;
+
+      if (!getEventCase().equals(other.getEventCase())) return false;
+      switch (eventCase_) {
+        case 1:
+          if (!getWorkflowExecutionEvent()
+              .equals(other.getWorkflowExecutionEvent())) return false;
+          break;
+        case 2:
+          if (!getTaskExecutionEvent()
+              .equals(other.getTaskExecutionEvent())) return false;
+          break;
+        case 3:
+          if (!getNodeExecutionEvent()
+              .equals(other.getNodeExecutionEvent())) 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 (eventCase_) {
+        case 1:
+          hash = (37 * hash) + WORKFLOW_EXECUTION_EVENT_FIELD_NUMBER;
+          hash = (53 * hash) + getWorkflowExecutionEvent().hashCode();
+          break;
+        case 2:
+          hash = (37 * hash) + TASK_EXECUTION_EVENT_FIELD_NUMBER;
+          hash = (53 * hash) + getTaskExecutionEvent().hashCode();
+          break;
+        case 3:
+          hash = (37 * hash) + NODE_EXECUTION_EVENT_FIELD_NUMBER;
+          hash = (53 * hash) + getNodeExecutionEvent().hashCode();
+          break;
+        case 0:
+        default:
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static flyteidl.artifact.Artifacts.CloudEventRequest parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventRequest parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventRequest parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventRequest parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventRequest parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventRequest parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventRequest parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventRequest 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.artifact.Artifacts.CloudEventRequest parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventRequest 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.artifact.Artifacts.CloudEventRequest parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventRequest 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.artifact.Artifacts.CloudEventRequest 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;
+    }
+    /**
+     * Protobuf type {@code flyteidl.artifact.CloudEventRequest}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder implements
+        // @@protoc_insertion_point(builder_implements:flyteidl.artifact.CloudEventRequest)
+        flyteidl.artifact.Artifacts.CloudEventRequestOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_CloudEventRequest_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_CloudEventRequest_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                flyteidl.artifact.Artifacts.CloudEventRequest.class, flyteidl.artifact.Artifacts.CloudEventRequest.Builder.class);
+      }
+
+      // Construct using flyteidl.artifact.Artifacts.CloudEventRequest.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();
+        eventCase_ = 0;
+        event_ = null;
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_CloudEventRequest_descriptor;
+      }
+
+      @java.lang.Override
+      public flyteidl.artifact.Artifacts.CloudEventRequest getDefaultInstanceForType() {
+        return flyteidl.artifact.Artifacts.CloudEventRequest.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public flyteidl.artifact.Artifacts.CloudEventRequest build() {
+        flyteidl.artifact.Artifacts.CloudEventRequest result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public flyteidl.artifact.Artifacts.CloudEventRequest buildPartial() {
+        flyteidl.artifact.Artifacts.CloudEventRequest result = new flyteidl.artifact.Artifacts.CloudEventRequest(this);
+        if (eventCase_ == 1) {
+          if (workflowExecutionEventBuilder_ == null) {
+            result.event_ = event_;
+          } else {
+            result.event_ = workflowExecutionEventBuilder_.build();
+          }
+        }
+        if (eventCase_ == 2) {
+          if (taskExecutionEventBuilder_ == null) {
+            result.event_ = event_;
+          } else {
+            result.event_ = taskExecutionEventBuilder_.build();
+          }
+        }
+        if (eventCase_ == 3) {
+          if (nodeExecutionEventBuilder_ == null) {
+            result.event_ = event_;
+          } else {
+            result.event_ = nodeExecutionEventBuilder_.build();
+          }
+        }
+        result.eventCase_ = eventCase_;
+        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.artifact.Artifacts.CloudEventRequest) {
+          return mergeFrom((flyteidl.artifact.Artifacts.CloudEventRequest)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(flyteidl.artifact.Artifacts.CloudEventRequest other) {
+        if (other == flyteidl.artifact.Artifacts.CloudEventRequest.getDefaultInstance()) return this;
+        switch (other.getEventCase()) {
+          case WORKFLOW_EXECUTION_EVENT: {
+            mergeWorkflowExecutionEvent(other.getWorkflowExecutionEvent());
+            break;
+          }
+          case TASK_EXECUTION_EVENT: {
+            mergeTaskExecutionEvent(other.getTaskExecutionEvent());
+            break;
+          }
+          case NODE_EXECUTION_EVENT: {
+            mergeNodeExecutionEvent(other.getNodeExecutionEvent());
+            break;
+          }
+          case EVENT_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.artifact.Artifacts.CloudEventRequest parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (flyteidl.artifact.Artifacts.CloudEventRequest) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int eventCase_ = 0;
+      private java.lang.Object event_;
+      public EventCase
+          getEventCase() {
+        return EventCase.forNumber(
+            eventCase_);
+      }
+
+      public Builder clearEvent() {
+        eventCase_ = 0;
+        event_ = null;
+        onChanged();
+        return this;
+      }
+
+
+      private com.google.protobuf.SingleFieldBuilderV3<
+          flyteidl.event.Cloudevents.CloudEventWorkflowExecution, flyteidl.event.Cloudevents.CloudEventWorkflowExecution.Builder, flyteidl.event.Cloudevents.CloudEventWorkflowExecutionOrBuilder> workflowExecutionEventBuilder_;
+      /**
+       * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+       */
+      public boolean hasWorkflowExecutionEvent() {
+        return eventCase_ == 1;
+      }
+      /**
+       * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+       */
+      public flyteidl.event.Cloudevents.CloudEventWorkflowExecution getWorkflowExecutionEvent() {
+        if (workflowExecutionEventBuilder_ == null) {
+          if (eventCase_ == 1) {
+            return (flyteidl.event.Cloudevents.CloudEventWorkflowExecution) event_;
+          }
+          return flyteidl.event.Cloudevents.CloudEventWorkflowExecution.getDefaultInstance();
+        } else {
+          if (eventCase_ == 1) {
+            return workflowExecutionEventBuilder_.getMessage();
+          }
+          return flyteidl.event.Cloudevents.CloudEventWorkflowExecution.getDefaultInstance();
+        }
+      }
+      /**
+       * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+       */
+      public Builder setWorkflowExecutionEvent(flyteidl.event.Cloudevents.CloudEventWorkflowExecution value) {
+        if (workflowExecutionEventBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          event_ = value;
+          onChanged();
+        } else {
+          workflowExecutionEventBuilder_.setMessage(value);
+        }
+        eventCase_ = 1;
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+       */
+      public Builder setWorkflowExecutionEvent(
+          flyteidl.event.Cloudevents.CloudEventWorkflowExecution.Builder builderForValue) {
+        if (workflowExecutionEventBuilder_ == null) {
+          event_ = builderForValue.build();
+          onChanged();
+        } else {
+          workflowExecutionEventBuilder_.setMessage(builderForValue.build());
+        }
+        eventCase_ = 1;
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+       */
+      public Builder mergeWorkflowExecutionEvent(flyteidl.event.Cloudevents.CloudEventWorkflowExecution value) {
+        if (workflowExecutionEventBuilder_ == null) {
+          if (eventCase_ == 1 &&
+              event_ != flyteidl.event.Cloudevents.CloudEventWorkflowExecution.getDefaultInstance()) {
+            event_ = flyteidl.event.Cloudevents.CloudEventWorkflowExecution.newBuilder((flyteidl.event.Cloudevents.CloudEventWorkflowExecution) event_)
+                .mergeFrom(value).buildPartial();
+          } else {
+            event_ = value;
+          }
+          onChanged();
+        } else {
+          if (eventCase_ == 1) {
+            workflowExecutionEventBuilder_.mergeFrom(value);
+          }
+          workflowExecutionEventBuilder_.setMessage(value);
+        }
+        eventCase_ = 1;
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+       */
+      public Builder clearWorkflowExecutionEvent() {
+        if (workflowExecutionEventBuilder_ == null) {
+          if (eventCase_ == 1) {
+            eventCase_ = 0;
+            event_ = null;
+            onChanged();
+          }
+        } else {
+          if (eventCase_ == 1) {
+            eventCase_ = 0;
+            event_ = null;
+          }
+          workflowExecutionEventBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+       */
+      public flyteidl.event.Cloudevents.CloudEventWorkflowExecution.Builder getWorkflowExecutionEventBuilder() {
+        return getWorkflowExecutionEventFieldBuilder().getBuilder();
+      }
+      /**
+       * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+       */
+      public flyteidl.event.Cloudevents.CloudEventWorkflowExecutionOrBuilder getWorkflowExecutionEventOrBuilder() {
+        if ((eventCase_ == 1) && (workflowExecutionEventBuilder_ != null)) {
+          return workflowExecutionEventBuilder_.getMessageOrBuilder();
+        } else {
+          if (eventCase_ == 1) {
+            return (flyteidl.event.Cloudevents.CloudEventWorkflowExecution) event_;
+          }
+          return flyteidl.event.Cloudevents.CloudEventWorkflowExecution.getDefaultInstance();
+        }
+      }
+      /**
+       * .flyteidl.event.CloudEventWorkflowExecution workflow_execution_event = 1;
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          flyteidl.event.Cloudevents.CloudEventWorkflowExecution, flyteidl.event.Cloudevents.CloudEventWorkflowExecution.Builder, flyteidl.event.Cloudevents.CloudEventWorkflowExecutionOrBuilder> 
+          getWorkflowExecutionEventFieldBuilder() {
+        if (workflowExecutionEventBuilder_ == null) {
+          if (!(eventCase_ == 1)) {
+            event_ = flyteidl.event.Cloudevents.CloudEventWorkflowExecution.getDefaultInstance();
+          }
+          workflowExecutionEventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              flyteidl.event.Cloudevents.CloudEventWorkflowExecution, flyteidl.event.Cloudevents.CloudEventWorkflowExecution.Builder, flyteidl.event.Cloudevents.CloudEventWorkflowExecutionOrBuilder>(
+                  (flyteidl.event.Cloudevents.CloudEventWorkflowExecution) event_,
+                  getParentForChildren(),
+                  isClean());
+          event_ = null;
+        }
+        eventCase_ = 1;
+        onChanged();;
+        return workflowExecutionEventBuilder_;
+      }
+
+      private com.google.protobuf.SingleFieldBuilderV3<
+          flyteidl.event.Cloudevents.CloudEventTaskExecution, flyteidl.event.Cloudevents.CloudEventTaskExecution.Builder, flyteidl.event.Cloudevents.CloudEventTaskExecutionOrBuilder> taskExecutionEventBuilder_;
+      /**
+       * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+       */
+      public boolean hasTaskExecutionEvent() {
+        return eventCase_ == 2;
+      }
+      /**
+       * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+       */
+      public flyteidl.event.Cloudevents.CloudEventTaskExecution getTaskExecutionEvent() {
+        if (taskExecutionEventBuilder_ == null) {
+          if (eventCase_ == 2) {
+            return (flyteidl.event.Cloudevents.CloudEventTaskExecution) event_;
+          }
+          return flyteidl.event.Cloudevents.CloudEventTaskExecution.getDefaultInstance();
+        } else {
+          if (eventCase_ == 2) {
+            return taskExecutionEventBuilder_.getMessage();
+          }
+          return flyteidl.event.Cloudevents.CloudEventTaskExecution.getDefaultInstance();
+        }
+      }
+      /**
+       * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+       */
+      public Builder setTaskExecutionEvent(flyteidl.event.Cloudevents.CloudEventTaskExecution value) {
+        if (taskExecutionEventBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          event_ = value;
+          onChanged();
+        } else {
+          taskExecutionEventBuilder_.setMessage(value);
+        }
+        eventCase_ = 2;
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+       */
+      public Builder setTaskExecutionEvent(
+          flyteidl.event.Cloudevents.CloudEventTaskExecution.Builder builderForValue) {
+        if (taskExecutionEventBuilder_ == null) {
+          event_ = builderForValue.build();
+          onChanged();
+        } else {
+          taskExecutionEventBuilder_.setMessage(builderForValue.build());
+        }
+        eventCase_ = 2;
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+       */
+      public Builder mergeTaskExecutionEvent(flyteidl.event.Cloudevents.CloudEventTaskExecution value) {
+        if (taskExecutionEventBuilder_ == null) {
+          if (eventCase_ == 2 &&
+              event_ != flyteidl.event.Cloudevents.CloudEventTaskExecution.getDefaultInstance()) {
+            event_ = flyteidl.event.Cloudevents.CloudEventTaskExecution.newBuilder((flyteidl.event.Cloudevents.CloudEventTaskExecution) event_)
+                .mergeFrom(value).buildPartial();
+          } else {
+            event_ = value;
+          }
+          onChanged();
+        } else {
+          if (eventCase_ == 2) {
+            taskExecutionEventBuilder_.mergeFrom(value);
+          }
+          taskExecutionEventBuilder_.setMessage(value);
+        }
+        eventCase_ = 2;
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+       */
+      public Builder clearTaskExecutionEvent() {
+        if (taskExecutionEventBuilder_ == null) {
+          if (eventCase_ == 2) {
+            eventCase_ = 0;
+            event_ = null;
+            onChanged();
+          }
+        } else {
+          if (eventCase_ == 2) {
+            eventCase_ = 0;
+            event_ = null;
+          }
+          taskExecutionEventBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+       */
+      public flyteidl.event.Cloudevents.CloudEventTaskExecution.Builder getTaskExecutionEventBuilder() {
+        return getTaskExecutionEventFieldBuilder().getBuilder();
+      }
+      /**
+       * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+       */
+      public flyteidl.event.Cloudevents.CloudEventTaskExecutionOrBuilder getTaskExecutionEventOrBuilder() {
+        if ((eventCase_ == 2) && (taskExecutionEventBuilder_ != null)) {
+          return taskExecutionEventBuilder_.getMessageOrBuilder();
+        } else {
+          if (eventCase_ == 2) {
+            return (flyteidl.event.Cloudevents.CloudEventTaskExecution) event_;
+          }
+          return flyteidl.event.Cloudevents.CloudEventTaskExecution.getDefaultInstance();
+        }
+      }
+      /**
+       * .flyteidl.event.CloudEventTaskExecution task_execution_event = 2;
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          flyteidl.event.Cloudevents.CloudEventTaskExecution, flyteidl.event.Cloudevents.CloudEventTaskExecution.Builder, flyteidl.event.Cloudevents.CloudEventTaskExecutionOrBuilder> 
+          getTaskExecutionEventFieldBuilder() {
+        if (taskExecutionEventBuilder_ == null) {
+          if (!(eventCase_ == 2)) {
+            event_ = flyteidl.event.Cloudevents.CloudEventTaskExecution.getDefaultInstance();
+          }
+          taskExecutionEventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              flyteidl.event.Cloudevents.CloudEventTaskExecution, flyteidl.event.Cloudevents.CloudEventTaskExecution.Builder, flyteidl.event.Cloudevents.CloudEventTaskExecutionOrBuilder>(
+                  (flyteidl.event.Cloudevents.CloudEventTaskExecution) event_,
+                  getParentForChildren(),
+                  isClean());
+          event_ = null;
+        }
+        eventCase_ = 2;
+        onChanged();;
+        return taskExecutionEventBuilder_;
+      }
+
+      private com.google.protobuf.SingleFieldBuilderV3<
+          flyteidl.event.Cloudevents.CloudEventNodeExecution, flyteidl.event.Cloudevents.CloudEventNodeExecution.Builder, flyteidl.event.Cloudevents.CloudEventNodeExecutionOrBuilder> nodeExecutionEventBuilder_;
+      /**
+       * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+       */
+      public boolean hasNodeExecutionEvent() {
+        return eventCase_ == 3;
+      }
+      /**
+       * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+       */
+      public flyteidl.event.Cloudevents.CloudEventNodeExecution getNodeExecutionEvent() {
+        if (nodeExecutionEventBuilder_ == null) {
+          if (eventCase_ == 3) {
+            return (flyteidl.event.Cloudevents.CloudEventNodeExecution) event_;
+          }
+          return flyteidl.event.Cloudevents.CloudEventNodeExecution.getDefaultInstance();
+        } else {
+          if (eventCase_ == 3) {
+            return nodeExecutionEventBuilder_.getMessage();
+          }
+          return flyteidl.event.Cloudevents.CloudEventNodeExecution.getDefaultInstance();
+        }
+      }
+      /**
+       * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+       */
+      public Builder setNodeExecutionEvent(flyteidl.event.Cloudevents.CloudEventNodeExecution value) {
+        if (nodeExecutionEventBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          event_ = value;
+          onChanged();
+        } else {
+          nodeExecutionEventBuilder_.setMessage(value);
+        }
+        eventCase_ = 3;
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+       */
+      public Builder setNodeExecutionEvent(
+          flyteidl.event.Cloudevents.CloudEventNodeExecution.Builder builderForValue) {
+        if (nodeExecutionEventBuilder_ == null) {
+          event_ = builderForValue.build();
+          onChanged();
+        } else {
+          nodeExecutionEventBuilder_.setMessage(builderForValue.build());
+        }
+        eventCase_ = 3;
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+       */
+      public Builder mergeNodeExecutionEvent(flyteidl.event.Cloudevents.CloudEventNodeExecution value) {
+        if (nodeExecutionEventBuilder_ == null) {
+          if (eventCase_ == 3 &&
+              event_ != flyteidl.event.Cloudevents.CloudEventNodeExecution.getDefaultInstance()) {
+            event_ = flyteidl.event.Cloudevents.CloudEventNodeExecution.newBuilder((flyteidl.event.Cloudevents.CloudEventNodeExecution) event_)
+                .mergeFrom(value).buildPartial();
+          } else {
+            event_ = value;
+          }
+          onChanged();
+        } else {
+          if (eventCase_ == 3) {
+            nodeExecutionEventBuilder_.mergeFrom(value);
+          }
+          nodeExecutionEventBuilder_.setMessage(value);
+        }
+        eventCase_ = 3;
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+       */
+      public Builder clearNodeExecutionEvent() {
+        if (nodeExecutionEventBuilder_ == null) {
+          if (eventCase_ == 3) {
+            eventCase_ = 0;
+            event_ = null;
+            onChanged();
+          }
+        } else {
+          if (eventCase_ == 3) {
+            eventCase_ = 0;
+            event_ = null;
+          }
+          nodeExecutionEventBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+       */
+      public flyteidl.event.Cloudevents.CloudEventNodeExecution.Builder getNodeExecutionEventBuilder() {
+        return getNodeExecutionEventFieldBuilder().getBuilder();
+      }
+      /**
+       * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+       */
+      public flyteidl.event.Cloudevents.CloudEventNodeExecutionOrBuilder getNodeExecutionEventOrBuilder() {
+        if ((eventCase_ == 3) && (nodeExecutionEventBuilder_ != null)) {
+          return nodeExecutionEventBuilder_.getMessageOrBuilder();
+        } else {
+          if (eventCase_ == 3) {
+            return (flyteidl.event.Cloudevents.CloudEventNodeExecution) event_;
+          }
+          return flyteidl.event.Cloudevents.CloudEventNodeExecution.getDefaultInstance();
+        }
+      }
+      /**
+       * .flyteidl.event.CloudEventNodeExecution node_execution_event = 3;
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          flyteidl.event.Cloudevents.CloudEventNodeExecution, flyteidl.event.Cloudevents.CloudEventNodeExecution.Builder, flyteidl.event.Cloudevents.CloudEventNodeExecutionOrBuilder> 
+          getNodeExecutionEventFieldBuilder() {
+        if (nodeExecutionEventBuilder_ == null) {
+          if (!(eventCase_ == 3)) {
+            event_ = flyteidl.event.Cloudevents.CloudEventNodeExecution.getDefaultInstance();
+          }
+          nodeExecutionEventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              flyteidl.event.Cloudevents.CloudEventNodeExecution, flyteidl.event.Cloudevents.CloudEventNodeExecution.Builder, flyteidl.event.Cloudevents.CloudEventNodeExecutionOrBuilder>(
+                  (flyteidl.event.Cloudevents.CloudEventNodeExecution) event_,
+                  getParentForChildren(),
+                  isClean());
+          event_ = null;
+        }
+        eventCase_ = 3;
+        onChanged();;
+        return nodeExecutionEventBuilder_;
+      }
+      @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.artifact.CloudEventRequest)
+    }
+
+    // @@protoc_insertion_point(class_scope:flyteidl.artifact.CloudEventRequest)
+    private static final flyteidl.artifact.Artifacts.CloudEventRequest DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new flyteidl.artifact.Artifacts.CloudEventRequest();
+    }
+
+    public static flyteidl.artifact.Artifacts.CloudEventRequest getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser
+        PARSER = new com.google.protobuf.AbstractParser() {
+      @java.lang.Override
+      public CloudEventRequest parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CloudEventRequest(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public flyteidl.artifact.Artifacts.CloudEventRequest getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface CloudEventResponseOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:flyteidl.artifact.CloudEventResponse)
+      com.google.protobuf.MessageOrBuilder {
+  }
+  /**
+   * Protobuf type {@code flyteidl.artifact.CloudEventResponse}
+   */
+  public  static final class CloudEventResponse extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:flyteidl.artifact.CloudEventResponse)
+      CloudEventResponseOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CloudEventResponse.newBuilder() to construct.
+    private CloudEventResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
+      super(builder);
+    }
+    private CloudEventResponse() {
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CloudEventResponse(
+        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.artifact.Artifacts.internal_static_flyteidl_artifact_CloudEventResponse_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_CloudEventResponse_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              flyteidl.artifact.Artifacts.CloudEventResponse.class, flyteidl.artifact.Artifacts.CloudEventResponse.Builder.class);
+    }
+
+    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.artifact.Artifacts.CloudEventResponse)) {
+        return super.equals(obj);
+      }
+      flyteidl.artifact.Artifacts.CloudEventResponse other = (flyteidl.artifact.Artifacts.CloudEventResponse) 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.artifact.Artifacts.CloudEventResponse parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventResponse parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventResponse parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventResponse parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventResponse parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventResponse parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventResponse parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventResponse 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.artifact.Artifacts.CloudEventResponse parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventResponse 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.artifact.Artifacts.CloudEventResponse parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static flyteidl.artifact.Artifacts.CloudEventResponse 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.artifact.Artifacts.CloudEventResponse 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;
+    }
+    /**
+     * Protobuf type {@code flyteidl.artifact.CloudEventResponse}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder implements
+        // @@protoc_insertion_point(builder_implements:flyteidl.artifact.CloudEventResponse)
+        flyteidl.artifact.Artifacts.CloudEventResponseOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_CloudEventResponse_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return flyteidl.artifact.Artifacts.internal_static_flyteidl_artifact_CloudEventResponse_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                flyteidl.artifact.Artifacts.CloudEventResponse.class, flyteidl.artifact.Artifacts.CloudEventResponse.Builder.class);
+      }
+
+      // Construct using flyteidl.artifact.Artifacts.CloudEventResponse.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.artifact.Artifacts.internal_static_flyteidl_artifact_CloudEventResponse_descriptor;
+      }
+
+      @java.lang.Override
+      public flyteidl.artifact.Artifacts.CloudEventResponse getDefaultInstanceForType() {
+        return flyteidl.artifact.Artifacts.CloudEventResponse.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public flyteidl.artifact.Artifacts.CloudEventResponse build() {
+        flyteidl.artifact.Artifacts.CloudEventResponse result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public flyteidl.artifact.Artifacts.CloudEventResponse buildPartial() {
+        flyteidl.artifact.Artifacts.CloudEventResponse result = new flyteidl.artifact.Artifacts.CloudEventResponse(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.artifact.Artifacts.CloudEventResponse) {
+          return mergeFrom((flyteidl.artifact.Artifacts.CloudEventResponse)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(flyteidl.artifact.Artifacts.CloudEventResponse other) {
+        if (other == flyteidl.artifact.Artifacts.CloudEventResponse.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.artifact.Artifacts.CloudEventResponse parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (flyteidl.artifact.Artifacts.CloudEventResponse) 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.artifact.CloudEventResponse)
+    }
+
+    // @@protoc_insertion_point(class_scope:flyteidl.artifact.CloudEventResponse)
+    private static final flyteidl.artifact.Artifacts.CloudEventResponse DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new flyteidl.artifact.Artifacts.CloudEventResponse();
+    }
+
+    public static flyteidl.artifact.Artifacts.CloudEventResponse getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser
+        PARSER = new com.google.protobuf.AbstractParser() {
+      @java.lang.Override
+      public CloudEventResponse parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CloudEventResponse(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public flyteidl.artifact.Artifacts.CloudEventResponse getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_Artifact_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_Artifact_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_CreateArtifactRequest_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_CreateArtifactRequest_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_CreateArtifactRequest_PartitionsEntry_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_CreateArtifactRequest_PartitionsEntry_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_ArtifactSpec_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_ArtifactSpec_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_CreateArtifactResponse_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_CreateArtifactResponse_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_GetArtifactRequest_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_GetArtifactRequest_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_GetArtifactResponse_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_GetArtifactResponse_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_ListArtifactNamesRequest_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_ListArtifactNamesRequest_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_ListArtifactNamesResponse_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_ListArtifactNamesResponse_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_SearchArtifactsRequest_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_SearchArtifactsRequest_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_SearchArtifactsResponse_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_SearchArtifactsResponse_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_AddTagRequest_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_AddTagRequest_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_AddTagResponse_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_AddTagResponse_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_CreateTriggerRequest_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_CreateTriggerRequest_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_CreateTriggerResponse_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_CreateTriggerResponse_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_DeleteTriggerRequest_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_DeleteTriggerRequest_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_DeleteTriggerResponse_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_DeleteTriggerResponse_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_ArtifactProducer_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_ArtifactProducer_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_RegisterProducerRequest_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_RegisterProducerRequest_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_ArtifactConsumer_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_ArtifactConsumer_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_RegisterConsumerRequest_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_RegisterConsumerRequest_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_RegisterResponse_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_RegisterResponse_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_CloudEventRequest_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_CloudEventRequest_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_flyteidl_artifact_CloudEventResponse_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_flyteidl_artifact_CloudEventResponse_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/artifact/artifacts.proto\022\021fly" +
+      "teidl.artifact\032\031google/protobuf/any.prot" +
+      "o\032\034google/api/annotations.proto\032 flyteid" +
+      "l/admin/launch_plan.proto\032\034flyteidl/core" +
+      "/literals.proto\032\031flyteidl/core/types.pro" +
+      "to\032\036flyteidl/core/identifier.proto\032\037flyt" +
+      "eidl/core/artifact_id.proto\032\035flyteidl/co" +
+      "re/interface.proto\032 flyteidl/event/cloud" +
+      "events.proto\"w\n\010Artifact\022.\n\013artifact_id\030" +
+      "\001 \001(\0132\031.flyteidl.core.ArtifactID\022-\n\004spec" +
+      "\030\002 \001(\0132\037.flyteidl.artifact.ArtifactSpec\022" +
+      "\014\n\004tags\030\003 \003(\t\"\227\002\n\025CreateArtifactRequest\022" +
+      "0\n\014artifact_key\030\001 \001(\0132\032.flyteidl.core.Ar" +
+      "tifactKey\022\017\n\007version\030\003 \001(\t\022-\n\004spec\030\002 \001(\013" +
+      "2\037.flyteidl.artifact.ArtifactSpec\022L\n\npar" +
+      "titions\030\004 \003(\01328.flyteidl.artifact.Create" +
+      "ArtifactRequest.PartitionsEntry\022\013\n\003tag\030\005" +
+      " \001(\t\0321\n\017PartitionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005" +
+      "value\030\002 \001(\t:\0028\001\"\320\002\n\014ArtifactSpec\022%\n\005valu" +
+      "e\030\001 \001(\0132\026.flyteidl.core.Literal\022(\n\004type\030" +
+      "\002 \001(\0132\032.flyteidl.core.LiteralType\022>\n\016tas" +
+      "k_execution\030\005 \001(\0132&.flyteidl.core.TaskEx" +
+      "ecutionIdentifier\022=\n\texecution\030\006 \001(\0132*.f" +
+      "lyteidl.core.WorkflowExecutionIdentifier" +
+      "\022\021\n\tprincipal\030\007 \001(\t\022\031\n\021short_description" +
+      "\030\010 \001(\t\022+\n\ruser_metadata\030\n \001(\0132\024.google.p" +
+      "rotobuf.Any\022\025\n\rmetadata_type\030\013 \001(\t\"G\n\026Cr" +
+      "eateArtifactResponse\022-\n\010artifact\030\001 \001(\0132\033" +
+      ".flyteidl.artifact.Artifact\"R\n\022GetArtifa" +
+      "ctRequest\022+\n\005query\030\001 \001(\0132\034.flyteidl.core" +
+      ".ArtifactQuery\022\017\n\007details\030\002 \001(\010\"D\n\023GetAr" +
+      "tifactResponse\022-\n\010artifact\030\001 \001(\0132\033.flyte" +
+      "idl.artifact.Artifact\";\n\030ListArtifactNam" +
+      "esRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001" +
+      "(\t\"N\n\031ListArtifactNamesResponse\0221\n\rartif" +
+      "act_keys\030\001 \003(\0132\032.flyteidl.core.ArtifactK" +
+      "ey\"y\n\026SearchArtifactsRequest\0220\n\014artifact" +
+      "_key\030\001 \001(\0132\032.flyteidl.core.ArtifactKey\022\017" +
+      "\n\007filters\030\002 \001(\t\022\r\n\005token\030\003 \001(\t\022\r\n\005limit\030" +
+      "\004 \001(\005\"I\n\027SearchArtifactsResponse\022.\n\tarti" +
+      "facts\030\001 \003(\0132\033.flyteidl.artifact.Artifact" +
+      "\"a\n\rAddTagRequest\022.\n\013artifact_id\030\001 \001(\0132\031" +
+      ".flyteidl.core.ArtifactID\022\r\n\005value\030\002 \001(\t" +
+      "\022\021\n\toverwrite\030\003 \001(\010\"\020\n\016AddTagResponse\"O\n" +
+      "\024CreateTriggerRequest\0227\n\023trigger_launch_" +
+      "plan\030\001 \001(\0132\032.flyteidl.admin.LaunchPlan\"\027" +
+      "\n\025CreateTriggerResponse\"E\n\024DeleteTrigger" +
+      "Request\022-\n\ntrigger_id\030\001 \001(\0132\031.flyteidl.c" +
+      "ore.Identifier\"\027\n\025DeleteTriggerResponse\"" +
+      "m\n\020ArtifactProducer\022,\n\tentity_id\030\001 \001(\0132\031" +
+      ".flyteidl.core.Identifier\022+\n\007outputs\030\002 \001" +
+      "(\0132\032.flyteidl.core.VariableMap\"Q\n\027Regist" +
+      "erProducerRequest\0226\n\tproducers\030\001 \003(\0132#.f" +
+      "lyteidl.artifact.ArtifactProducer\"m\n\020Art" +
+      "ifactConsumer\022,\n\tentity_id\030\001 \001(\0132\031.flyte" +
+      "idl.core.Identifier\022+\n\006inputs\030\002 \001(\0132\033.fl" +
+      "yteidl.core.ParameterMap\"Q\n\027RegisterCons" +
+      "umerRequest\0226\n\tconsumers\030\001 \003(\0132#.flyteid" +
+      "l.artifact.ArtifactConsumer\"\022\n\020RegisterR" +
+      "esponse\"\377\001\n\021CloudEventRequest\022O\n\030workflo" +
+      "w_execution_event\030\001 \001(\0132+.flyteidl.event" +
+      ".CloudEventWorkflowExecutionH\000\022G\n\024task_e" +
+      "xecution_event\030\002 \001(\0132\'.flyteidl.event.Cl" +
+      "oudEventTaskExecutionH\000\022G\n\024node_executio" +
+      "n_event\030\003 \001(\0132\'.flyteidl.event.CloudEven" +
+      "tNodeExecutionH\000B\007\n\005event\"\024\n\022CloudEventR" +
+      "esponse2\273\013\n\020ArtifactRegistry\022g\n\016CreateAr" +
+      "tifact\022(.flyteidl.artifact.CreateArtifac" +
+      "tRequest\032).flyteidl.artifact.CreateArtif" +
+      "actResponse\"\000\022\315\004\n\013GetArtifact\022%.flyteidl" +
+      ".artifact.GetArtifactRequest\032&.flyteidl." +
+      "artifact.GetArtifactResponse\"\356\003\202\323\344\223\002\347\003\022\022" +
+      "/data/v1/artifactsZ\252\001\022\247\001/data/v1/artifac" +
+      "t/id/{query.artifact_id.artifact_key.pro" +
+      "ject}/{query.artifact_id.artifact_key.do" +
+      "main}/{query.artifact_id.artifact_key.na" +
+      "me}/{query.artifact_id.version}Z\216\001\022\213\001/da" +
+      "ta/v1/artifact/id/{query.artifact_id.art" +
+      "ifact_key.project}/{query.artifact_id.ar" +
+      "tifact_key.domain}/{query.artifact_id.ar" +
+      "tifact_key.name}Z\222\001\022\217\001/data/v1/artifact/" +
+      "tag/{query.artifact_tag.artifact_key.pro" +
+      "ject}/{query.artifact_tag.artifact_key.d" +
+      "omain}/{query.artifact_tag.artifact_key." +
+      "name}\022\202\002\n\017SearchArtifacts\022).flyteidl.art" +
+      "ifact.SearchArtifactsRequest\032*.flyteidl." +
+      "artifact.SearchArtifactsResponse\"\227\001\202\323\344\223\002" +
+      "\220\001\022O/data/v1/query/{artifact_key.project" +
+      "}/{artifact_key.domain}/{artifact_key.na" +
+      "me}Z=\022;/data/v1/query/{artifact_key.proj" +
+      "ect}/{artifact_key.domain}\022d\n\rCreateTrig" +
+      "ger\022\'.flyteidl.artifact.CreateTriggerReq" +
+      "uest\032(.flyteidl.artifact.CreateTriggerRe" +
+      "sponse\"\000\022d\n\rDeleteTrigger\022\'.flyteidl.art" +
+      "ifact.DeleteTriggerRequest\032(.flyteidl.ar" +
+      "tifact.DeleteTriggerResponse\"\000\022O\n\006AddTag" +
+      "\022 .flyteidl.artifact.AddTagRequest\032!.fly" +
+      "teidl.artifact.AddTagResponse\"\000\022e\n\020Regis" +
+      "terProducer\022*.flyteidl.artifact.Register" +
+      "ProducerRequest\032#.flyteidl.artifact.Regi" +
+      "sterResponse\"\000\022e\n\020RegisterConsumer\022*.fly" +
+      "teidl.artifact.RegisterConsumerRequest\032#" +
+      ".flyteidl.artifact.RegisterResponse\"\000B@Z" +
+      ">github.com/flyteorg/flyte/flyteidl/gen/" +
+      "pb-go/flyteidl/artifactb\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) {
@@ -16713,12 +18492,14 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
       .internalBuildGeneratedFileFrom(descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
           com.google.protobuf.AnyProto.getDescriptor(),
+          com.google.api.AnnotationsProto.getDescriptor(),
           flyteidl.admin.LaunchPlanOuterClass.getDescriptor(),
           flyteidl.core.Literals.getDescriptor(),
           flyteidl.core.Types.getDescriptor(),
           flyteidl.core.IdentifierOuterClass.getDescriptor(),
           flyteidl.core.ArtifactId.getDescriptor(),
           flyteidl.core.Interface.getDescriptor(),
+          flyteidl.event.Cloudevents.getDescriptor(),
         }, assigner);
     internal_static_flyteidl_artifact_Artifact_descriptor =
       getDescriptor().getMessageTypes().get(0);
@@ -16743,7 +18524,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
     internal_static_flyteidl_artifact_ArtifactSpec_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_flyteidl_artifact_ArtifactSpec_descriptor,
-        new java.lang.String[] { "Value", "Type", "TaskExecution", "Execution", "Principal", "ShortDescription", "LongDescription", "UserMetadata", "MetadataType", });
+        new java.lang.String[] { "Value", "Type", "TaskExecution", "Execution", "Principal", "ShortDescription", "UserMetadata", "MetadataType", });
     internal_static_flyteidl_artifact_CreateArtifactResponse_descriptor =
       getDescriptor().getMessageTypes().get(3);
     internal_static_flyteidl_artifact_CreateArtifactResponse_fieldAccessorTable = new
@@ -16774,17 +18555,17 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_flyteidl_artifact_ListArtifactNamesResponse_descriptor,
         new java.lang.String[] { "ArtifactKeys", });
-    internal_static_flyteidl_artifact_ListArtifactsRequest_descriptor =
+    internal_static_flyteidl_artifact_SearchArtifactsRequest_descriptor =
       getDescriptor().getMessageTypes().get(8);
-    internal_static_flyteidl_artifact_ListArtifactsRequest_fieldAccessorTable = new
+    internal_static_flyteidl_artifact_SearchArtifactsRequest_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_artifact_ListArtifactsRequest_descriptor,
-        new java.lang.String[] { "ArtifactKey", });
-    internal_static_flyteidl_artifact_ListArtifactsResponse_descriptor =
+        internal_static_flyteidl_artifact_SearchArtifactsRequest_descriptor,
+        new java.lang.String[] { "ArtifactKey", "Filters", "Token", "Limit", });
+    internal_static_flyteidl_artifact_SearchArtifactsResponse_descriptor =
       getDescriptor().getMessageTypes().get(9);
-    internal_static_flyteidl_artifact_ListArtifactsResponse_fieldAccessorTable = new
+    internal_static_flyteidl_artifact_SearchArtifactsResponse_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_flyteidl_artifact_ListArtifactsResponse_descriptor,
+        internal_static_flyteidl_artifact_SearchArtifactsResponse_descriptor,
         new java.lang.String[] { "Artifacts", });
     internal_static_flyteidl_artifact_AddTagRequest_descriptor =
       getDescriptor().getMessageTypes().get(10);
@@ -16852,13 +18633,32 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_flyteidl_artifact_RegisterResponse_descriptor,
         new java.lang.String[] { });
+    internal_static_flyteidl_artifact_CloudEventRequest_descriptor =
+      getDescriptor().getMessageTypes().get(21);
+    internal_static_flyteidl_artifact_CloudEventRequest_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_flyteidl_artifact_CloudEventRequest_descriptor,
+        new java.lang.String[] { "WorkflowExecutionEvent", "TaskExecutionEvent", "NodeExecutionEvent", "Event", });
+    internal_static_flyteidl_artifact_CloudEventResponse_descriptor =
+      getDescriptor().getMessageTypes().get(22);
+    internal_static_flyteidl_artifact_CloudEventResponse_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_flyteidl_artifact_CloudEventResponse_descriptor,
+        new java.lang.String[] { });
+    com.google.protobuf.ExtensionRegistry registry =
+        com.google.protobuf.ExtensionRegistry.newInstance();
+    registry.add(com.google.api.AnnotationsProto.http);
+    com.google.protobuf.Descriptors.FileDescriptor
+        .internalUpdateFileDescriptor(descriptor, registry);
     com.google.protobuf.AnyProto.getDescriptor();
+    com.google.api.AnnotationsProto.getDescriptor();
     flyteidl.admin.LaunchPlanOuterClass.getDescriptor();
     flyteidl.core.Literals.getDescriptor();
     flyteidl.core.Types.getDescriptor();
     flyteidl.core.IdentifierOuterClass.getDescriptor();
     flyteidl.core.ArtifactId.getDescriptor();
     flyteidl.core.Interface.getDescriptor();
+    flyteidl.event.Cloudevents.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/flyteidl/gen/pb-java/flyteidl/event/Cloudevents.java b/flyteidl/gen/pb-java/flyteidl/event/Cloudevents.java
index 6f2fd2e654..fc771cc134 100644
--- a/flyteidl/gen/pb-java/flyteidl/event/Cloudevents.java
+++ b/flyteidl/gen/pb-java/flyteidl/event/Cloudevents.java
@@ -147,6 +147,37 @@ flyteidl.core.ArtifactId.ArtifactIDOrBuilder getArtifactIdsOrBuilder(
      * .flyteidl.core.WorkflowExecutionIdentifier reference_execution = 8;
      */
     flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder getReferenceExecutionOrBuilder();
+
+    /**
+     * 
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + boolean hasLaunchPlanId(); + /** + *
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + flyteidl.core.IdentifierOuterClass.Identifier getLaunchPlanId(); + /** + *
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder getLaunchPlanIdOrBuilder(); } /** *
@@ -293,6 +324,19 @@ private CloudEventWorkflowExecution(
 
               break;
             }
+            case 74: {
+              flyteidl.core.IdentifierOuterClass.Identifier.Builder subBuilder = null;
+              if (launchPlanId_ != null) {
+                subBuilder = launchPlanId_.toBuilder();
+              }
+              launchPlanId_ = input.readMessage(flyteidl.core.IdentifierOuterClass.Identifier.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(launchPlanId_);
+                launchPlanId_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -526,6 +570,45 @@ public flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder g
       return getReferenceExecution();
     }
 
+    public static final int LAUNCH_PLAN_ID_FIELD_NUMBER = 9;
+    private flyteidl.core.IdentifierOuterClass.Identifier launchPlanId_;
+    /**
+     * 
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public boolean hasLaunchPlanId() { + return launchPlanId_ != null; + } + /** + *
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public flyteidl.core.IdentifierOuterClass.Identifier getLaunchPlanId() { + return launchPlanId_ == null ? flyteidl.core.IdentifierOuterClass.Identifier.getDefaultInstance() : launchPlanId_; + } + /** + *
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder getLaunchPlanIdOrBuilder() { + return getLaunchPlanId(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -564,6 +647,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (referenceExecution_ != null) { output.writeMessage(8, getReferenceExecution()); } + if (launchPlanId_ != null) { + output.writeMessage(9, getLaunchPlanId()); + } unknownFields.writeTo(output); } @@ -605,6 +691,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(8, getReferenceExecution()); } + if (launchPlanId_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(9, getLaunchPlanId()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -657,6 +747,11 @@ public boolean equals(final java.lang.Object obj) { if (!getReferenceExecution() .equals(other.getReferenceExecution())) return false; } + if (hasLaunchPlanId() != other.hasLaunchPlanId()) return false; + if (hasLaunchPlanId()) { + if (!getLaunchPlanId() + .equals(other.getLaunchPlanId())) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -700,6 +795,10 @@ public int hashCode() { hash = (37 * hash) + REFERENCE_EXECUTION_FIELD_NUMBER; hash = (53 * hash) + getReferenceExecution().hashCode(); } + if (hasLaunchPlanId()) { + hash = (37 * hash) + LAUNCH_PLAN_ID_FIELD_NUMBER; + hash = (53 * hash) + getLaunchPlanId().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -887,6 +986,12 @@ public Builder clear() { referenceExecution_ = null; referenceExecutionBuilder_ = null; } + if (launchPlanIdBuilder_ == null) { + launchPlanId_ = null; + } else { + launchPlanId_ = null; + launchPlanIdBuilder_ = null; + } return this; } @@ -959,6 +1064,11 @@ public flyteidl.event.Cloudevents.CloudEventWorkflowExecution buildPartial() { } else { result.referenceExecution_ = referenceExecutionBuilder_.build(); } + if (launchPlanIdBuilder_ == null) { + result.launchPlanId_ = launchPlanId_; + } else { + result.launchPlanId_ = launchPlanIdBuilder_.build(); + } result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -1055,6 +1165,9 @@ public Builder mergeFrom(flyteidl.event.Cloudevents.CloudEventWorkflowExecution if (other.hasReferenceExecution()) { mergeReferenceExecution(other.getReferenceExecution()); } + if (other.hasLaunchPlanId()) { + mergeLaunchPlanId(other.getLaunchPlanId()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -2188,6 +2301,177 @@ public flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder g } return referenceExecutionBuilder_; } + + private flyteidl.core.IdentifierOuterClass.Identifier launchPlanId_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.Identifier, flyteidl.core.IdentifierOuterClass.Identifier.Builder, flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder> launchPlanIdBuilder_; + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public boolean hasLaunchPlanId() { + return launchPlanIdBuilder_ != null || launchPlanId_ != null; + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public flyteidl.core.IdentifierOuterClass.Identifier getLaunchPlanId() { + if (launchPlanIdBuilder_ == null) { + return launchPlanId_ == null ? flyteidl.core.IdentifierOuterClass.Identifier.getDefaultInstance() : launchPlanId_; + } else { + return launchPlanIdBuilder_.getMessage(); + } + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public Builder setLaunchPlanId(flyteidl.core.IdentifierOuterClass.Identifier value) { + if (launchPlanIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + launchPlanId_ = value; + onChanged(); + } else { + launchPlanIdBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public Builder setLaunchPlanId( + flyteidl.core.IdentifierOuterClass.Identifier.Builder builderForValue) { + if (launchPlanIdBuilder_ == null) { + launchPlanId_ = builderForValue.build(); + onChanged(); + } else { + launchPlanIdBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public Builder mergeLaunchPlanId(flyteidl.core.IdentifierOuterClass.Identifier value) { + if (launchPlanIdBuilder_ == null) { + if (launchPlanId_ != null) { + launchPlanId_ = + flyteidl.core.IdentifierOuterClass.Identifier.newBuilder(launchPlanId_).mergeFrom(value).buildPartial(); + } else { + launchPlanId_ = value; + } + onChanged(); + } else { + launchPlanIdBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public Builder clearLaunchPlanId() { + if (launchPlanIdBuilder_ == null) { + launchPlanId_ = null; + onChanged(); + } else { + launchPlanId_ = null; + launchPlanIdBuilder_ = null; + } + + return this; + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public flyteidl.core.IdentifierOuterClass.Identifier.Builder getLaunchPlanIdBuilder() { + + onChanged(); + return getLaunchPlanIdFieldBuilder().getBuilder(); + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder getLaunchPlanIdOrBuilder() { + if (launchPlanIdBuilder_ != null) { + return launchPlanIdBuilder_.getMessageOrBuilder(); + } else { + return launchPlanId_ == null ? + flyteidl.core.IdentifierOuterClass.Identifier.getDefaultInstance() : launchPlanId_; + } + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.Identifier, flyteidl.core.IdentifierOuterClass.Identifier.Builder, flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder> + getLaunchPlanIdFieldBuilder() { + if (launchPlanIdBuilder_ == null) { + launchPlanIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.Identifier, flyteidl.core.IdentifierOuterClass.Identifier.Builder, flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder>( + getLaunchPlanId(), + getParentForChildren(), + isClean()); + launchPlanId_ = null; + } + return launchPlanIdBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -3004,6 +3288,37 @@ flyteidl.core.ArtifactId.ArtifactIDOrBuilder getArtifactIdsOrBuilder( * .flyteidl.core.WorkflowExecutionIdentifier reference_execution = 8; */ flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder getReferenceExecutionOrBuilder(); + + /** + *
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + boolean hasLaunchPlanId(); + /** + *
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + flyteidl.core.IdentifierOuterClass.Identifier getLaunchPlanId(); + /** + *
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder getLaunchPlanIdOrBuilder(); } /** * Protobuf type {@code flyteidl.event.CloudEventTaskExecution} @@ -3145,6 +3460,19 @@ private CloudEventTaskExecution( break; } + case 74: { + flyteidl.core.IdentifierOuterClass.Identifier.Builder subBuilder = null; + if (launchPlanId_ != null) { + subBuilder = launchPlanId_.toBuilder(); + } + launchPlanId_ = input.readMessage(flyteidl.core.IdentifierOuterClass.Identifier.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(launchPlanId_); + launchPlanId_ = subBuilder.buildPartial(); + } + + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -3402,6 +3730,45 @@ public flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder g return getReferenceExecution(); } + public static final int LAUNCH_PLAN_ID_FIELD_NUMBER = 9; + private flyteidl.core.IdentifierOuterClass.Identifier launchPlanId_; + /** + *
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public boolean hasLaunchPlanId() { + return launchPlanId_ != null; + } + /** + *
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public flyteidl.core.IdentifierOuterClass.Identifier getLaunchPlanId() { + return launchPlanId_ == null ? flyteidl.core.IdentifierOuterClass.Identifier.getDefaultInstance() : launchPlanId_; + } + /** + *
+     * The ID of the LP that generated the execution that generated the Artifact.
+     * Here for provenance information.
+     * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+     * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder getLaunchPlanIdOrBuilder() { + return getLaunchPlanId(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -3440,6 +3807,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (referenceExecution_ != null) { output.writeMessage(8, getReferenceExecution()); } + if (launchPlanId_ != null) { + output.writeMessage(9, getLaunchPlanId()); + } unknownFields.writeTo(output); } @@ -3481,6 +3851,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(8, getReferenceExecution()); } + if (launchPlanId_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(9, getLaunchPlanId()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -3533,6 +3907,11 @@ public boolean equals(final java.lang.Object obj) { if (!getReferenceExecution() .equals(other.getReferenceExecution())) return false; } + if (hasLaunchPlanId() != other.hasLaunchPlanId()) return false; + if (hasLaunchPlanId()) { + if (!getLaunchPlanId() + .equals(other.getLaunchPlanId())) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -3576,6 +3955,10 @@ public int hashCode() { hash = (37 * hash) + REFERENCE_EXECUTION_FIELD_NUMBER; hash = (53 * hash) + getReferenceExecution().hashCode(); } + if (hasLaunchPlanId()) { + hash = (37 * hash) + LAUNCH_PLAN_ID_FIELD_NUMBER; + hash = (53 * hash) + getLaunchPlanId().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -3758,6 +4141,12 @@ public Builder clear() { referenceExecution_ = null; referenceExecutionBuilder_ = null; } + if (launchPlanIdBuilder_ == null) { + launchPlanId_ = null; + } else { + launchPlanId_ = null; + launchPlanIdBuilder_ = null; + } return this; } @@ -3830,6 +4219,11 @@ public flyteidl.event.Cloudevents.CloudEventTaskExecution buildPartial() { } else { result.referenceExecution_ = referenceExecutionBuilder_.build(); } + if (launchPlanIdBuilder_ == null) { + result.launchPlanId_ = launchPlanId_; + } else { + result.launchPlanId_ = launchPlanIdBuilder_.build(); + } result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -3926,6 +4320,9 @@ public Builder mergeFrom(flyteidl.event.Cloudevents.CloudEventTaskExecution othe if (other.hasReferenceExecution()) { mergeReferenceExecution(other.getReferenceExecution()); } + if (other.hasLaunchPlanId()) { + mergeLaunchPlanId(other.getLaunchPlanId()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -5131,6 +5528,177 @@ public flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder g } return referenceExecutionBuilder_; } + + private flyteidl.core.IdentifierOuterClass.Identifier launchPlanId_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.Identifier, flyteidl.core.IdentifierOuterClass.Identifier.Builder, flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder> launchPlanIdBuilder_; + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public boolean hasLaunchPlanId() { + return launchPlanIdBuilder_ != null || launchPlanId_ != null; + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public flyteidl.core.IdentifierOuterClass.Identifier getLaunchPlanId() { + if (launchPlanIdBuilder_ == null) { + return launchPlanId_ == null ? flyteidl.core.IdentifierOuterClass.Identifier.getDefaultInstance() : launchPlanId_; + } else { + return launchPlanIdBuilder_.getMessage(); + } + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public Builder setLaunchPlanId(flyteidl.core.IdentifierOuterClass.Identifier value) { + if (launchPlanIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + launchPlanId_ = value; + onChanged(); + } else { + launchPlanIdBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public Builder setLaunchPlanId( + flyteidl.core.IdentifierOuterClass.Identifier.Builder builderForValue) { + if (launchPlanIdBuilder_ == null) { + launchPlanId_ = builderForValue.build(); + onChanged(); + } else { + launchPlanIdBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public Builder mergeLaunchPlanId(flyteidl.core.IdentifierOuterClass.Identifier value) { + if (launchPlanIdBuilder_ == null) { + if (launchPlanId_ != null) { + launchPlanId_ = + flyteidl.core.IdentifierOuterClass.Identifier.newBuilder(launchPlanId_).mergeFrom(value).buildPartial(); + } else { + launchPlanId_ = value; + } + onChanged(); + } else { + launchPlanIdBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public Builder clearLaunchPlanId() { + if (launchPlanIdBuilder_ == null) { + launchPlanId_ = null; + onChanged(); + } else { + launchPlanId_ = null; + launchPlanIdBuilder_ = null; + } + + return this; + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public flyteidl.core.IdentifierOuterClass.Identifier.Builder getLaunchPlanIdBuilder() { + + onChanged(); + return getLaunchPlanIdFieldBuilder().getBuilder(); + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + public flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder getLaunchPlanIdOrBuilder() { + if (launchPlanIdBuilder_ != null) { + return launchPlanIdBuilder_.getMessageOrBuilder(); + } else { + return launchPlanId_ == null ? + flyteidl.core.IdentifierOuterClass.Identifier.getDefaultInstance() : launchPlanId_; + } + } + /** + *
+       * The ID of the LP that generated the execution that generated the Artifact.
+       * Here for provenance information.
+       * Launch plan IDs are easier to get than workflow IDs so we'll use these for now.
+       * 
+ * + * .flyteidl.core.Identifier launch_plan_id = 9; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.Identifier, flyteidl.core.IdentifierOuterClass.Identifier.Builder, flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder> + getLaunchPlanIdFieldBuilder() { + if (launchPlanIdBuilder_ == null) { + launchPlanIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.Identifier, flyteidl.core.IdentifierOuterClass.Identifier.Builder, flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder>( + getLaunchPlanId(), + getParentForChildren(), + isClean()); + launchPlanId_ = null; + } + return launchPlanIdBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -7081,7 +7649,7 @@ public flyteidl.event.Cloudevents.CloudEventExecutionStart getDefaultInstanceFor "flyteidl/core/literals.proto\032\035flyteidl/c" + "ore/interface.proto\032\037flyteidl/core/artif" + "act_id.proto\032\036flyteidl/core/identifier.p" + - "roto\032\037google/protobuf/timestamp.proto\"\343\003" + + "roto\032\037google/protobuf/timestamp.proto\"\226\004" + "\n\033CloudEventWorkflowExecution\0229\n\traw_eve" + "nt\030\001 \001(\0132&.flyteidl.event.WorkflowExecut" + "ionEvent\022.\n\013output_data\030\002 \001(\0132\031.flyteidl" + @@ -7094,29 +7662,32 @@ public flyteidl.event.Cloudevents.CloudEventExecutionStart getDefaultInstanceFor "tion\030\007 \001(\0132&.flyteidl.core.NodeExecution" + "Identifier\022G\n\023reference_execution\030\010 \001(\0132" + "*.flyteidl.core.WorkflowExecutionIdentif" + - "ier\"P\n\027CloudEventNodeExecution\0225\n\traw_ev" + - "ent\030\001 \001(\0132\".flyteidl.event.NodeExecution" + - "Event\"\333\003\n\027CloudEventTaskExecution\0225\n\traw" + - "_event\030\001 \001(\0132\".flyteidl.event.TaskExecut" + - "ionEvent\022.\n\013output_data\030\002 \001(\0132\031.flyteidl" + - ".core.LiteralMap\0227\n\020output_interface\030\003 \001" + - "(\0132\035.flyteidl.core.TypedInterface\022-\n\ninp" + - "ut_data\030\004 \001(\0132\031.flyteidl.core.LiteralMap" + - "\0220\n\014scheduled_at\030\005 \001(\0132\032.google.protobuf" + - ".Timestamp\022/\n\014artifact_ids\030\006 \003(\0132\031.flyte" + - "idl.core.ArtifactID\022E\n\025parent_node_execu" + - "tion\030\007 \001(\0132&.flyteidl.core.NodeExecution" + - "Identifier\022G\n\023reference_execution\030\010 \001(\0132" + - "*.flyteidl.core.WorkflowExecutionIdentif" + - "ier\"\207\002\n\030CloudEventExecutionStart\022@\n\014exec" + - "ution_id\030\001 \001(\0132*.flyteidl.core.WorkflowE" + - "xecutionIdentifier\0221\n\016launch_plan_id\030\002 \001" + - "(\0132\031.flyteidl.core.Identifier\022.\n\013workflo" + - "w_id\030\003 \001(\0132\031.flyteidl.core.Identifier\022/\n" + - "\014artifact_ids\030\004 \003(\0132\031.flyteidl.core.Arti" + - "factID\022\025\n\rartifact_keys\030\005 \003(\tB=Z;github." + - "com/flyteorg/flyte/flyteidl/gen/pb-go/fl" + - "yteidl/eventb\006proto3" + "ier\0221\n\016launch_plan_id\030\t \001(\0132\031.flyteidl.c" + + "ore.Identifier\"P\n\027CloudEventNodeExecutio" + + "n\0225\n\traw_event\030\001 \001(\0132\".flyteidl.event.No" + + "deExecutionEvent\"\216\004\n\027CloudEventTaskExecu" + + "tion\0225\n\traw_event\030\001 \001(\0132\".flyteidl.event" + + ".TaskExecutionEvent\022.\n\013output_data\030\002 \001(\013" + + "2\031.flyteidl.core.LiteralMap\0227\n\020output_in" + + "terface\030\003 \001(\0132\035.flyteidl.core.TypedInter" + + "face\022-\n\ninput_data\030\004 \001(\0132\031.flyteidl.core" + + ".LiteralMap\0220\n\014scheduled_at\030\005 \001(\0132\032.goog" + + "le.protobuf.Timestamp\022/\n\014artifact_ids\030\006 " + + "\003(\0132\031.flyteidl.core.ArtifactID\022E\n\025parent" + + "_node_execution\030\007 \001(\0132&.flyteidl.core.No" + + "deExecutionIdentifier\022G\n\023reference_execu" + + "tion\030\010 \001(\0132*.flyteidl.core.WorkflowExecu" + + "tionIdentifier\0221\n\016launch_plan_id\030\t \001(\0132\031" + + ".flyteidl.core.Identifier\"\207\002\n\030CloudEvent" + + "ExecutionStart\022@\n\014execution_id\030\001 \001(\0132*.f" + + "lyteidl.core.WorkflowExecutionIdentifier" + + "\0221\n\016launch_plan_id\030\002 \001(\0132\031.flyteidl.core" + + ".Identifier\022.\n\013workflow_id\030\003 \001(\0132\031.flyte" + + "idl.core.Identifier\022/\n\014artifact_ids\030\004 \003(" + + "\0132\031.flyteidl.core.ArtifactID\022\025\n\rartifact" + + "_keys\030\005 \003(\tB=Z;github.com/flyteorg/flyte" + + "/flyteidl/gen/pb-go/flyteidl/eventb\006prot" + + "o3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -7141,7 +7712,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_event_CloudEventWorkflowExecution_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_event_CloudEventWorkflowExecution_descriptor, - new java.lang.String[] { "RawEvent", "OutputData", "OutputInterface", "InputData", "ScheduledAt", "ArtifactIds", "ParentNodeExecution", "ReferenceExecution", }); + new java.lang.String[] { "RawEvent", "OutputData", "OutputInterface", "InputData", "ScheduledAt", "ArtifactIds", "ParentNodeExecution", "ReferenceExecution", "LaunchPlanId", }); internal_static_flyteidl_event_CloudEventNodeExecution_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_flyteidl_event_CloudEventNodeExecution_fieldAccessorTable = new @@ -7153,7 +7724,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_event_CloudEventTaskExecution_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_event_CloudEventTaskExecution_descriptor, - new java.lang.String[] { "RawEvent", "OutputData", "OutputInterface", "InputData", "ScheduledAt", "ArtifactIds", "ParentNodeExecution", "ReferenceExecution", }); + new java.lang.String[] { "RawEvent", "OutputData", "OutputInterface", "InputData", "ScheduledAt", "ArtifactIds", "ParentNodeExecution", "ReferenceExecution", "LaunchPlanId", }); internal_static_flyteidl_event_CloudEventExecutionStart_descriptor = getDescriptor().getMessageTypes().get(3); internal_static_flyteidl_event_CloudEventExecutionStart_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index 05d44fccab..48319c3ef4 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -7297,6 +7297,9 @@ export namespace flyteidl { /** CloudEventWorkflowExecution referenceExecution */ referenceExecution?: (flyteidl.core.IWorkflowExecutionIdentifier|null); + + /** CloudEventWorkflowExecution launchPlanId */ + launchPlanId?: (flyteidl.core.IIdentifier|null); } /** Represents a CloudEventWorkflowExecution. */ @@ -7332,6 +7335,9 @@ export namespace flyteidl { /** CloudEventWorkflowExecution referenceExecution. */ public referenceExecution?: (flyteidl.core.IWorkflowExecutionIdentifier|null); + /** CloudEventWorkflowExecution launchPlanId. */ + public launchPlanId?: (flyteidl.core.IIdentifier|null); + /** * Creates a new CloudEventWorkflowExecution instance using the specified properties. * @param [properties] Properties to set @@ -7443,6 +7449,9 @@ export namespace flyteidl { /** CloudEventTaskExecution referenceExecution */ referenceExecution?: (flyteidl.core.IWorkflowExecutionIdentifier|null); + + /** CloudEventTaskExecution launchPlanId */ + launchPlanId?: (flyteidl.core.IIdentifier|null); } /** Represents a CloudEventTaskExecution. */ @@ -7478,6 +7487,9 @@ export namespace flyteidl { /** CloudEventTaskExecution referenceExecution. */ public referenceExecution?: (flyteidl.core.IWorkflowExecutionIdentifier|null); + /** CloudEventTaskExecution launchPlanId. */ + public launchPlanId?: (flyteidl.core.IIdentifier|null); + /** * Creates a new CloudEventTaskExecution instance using the specified properties. * @param [properties] Properties to set @@ -22426,9 +22438,6 @@ export namespace flyteidl { /** ArtifactSpec shortDescription */ shortDescription?: (string|null); - /** ArtifactSpec longDescription */ - longDescription?: (string|null); - /** ArtifactSpec userMetadata */ userMetadata?: (google.protobuf.IAny|null); @@ -22463,9 +22472,6 @@ export namespace flyteidl { /** ArtifactSpec shortDescription. */ public shortDescription: string; - /** ArtifactSpec longDescription. */ - public longDescription: string; - /** ArtifactSpec userMetadata. */ public userMetadata?: (google.protobuf.IAny|null); @@ -22777,104 +22783,122 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a ListArtifactsRequest. */ - interface IListArtifactsRequest { + /** Properties of a SearchArtifactsRequest. */ + interface ISearchArtifactsRequest { - /** ListArtifactsRequest artifactKey */ + /** SearchArtifactsRequest artifactKey */ artifactKey?: (flyteidl.core.IArtifactKey|null); + + /** SearchArtifactsRequest filters */ + filters?: (string|null); + + /** SearchArtifactsRequest token */ + token?: (string|null); + + /** SearchArtifactsRequest limit */ + limit?: (number|null); } - /** Represents a ListArtifactsRequest. */ - class ListArtifactsRequest implements IListArtifactsRequest { + /** Represents a SearchArtifactsRequest. */ + class SearchArtifactsRequest implements ISearchArtifactsRequest { /** - * Constructs a new ListArtifactsRequest. + * Constructs a new SearchArtifactsRequest. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.artifact.IListArtifactsRequest); + constructor(properties?: flyteidl.artifact.ISearchArtifactsRequest); - /** ListArtifactsRequest artifactKey. */ + /** SearchArtifactsRequest artifactKey. */ public artifactKey?: (flyteidl.core.IArtifactKey|null); + /** SearchArtifactsRequest filters. */ + public filters: string; + + /** SearchArtifactsRequest token. */ + public token: string; + + /** SearchArtifactsRequest limit. */ + public limit: number; + /** - * Creates a new ListArtifactsRequest instance using the specified properties. + * Creates a new SearchArtifactsRequest instance using the specified properties. * @param [properties] Properties to set - * @returns ListArtifactsRequest instance + * @returns SearchArtifactsRequest instance */ - public static create(properties?: flyteidl.artifact.IListArtifactsRequest): flyteidl.artifact.ListArtifactsRequest; + public static create(properties?: flyteidl.artifact.ISearchArtifactsRequest): flyteidl.artifact.SearchArtifactsRequest; /** - * Encodes the specified ListArtifactsRequest message. Does not implicitly {@link flyteidl.artifact.ListArtifactsRequest.verify|verify} messages. - * @param message ListArtifactsRequest message or plain object to encode + * Encodes the specified SearchArtifactsRequest message. Does not implicitly {@link flyteidl.artifact.SearchArtifactsRequest.verify|verify} messages. + * @param message SearchArtifactsRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.artifact.IListArtifactsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.artifact.ISearchArtifactsRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ListArtifactsRequest message from the specified reader or buffer. + * Decodes a SearchArtifactsRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ListArtifactsRequest + * @returns SearchArtifactsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.artifact.ListArtifactsRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.artifact.SearchArtifactsRequest; /** - * Verifies a ListArtifactsRequest message. + * Verifies a SearchArtifactsRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a ListArtifactsResponse. */ - interface IListArtifactsResponse { + /** Properties of a SearchArtifactsResponse. */ + interface ISearchArtifactsResponse { - /** ListArtifactsResponse artifacts */ + /** SearchArtifactsResponse artifacts */ artifacts?: (flyteidl.artifact.IArtifact[]|null); } - /** Represents a ListArtifactsResponse. */ - class ListArtifactsResponse implements IListArtifactsResponse { + /** Represents a SearchArtifactsResponse. */ + class SearchArtifactsResponse implements ISearchArtifactsResponse { /** - * Constructs a new ListArtifactsResponse. + * Constructs a new SearchArtifactsResponse. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.artifact.IListArtifactsResponse); + constructor(properties?: flyteidl.artifact.ISearchArtifactsResponse); - /** ListArtifactsResponse artifacts. */ + /** SearchArtifactsResponse artifacts. */ public artifacts: flyteidl.artifact.IArtifact[]; /** - * Creates a new ListArtifactsResponse instance using the specified properties. + * Creates a new SearchArtifactsResponse instance using the specified properties. * @param [properties] Properties to set - * @returns ListArtifactsResponse instance + * @returns SearchArtifactsResponse instance */ - public static create(properties?: flyteidl.artifact.IListArtifactsResponse): flyteidl.artifact.ListArtifactsResponse; + public static create(properties?: flyteidl.artifact.ISearchArtifactsResponse): flyteidl.artifact.SearchArtifactsResponse; /** - * Encodes the specified ListArtifactsResponse message. Does not implicitly {@link flyteidl.artifact.ListArtifactsResponse.verify|verify} messages. - * @param message ListArtifactsResponse message or plain object to encode + * Encodes the specified SearchArtifactsResponse message. Does not implicitly {@link flyteidl.artifact.SearchArtifactsResponse.verify|verify} messages. + * @param message SearchArtifactsResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.artifact.IListArtifactsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.artifact.ISearchArtifactsResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ListArtifactsResponse message from the specified reader or buffer. + * Decodes a SearchArtifactsResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ListArtifactsResponse + * @returns SearchArtifactsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.artifact.ListArtifactsResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.artifact.SearchArtifactsResponse; /** - * Verifies a ListArtifactsResponse message. + * Verifies a SearchArtifactsResponse message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ @@ -23453,6 +23477,119 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } + /** Properties of a CloudEventRequest. */ + interface ICloudEventRequest { + + /** CloudEventRequest workflowExecutionEvent */ + workflowExecutionEvent?: (flyteidl.event.ICloudEventWorkflowExecution|null); + + /** CloudEventRequest taskExecutionEvent */ + taskExecutionEvent?: (flyteidl.event.ICloudEventTaskExecution|null); + + /** CloudEventRequest nodeExecutionEvent */ + nodeExecutionEvent?: (flyteidl.event.ICloudEventNodeExecution|null); + } + + /** Represents a CloudEventRequest. */ + class CloudEventRequest implements ICloudEventRequest { + + /** + * Constructs a new CloudEventRequest. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.artifact.ICloudEventRequest); + + /** CloudEventRequest workflowExecutionEvent. */ + public workflowExecutionEvent?: (flyteidl.event.ICloudEventWorkflowExecution|null); + + /** CloudEventRequest taskExecutionEvent. */ + public taskExecutionEvent?: (flyteidl.event.ICloudEventTaskExecution|null); + + /** CloudEventRequest nodeExecutionEvent. */ + public nodeExecutionEvent?: (flyteidl.event.ICloudEventNodeExecution|null); + + /** CloudEventRequest event. */ + public event?: ("workflowExecutionEvent"|"taskExecutionEvent"|"nodeExecutionEvent"); + + /** + * Creates a new CloudEventRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns CloudEventRequest instance + */ + public static create(properties?: flyteidl.artifact.ICloudEventRequest): flyteidl.artifact.CloudEventRequest; + + /** + * Encodes the specified CloudEventRequest message. Does not implicitly {@link flyteidl.artifact.CloudEventRequest.verify|verify} messages. + * @param message CloudEventRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.artifact.ICloudEventRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CloudEventRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CloudEventRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.artifact.CloudEventRequest; + + /** + * Verifies a CloudEventRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + + /** Properties of a CloudEventResponse. */ + interface ICloudEventResponse { + } + + /** Represents a CloudEventResponse. */ + class CloudEventResponse implements ICloudEventResponse { + + /** + * Constructs a new CloudEventResponse. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.artifact.ICloudEventResponse); + + /** + * Creates a new CloudEventResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns CloudEventResponse instance + */ + public static create(properties?: flyteidl.artifact.ICloudEventResponse): flyteidl.artifact.CloudEventResponse; + + /** + * Encodes the specified CloudEventResponse message. Does not implicitly {@link flyteidl.artifact.CloudEventResponse.verify|verify} messages. + * @param message CloudEventResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.artifact.ICloudEventResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CloudEventResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CloudEventResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.artifact.CloudEventResponse; + + /** + * Verifies a CloudEventResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + /** Represents an ArtifactRegistry */ class ArtifactRegistry extends $protobuf.rpc.Service { @@ -23501,6 +23638,20 @@ export namespace flyteidl { */ public getArtifact(request: flyteidl.artifact.IGetArtifactRequest): Promise; + /** + * Calls SearchArtifacts. + * @param request SearchArtifactsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and SearchArtifactsResponse + */ + public searchArtifacts(request: flyteidl.artifact.ISearchArtifactsRequest, callback: flyteidl.artifact.ArtifactRegistry.SearchArtifactsCallback): void; + + /** + * Calls SearchArtifacts. + * @param request SearchArtifactsRequest message or plain object + * @returns Promise + */ + public searchArtifacts(request: flyteidl.artifact.ISearchArtifactsRequest): Promise; + /** * Calls CreateTrigger. * @param request CreateTriggerRequest message or plain object @@ -23588,6 +23739,13 @@ export namespace flyteidl { */ type GetArtifactCallback = (error: (Error|null), response?: flyteidl.artifact.GetArtifactResponse) => void; + /** + * Callback as used by {@link flyteidl.artifact.ArtifactRegistry#searchArtifacts}. + * @param error Error, if any + * @param [response] SearchArtifactsResponse + */ + type SearchArtifactsCallback = (error: (Error|null), response?: flyteidl.artifact.SearchArtifactsResponse) => void; + /** * Callback as used by {@link flyteidl.artifact.ArtifactRegistry#createTrigger}. * @param error Error, if any diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index dccd99555c..d0f09446f7 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -17581,6 +17581,7 @@ * @property {Array.|null} [artifactIds] CloudEventWorkflowExecution artifactIds * @property {flyteidl.core.INodeExecutionIdentifier|null} [parentNodeExecution] CloudEventWorkflowExecution parentNodeExecution * @property {flyteidl.core.IWorkflowExecutionIdentifier|null} [referenceExecution] CloudEventWorkflowExecution referenceExecution + * @property {flyteidl.core.IIdentifier|null} [launchPlanId] CloudEventWorkflowExecution launchPlanId */ /** @@ -17663,6 +17664,14 @@ */ CloudEventWorkflowExecution.prototype.referenceExecution = null; + /** + * CloudEventWorkflowExecution launchPlanId. + * @member {flyteidl.core.IIdentifier|null|undefined} launchPlanId + * @memberof flyteidl.event.CloudEventWorkflowExecution + * @instance + */ + CloudEventWorkflowExecution.prototype.launchPlanId = null; + /** * Creates a new CloudEventWorkflowExecution instance using the specified properties. * @function create @@ -17704,6 +17713,8 @@ $root.flyteidl.core.NodeExecutionIdentifier.encode(message.parentNodeExecution, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); if (message.referenceExecution != null && message.hasOwnProperty("referenceExecution")) $root.flyteidl.core.WorkflowExecutionIdentifier.encode(message.referenceExecution, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.launchPlanId != null && message.hasOwnProperty("launchPlanId")) + $root.flyteidl.core.Identifier.encode(message.launchPlanId, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); return writer; }; @@ -17751,6 +17762,9 @@ case 8: message.referenceExecution = $root.flyteidl.core.WorkflowExecutionIdentifier.decode(reader, reader.uint32()); break; + case 9: + message.launchPlanId = $root.flyteidl.core.Identifier.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -17814,6 +17828,11 @@ if (error) return "referenceExecution." + error; } + if (message.launchPlanId != null && message.hasOwnProperty("launchPlanId")) { + var error = $root.flyteidl.core.Identifier.verify(message.launchPlanId); + if (error) + return "launchPlanId." + error; + } return null; }; @@ -17946,6 +17965,7 @@ * @property {Array.|null} [artifactIds] CloudEventTaskExecution artifactIds * @property {flyteidl.core.INodeExecutionIdentifier|null} [parentNodeExecution] CloudEventTaskExecution parentNodeExecution * @property {flyteidl.core.IWorkflowExecutionIdentifier|null} [referenceExecution] CloudEventTaskExecution referenceExecution + * @property {flyteidl.core.IIdentifier|null} [launchPlanId] CloudEventTaskExecution launchPlanId */ /** @@ -18028,6 +18048,14 @@ */ CloudEventTaskExecution.prototype.referenceExecution = null; + /** + * CloudEventTaskExecution launchPlanId. + * @member {flyteidl.core.IIdentifier|null|undefined} launchPlanId + * @memberof flyteidl.event.CloudEventTaskExecution + * @instance + */ + CloudEventTaskExecution.prototype.launchPlanId = null; + /** * Creates a new CloudEventTaskExecution instance using the specified properties. * @function create @@ -18069,6 +18097,8 @@ $root.flyteidl.core.NodeExecutionIdentifier.encode(message.parentNodeExecution, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); if (message.referenceExecution != null && message.hasOwnProperty("referenceExecution")) $root.flyteidl.core.WorkflowExecutionIdentifier.encode(message.referenceExecution, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.launchPlanId != null && message.hasOwnProperty("launchPlanId")) + $root.flyteidl.core.Identifier.encode(message.launchPlanId, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); return writer; }; @@ -18116,6 +18146,9 @@ case 8: message.referenceExecution = $root.flyteidl.core.WorkflowExecutionIdentifier.decode(reader, reader.uint32()); break; + case 9: + message.launchPlanId = $root.flyteidl.core.Identifier.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -18179,6 +18212,11 @@ if (error) return "referenceExecution." + error; } + if (message.launchPlanId != null && message.hasOwnProperty("launchPlanId")) { + var error = $root.flyteidl.core.Identifier.verify(message.launchPlanId); + if (error) + return "launchPlanId." + error; + } return null; }; @@ -52315,7 +52353,6 @@ * @property {flyteidl.core.IWorkflowExecutionIdentifier|null} [execution] ArtifactSpec execution * @property {string|null} [principal] ArtifactSpec principal * @property {string|null} [shortDescription] ArtifactSpec shortDescription - * @property {string|null} [longDescription] ArtifactSpec longDescription * @property {google.protobuf.IAny|null} [userMetadata] ArtifactSpec userMetadata * @property {string|null} [metadataType] ArtifactSpec metadataType */ @@ -52383,14 +52420,6 @@ */ ArtifactSpec.prototype.shortDescription = ""; - /** - * ArtifactSpec longDescription. - * @member {string} longDescription - * @memberof flyteidl.artifact.ArtifactSpec - * @instance - */ - ArtifactSpec.prototype.longDescription = ""; - /** * ArtifactSpec userMetadata. * @member {google.protobuf.IAny|null|undefined} userMetadata @@ -52443,8 +52472,6 @@ writer.uint32(/* id 7, wireType 2 =*/58).string(message.principal); if (message.shortDescription != null && message.hasOwnProperty("shortDescription")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.shortDescription); - if (message.longDescription != null && message.hasOwnProperty("longDescription")) - writer.uint32(/* id 9, wireType 2 =*/74).string(message.longDescription); if (message.userMetadata != null && message.hasOwnProperty("userMetadata")) $root.google.protobuf.Any.encode(message.userMetadata, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); if (message.metadataType != null && message.hasOwnProperty("metadataType")) @@ -52488,9 +52515,6 @@ case 8: message.shortDescription = reader.string(); break; - case 9: - message.longDescription = reader.string(); - break; case 10: message.userMetadata = $root.google.protobuf.Any.decode(reader, reader.uint32()); break; @@ -52542,9 +52566,6 @@ if (message.shortDescription != null && message.hasOwnProperty("shortDescription")) if (!$util.isString(message.shortDescription)) return "shortDescription: string expected"; - if (message.longDescription != null && message.hasOwnProperty("longDescription")) - if (!$util.isString(message.longDescription)) - return "longDescription: string expected"; if (message.userMetadata != null && message.hasOwnProperty("userMetadata")) { var error = $root.google.protobuf.Any.verify(message.userMetadata); if (error) @@ -53159,24 +53180,27 @@ return ListArtifactNamesResponse; })(); - artifact.ListArtifactsRequest = (function() { + artifact.SearchArtifactsRequest = (function() { /** - * Properties of a ListArtifactsRequest. + * Properties of a SearchArtifactsRequest. * @memberof flyteidl.artifact - * @interface IListArtifactsRequest - * @property {flyteidl.core.IArtifactKey|null} [artifactKey] ListArtifactsRequest artifactKey + * @interface ISearchArtifactsRequest + * @property {flyteidl.core.IArtifactKey|null} [artifactKey] SearchArtifactsRequest artifactKey + * @property {string|null} [filters] SearchArtifactsRequest filters + * @property {string|null} [token] SearchArtifactsRequest token + * @property {number|null} [limit] SearchArtifactsRequest limit */ /** - * Constructs a new ListArtifactsRequest. + * Constructs a new SearchArtifactsRequest. * @memberof flyteidl.artifact - * @classdesc Represents a ListArtifactsRequest. - * @implements IListArtifactsRequest + * @classdesc Represents a SearchArtifactsRequest. + * @implements ISearchArtifactsRequest * @constructor - * @param {flyteidl.artifact.IListArtifactsRequest=} [properties] Properties to set + * @param {flyteidl.artifact.ISearchArtifactsRequest=} [properties] Properties to set */ - function ListArtifactsRequest(properties) { + function SearchArtifactsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -53184,63 +53208,102 @@ } /** - * ListArtifactsRequest artifactKey. + * SearchArtifactsRequest artifactKey. * @member {flyteidl.core.IArtifactKey|null|undefined} artifactKey - * @memberof flyteidl.artifact.ListArtifactsRequest + * @memberof flyteidl.artifact.SearchArtifactsRequest * @instance */ - ListArtifactsRequest.prototype.artifactKey = null; + SearchArtifactsRequest.prototype.artifactKey = null; /** - * Creates a new ListArtifactsRequest instance using the specified properties. + * SearchArtifactsRequest filters. + * @member {string} filters + * @memberof flyteidl.artifact.SearchArtifactsRequest + * @instance + */ + SearchArtifactsRequest.prototype.filters = ""; + + /** + * SearchArtifactsRequest token. + * @member {string} token + * @memberof flyteidl.artifact.SearchArtifactsRequest + * @instance + */ + SearchArtifactsRequest.prototype.token = ""; + + /** + * SearchArtifactsRequest limit. + * @member {number} limit + * @memberof flyteidl.artifact.SearchArtifactsRequest + * @instance + */ + SearchArtifactsRequest.prototype.limit = 0; + + /** + * Creates a new SearchArtifactsRequest instance using the specified properties. * @function create - * @memberof flyteidl.artifact.ListArtifactsRequest + * @memberof flyteidl.artifact.SearchArtifactsRequest * @static - * @param {flyteidl.artifact.IListArtifactsRequest=} [properties] Properties to set - * @returns {flyteidl.artifact.ListArtifactsRequest} ListArtifactsRequest instance + * @param {flyteidl.artifact.ISearchArtifactsRequest=} [properties] Properties to set + * @returns {flyteidl.artifact.SearchArtifactsRequest} SearchArtifactsRequest instance */ - ListArtifactsRequest.create = function create(properties) { - return new ListArtifactsRequest(properties); + SearchArtifactsRequest.create = function create(properties) { + return new SearchArtifactsRequest(properties); }; /** - * Encodes the specified ListArtifactsRequest message. Does not implicitly {@link flyteidl.artifact.ListArtifactsRequest.verify|verify} messages. + * Encodes the specified SearchArtifactsRequest message. Does not implicitly {@link flyteidl.artifact.SearchArtifactsRequest.verify|verify} messages. * @function encode - * @memberof flyteidl.artifact.ListArtifactsRequest + * @memberof flyteidl.artifact.SearchArtifactsRequest * @static - * @param {flyteidl.artifact.IListArtifactsRequest} message ListArtifactsRequest message or plain object to encode + * @param {flyteidl.artifact.ISearchArtifactsRequest} message SearchArtifactsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListArtifactsRequest.encode = function encode(message, writer) { + SearchArtifactsRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); if (message.artifactKey != null && message.hasOwnProperty("artifactKey")) $root.flyteidl.core.ArtifactKey.encode(message.artifactKey, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.filters != null && message.hasOwnProperty("filters")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.filters); + if (message.token != null && message.hasOwnProperty("token")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.token); + if (message.limit != null && message.hasOwnProperty("limit")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.limit); return writer; }; /** - * Decodes a ListArtifactsRequest message from the specified reader or buffer. + * Decodes a SearchArtifactsRequest message from the specified reader or buffer. * @function decode - * @memberof flyteidl.artifact.ListArtifactsRequest + * @memberof flyteidl.artifact.SearchArtifactsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.artifact.ListArtifactsRequest} ListArtifactsRequest + * @returns {flyteidl.artifact.SearchArtifactsRequest} SearchArtifactsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListArtifactsRequest.decode = function decode(reader, length) { + SearchArtifactsRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.artifact.ListArtifactsRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.artifact.SearchArtifactsRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.artifactKey = $root.flyteidl.core.ArtifactKey.decode(reader, reader.uint32()); break; + case 2: + message.filters = reader.string(); + break; + case 3: + message.token = reader.string(); + break; + case 4: + message.limit = reader.int32(); + break; default: reader.skipType(tag & 7); break; @@ -53250,14 +53313,14 @@ }; /** - * Verifies a ListArtifactsRequest message. + * Verifies a SearchArtifactsRequest message. * @function verify - * @memberof flyteidl.artifact.ListArtifactsRequest + * @memberof flyteidl.artifact.SearchArtifactsRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListArtifactsRequest.verify = function verify(message) { + SearchArtifactsRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (message.artifactKey != null && message.hasOwnProperty("artifactKey")) { @@ -53265,30 +53328,39 @@ if (error) return "artifactKey." + error; } + if (message.filters != null && message.hasOwnProperty("filters")) + if (!$util.isString(message.filters)) + return "filters: string expected"; + if (message.token != null && message.hasOwnProperty("token")) + if (!$util.isString(message.token)) + return "token: string expected"; + if (message.limit != null && message.hasOwnProperty("limit")) + if (!$util.isInteger(message.limit)) + return "limit: integer expected"; return null; }; - return ListArtifactsRequest; + return SearchArtifactsRequest; })(); - artifact.ListArtifactsResponse = (function() { + artifact.SearchArtifactsResponse = (function() { /** - * Properties of a ListArtifactsResponse. + * Properties of a SearchArtifactsResponse. * @memberof flyteidl.artifact - * @interface IListArtifactsResponse - * @property {Array.|null} [artifacts] ListArtifactsResponse artifacts + * @interface ISearchArtifactsResponse + * @property {Array.|null} [artifacts] SearchArtifactsResponse artifacts */ /** - * Constructs a new ListArtifactsResponse. + * Constructs a new SearchArtifactsResponse. * @memberof flyteidl.artifact - * @classdesc Represents a ListArtifactsResponse. - * @implements IListArtifactsResponse + * @classdesc Represents a SearchArtifactsResponse. + * @implements ISearchArtifactsResponse * @constructor - * @param {flyteidl.artifact.IListArtifactsResponse=} [properties] Properties to set + * @param {flyteidl.artifact.ISearchArtifactsResponse=} [properties] Properties to set */ - function ListArtifactsResponse(properties) { + function SearchArtifactsResponse(properties) { this.artifacts = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) @@ -53297,35 +53369,35 @@ } /** - * ListArtifactsResponse artifacts. + * SearchArtifactsResponse artifacts. * @member {Array.} artifacts - * @memberof flyteidl.artifact.ListArtifactsResponse + * @memberof flyteidl.artifact.SearchArtifactsResponse * @instance */ - ListArtifactsResponse.prototype.artifacts = $util.emptyArray; + SearchArtifactsResponse.prototype.artifacts = $util.emptyArray; /** - * Creates a new ListArtifactsResponse instance using the specified properties. + * Creates a new SearchArtifactsResponse instance using the specified properties. * @function create - * @memberof flyteidl.artifact.ListArtifactsResponse + * @memberof flyteidl.artifact.SearchArtifactsResponse * @static - * @param {flyteidl.artifact.IListArtifactsResponse=} [properties] Properties to set - * @returns {flyteidl.artifact.ListArtifactsResponse} ListArtifactsResponse instance + * @param {flyteidl.artifact.ISearchArtifactsResponse=} [properties] Properties to set + * @returns {flyteidl.artifact.SearchArtifactsResponse} SearchArtifactsResponse instance */ - ListArtifactsResponse.create = function create(properties) { - return new ListArtifactsResponse(properties); + SearchArtifactsResponse.create = function create(properties) { + return new SearchArtifactsResponse(properties); }; /** - * Encodes the specified ListArtifactsResponse message. Does not implicitly {@link flyteidl.artifact.ListArtifactsResponse.verify|verify} messages. + * Encodes the specified SearchArtifactsResponse message. Does not implicitly {@link flyteidl.artifact.SearchArtifactsResponse.verify|verify} messages. * @function encode - * @memberof flyteidl.artifact.ListArtifactsResponse + * @memberof flyteidl.artifact.SearchArtifactsResponse * @static - * @param {flyteidl.artifact.IListArtifactsResponse} message ListArtifactsResponse message or plain object to encode + * @param {flyteidl.artifact.ISearchArtifactsResponse} message SearchArtifactsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListArtifactsResponse.encode = function encode(message, writer) { + SearchArtifactsResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); if (message.artifacts != null && message.artifacts.length) @@ -53335,20 +53407,20 @@ }; /** - * Decodes a ListArtifactsResponse message from the specified reader or buffer. + * Decodes a SearchArtifactsResponse message from the specified reader or buffer. * @function decode - * @memberof flyteidl.artifact.ListArtifactsResponse + * @memberof flyteidl.artifact.SearchArtifactsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.artifact.ListArtifactsResponse} ListArtifactsResponse + * @returns {flyteidl.artifact.SearchArtifactsResponse} SearchArtifactsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListArtifactsResponse.decode = function decode(reader, length) { + SearchArtifactsResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.artifact.ListArtifactsResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.artifact.SearchArtifactsResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -53366,14 +53438,14 @@ }; /** - * Verifies a ListArtifactsResponse message. + * Verifies a SearchArtifactsResponse message. * @function verify - * @memberof flyteidl.artifact.ListArtifactsResponse + * @memberof flyteidl.artifact.SearchArtifactsResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListArtifactsResponse.verify = function verify(message) { + SearchArtifactsResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (message.artifacts != null && message.hasOwnProperty("artifacts")) { @@ -53388,7 +53460,7 @@ return null; }; - return ListArtifactsResponse; + return SearchArtifactsResponse; })(); artifact.AddTagRequest = (function() { @@ -54635,6 +54707,277 @@ return RegisterResponse; })(); + artifact.CloudEventRequest = (function() { + + /** + * Properties of a CloudEventRequest. + * @memberof flyteidl.artifact + * @interface ICloudEventRequest + * @property {flyteidl.event.ICloudEventWorkflowExecution|null} [workflowExecutionEvent] CloudEventRequest workflowExecutionEvent + * @property {flyteidl.event.ICloudEventTaskExecution|null} [taskExecutionEvent] CloudEventRequest taskExecutionEvent + * @property {flyteidl.event.ICloudEventNodeExecution|null} [nodeExecutionEvent] CloudEventRequest nodeExecutionEvent + */ + + /** + * Constructs a new CloudEventRequest. + * @memberof flyteidl.artifact + * @classdesc Represents a CloudEventRequest. + * @implements ICloudEventRequest + * @constructor + * @param {flyteidl.artifact.ICloudEventRequest=} [properties] Properties to set + */ + function CloudEventRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CloudEventRequest workflowExecutionEvent. + * @member {flyteidl.event.ICloudEventWorkflowExecution|null|undefined} workflowExecutionEvent + * @memberof flyteidl.artifact.CloudEventRequest + * @instance + */ + CloudEventRequest.prototype.workflowExecutionEvent = null; + + /** + * CloudEventRequest taskExecutionEvent. + * @member {flyteidl.event.ICloudEventTaskExecution|null|undefined} taskExecutionEvent + * @memberof flyteidl.artifact.CloudEventRequest + * @instance + */ + CloudEventRequest.prototype.taskExecutionEvent = null; + + /** + * CloudEventRequest nodeExecutionEvent. + * @member {flyteidl.event.ICloudEventNodeExecution|null|undefined} nodeExecutionEvent + * @memberof flyteidl.artifact.CloudEventRequest + * @instance + */ + CloudEventRequest.prototype.nodeExecutionEvent = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * CloudEventRequest event. + * @member {"workflowExecutionEvent"|"taskExecutionEvent"|"nodeExecutionEvent"|undefined} event + * @memberof flyteidl.artifact.CloudEventRequest + * @instance + */ + Object.defineProperty(CloudEventRequest.prototype, "event", { + get: $util.oneOfGetter($oneOfFields = ["workflowExecutionEvent", "taskExecutionEvent", "nodeExecutionEvent"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new CloudEventRequest instance using the specified properties. + * @function create + * @memberof flyteidl.artifact.CloudEventRequest + * @static + * @param {flyteidl.artifact.ICloudEventRequest=} [properties] Properties to set + * @returns {flyteidl.artifact.CloudEventRequest} CloudEventRequest instance + */ + CloudEventRequest.create = function create(properties) { + return new CloudEventRequest(properties); + }; + + /** + * Encodes the specified CloudEventRequest message. Does not implicitly {@link flyteidl.artifact.CloudEventRequest.verify|verify} messages. + * @function encode + * @memberof flyteidl.artifact.CloudEventRequest + * @static + * @param {flyteidl.artifact.ICloudEventRequest} message CloudEventRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CloudEventRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.workflowExecutionEvent != null && message.hasOwnProperty("workflowExecutionEvent")) + $root.flyteidl.event.CloudEventWorkflowExecution.encode(message.workflowExecutionEvent, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.taskExecutionEvent != null && message.hasOwnProperty("taskExecutionEvent")) + $root.flyteidl.event.CloudEventTaskExecution.encode(message.taskExecutionEvent, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.nodeExecutionEvent != null && message.hasOwnProperty("nodeExecutionEvent")) + $root.flyteidl.event.CloudEventNodeExecution.encode(message.nodeExecutionEvent, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Decodes a CloudEventRequest message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.artifact.CloudEventRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.artifact.CloudEventRequest} CloudEventRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CloudEventRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.artifact.CloudEventRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.workflowExecutionEvent = $root.flyteidl.event.CloudEventWorkflowExecution.decode(reader, reader.uint32()); + break; + case 2: + message.taskExecutionEvent = $root.flyteidl.event.CloudEventTaskExecution.decode(reader, reader.uint32()); + break; + case 3: + message.nodeExecutionEvent = $root.flyteidl.event.CloudEventNodeExecution.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a CloudEventRequest message. + * @function verify + * @memberof flyteidl.artifact.CloudEventRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CloudEventRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.workflowExecutionEvent != null && message.hasOwnProperty("workflowExecutionEvent")) { + properties.event = 1; + { + var error = $root.flyteidl.event.CloudEventWorkflowExecution.verify(message.workflowExecutionEvent); + if (error) + return "workflowExecutionEvent." + error; + } + } + if (message.taskExecutionEvent != null && message.hasOwnProperty("taskExecutionEvent")) { + if (properties.event === 1) + return "event: multiple values"; + properties.event = 1; + { + var error = $root.flyteidl.event.CloudEventTaskExecution.verify(message.taskExecutionEvent); + if (error) + return "taskExecutionEvent." + error; + } + } + if (message.nodeExecutionEvent != null && message.hasOwnProperty("nodeExecutionEvent")) { + if (properties.event === 1) + return "event: multiple values"; + properties.event = 1; + { + var error = $root.flyteidl.event.CloudEventNodeExecution.verify(message.nodeExecutionEvent); + if (error) + return "nodeExecutionEvent." + error; + } + } + return null; + }; + + return CloudEventRequest; + })(); + + artifact.CloudEventResponse = (function() { + + /** + * Properties of a CloudEventResponse. + * @memberof flyteidl.artifact + * @interface ICloudEventResponse + */ + + /** + * Constructs a new CloudEventResponse. + * @memberof flyteidl.artifact + * @classdesc Represents a CloudEventResponse. + * @implements ICloudEventResponse + * @constructor + * @param {flyteidl.artifact.ICloudEventResponse=} [properties] Properties to set + */ + function CloudEventResponse(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new CloudEventResponse instance using the specified properties. + * @function create + * @memberof flyteidl.artifact.CloudEventResponse + * @static + * @param {flyteidl.artifact.ICloudEventResponse=} [properties] Properties to set + * @returns {flyteidl.artifact.CloudEventResponse} CloudEventResponse instance + */ + CloudEventResponse.create = function create(properties) { + return new CloudEventResponse(properties); + }; + + /** + * Encodes the specified CloudEventResponse message. Does not implicitly {@link flyteidl.artifact.CloudEventResponse.verify|verify} messages. + * @function encode + * @memberof flyteidl.artifact.CloudEventResponse + * @static + * @param {flyteidl.artifact.ICloudEventResponse} message CloudEventResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CloudEventResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Decodes a CloudEventResponse message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.artifact.CloudEventResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.artifact.CloudEventResponse} CloudEventResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CloudEventResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.artifact.CloudEventResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a CloudEventResponse message. + * @function verify + * @memberof flyteidl.artifact.CloudEventResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CloudEventResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + return CloudEventResponse; + })(); + artifact.ArtifactRegistry = (function() { /** @@ -54733,6 +55076,39 @@ * @variation 2 */ + /** + * Callback as used by {@link flyteidl.artifact.ArtifactRegistry#searchArtifacts}. + * @memberof flyteidl.artifact.ArtifactRegistry + * @typedef SearchArtifactsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {flyteidl.artifact.SearchArtifactsResponse} [response] SearchArtifactsResponse + */ + + /** + * Calls SearchArtifacts. + * @function searchArtifacts + * @memberof flyteidl.artifact.ArtifactRegistry + * @instance + * @param {flyteidl.artifact.ISearchArtifactsRequest} request SearchArtifactsRequest message or plain object + * @param {flyteidl.artifact.ArtifactRegistry.SearchArtifactsCallback} callback Node-style callback called with the error, if any, and SearchArtifactsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(ArtifactRegistry.prototype.searchArtifacts = function searchArtifacts(request, callback) { + return this.rpcCall(searchArtifacts, $root.flyteidl.artifact.SearchArtifactsRequest, $root.flyteidl.artifact.SearchArtifactsResponse, request, callback); + }, "name", { value: "SearchArtifacts" }); + + /** + * Calls SearchArtifacts. + * @function searchArtifacts + * @memberof flyteidl.artifact.ArtifactRegistry + * @instance + * @param {flyteidl.artifact.ISearchArtifactsRequest} request SearchArtifactsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + /** * Callback as used by {@link flyteidl.artifact.ArtifactRegistry#createTrigger}. * @memberof flyteidl.artifact.ArtifactRegistry diff --git a/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2.py b/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2.py index d48ac55b8e..0ce13f36dc 100644 --- a/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2.py @@ -12,15 +12,17 @@ from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from flyteidl.admin import launch_plan_pb2 as flyteidl_dot_admin_dot_launch__plan__pb2 from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 from flyteidl.core import types_pb2 as flyteidl_dot_core_dot_types__pb2 from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 from flyteidl.core import artifact_id_pb2 as flyteidl_dot_core_dot_artifact__id__pb2 from flyteidl.core import interface_pb2 as flyteidl_dot_core_dot_interface__pb2 +from flyteidl.event import cloudevents_pb2 as flyteidl_dot_event_dot_cloudevents__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!flyteidl/artifact/artifacts.proto\x12\x11\x66lyteidl.artifact\x1a\x19google/protobuf/any.proto\x1a flyteidl/admin/launch_plan.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x19\x66lyteidl/core/types.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1f\x66lyteidl/core/artifact_id.proto\x1a\x1d\x66lyteidl/core/interface.proto\"\x8f\x01\n\x08\x41rtifact\x12:\n\x0b\x61rtifact_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.ArtifactIDR\nartifactId\x12\x33\n\x04spec\x18\x02 \x01(\x0b\x32\x1f.flyteidl.artifact.ArtifactSpecR\x04spec\x12\x12\n\x04tags\x18\x03 \x03(\tR\x04tags\"\xd0\x02\n\x15\x43reateArtifactRequest\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12\x18\n\x07version\x18\x03 \x01(\tR\x07version\x12\x33\n\x04spec\x18\x02 \x01(\x0b\x32\x1f.flyteidl.artifact.ArtifactSpecR\x04spec\x12X\n\npartitions\x18\x04 \x03(\x0b\x32\x38.flyteidl.artifact.CreateArtifactRequest.PartitionsEntryR\npartitions\x12\x10\n\x03tag\x18\x05 \x01(\tR\x03tag\x1a=\n\x0fPartitionsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xdb\x03\n\x0c\x41rtifactSpec\x12,\n\x05value\x18\x01 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05value\x12.\n\x04type\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x04type\x12M\n\x0etask_execution\x18\x05 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\rtaskExecution\x12H\n\texecution\x18\x06 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\texecution\x12\x1c\n\tprincipal\x18\x07 \x01(\tR\tprincipal\x12+\n\x11short_description\x18\x08 \x01(\tR\x10shortDescription\x12)\n\x10long_description\x18\t \x01(\tR\x0flongDescription\x12\x39\n\ruser_metadata\x18\n \x01(\x0b\x32\x14.google.protobuf.AnyR\x0cuserMetadata\x12#\n\rmetadata_type\x18\x0b \x01(\tR\x0cmetadataType\"Q\n\x16\x43reateArtifactResponse\x12\x37\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x1b.flyteidl.artifact.ArtifactR\x08\x61rtifact\"b\n\x12GetArtifactRequest\x12\x32\n\x05query\x18\x01 \x01(\x0b\x32\x1c.flyteidl.core.ArtifactQueryR\x05query\x12\x18\n\x07\x64\x65tails\x18\x02 \x01(\x08R\x07\x64\x65tails\"N\n\x13GetArtifactResponse\x12\x37\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x1b.flyteidl.artifact.ArtifactR\x08\x61rtifact\"L\n\x18ListArtifactNamesRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\"\\\n\x19ListArtifactNamesResponse\x12?\n\rartifact_keys\x18\x01 \x03(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0c\x61rtifactKeys\"U\n\x14ListArtifactsRequest\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\"R\n\x15ListArtifactsResponse\x12\x39\n\tartifacts\x18\x01 \x03(\x0b\x32\x1b.flyteidl.artifact.ArtifactR\tartifacts\"\x7f\n\rAddTagRequest\x12:\n\x0b\x61rtifact_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.ArtifactIDR\nartifactId\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\x12\x1c\n\toverwrite\x18\x03 \x01(\x08R\toverwrite\"\x10\n\x0e\x41\x64\x64TagResponse\"b\n\x14\x43reateTriggerRequest\x12J\n\x13trigger_launch_plan\x18\x01 \x01(\x0b\x32\x1a.flyteidl.admin.LaunchPlanR\x11triggerLaunchPlan\"\x17\n\x15\x43reateTriggerResponse\"P\n\x14\x44\x65leteTriggerRequest\x12\x38\n\ntrigger_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\ttriggerId\"\x17\n\x15\x44\x65leteTriggerResponse\"\x80\x01\n\x10\x41rtifactProducer\x12\x36\n\tentity_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x08\x65ntityId\x12\x34\n\x07outputs\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.VariableMapR\x07outputs\"\\\n\x17RegisterProducerRequest\x12\x41\n\tproducers\x18\x01 \x03(\x0b\x32#.flyteidl.artifact.ArtifactProducerR\tproducers\"\x7f\n\x10\x41rtifactConsumer\x12\x36\n\tentity_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x08\x65ntityId\x12\x33\n\x06inputs\x18\x02 \x01(\x0b\x32\x1b.flyteidl.core.ParameterMapR\x06inputs\"\\\n\x17RegisterConsumerRequest\x12\x41\n\tconsumers\x18\x01 \x03(\x0b\x32#.flyteidl.artifact.ArtifactConsumerR\tconsumers\"\x12\n\x10RegisterResponse2\xc6\x05\n\x10\x41rtifactRegistry\x12g\n\x0e\x43reateArtifact\x12(.flyteidl.artifact.CreateArtifactRequest\x1a).flyteidl.artifact.CreateArtifactResponse\"\x00\x12^\n\x0bGetArtifact\x12%.flyteidl.artifact.GetArtifactRequest\x1a&.flyteidl.artifact.GetArtifactResponse\"\x00\x12\x64\n\rCreateTrigger\x12\'.flyteidl.artifact.CreateTriggerRequest\x1a(.flyteidl.artifact.CreateTriggerResponse\"\x00\x12\x64\n\rDeleteTrigger\x12\'.flyteidl.artifact.DeleteTriggerRequest\x1a(.flyteidl.artifact.DeleteTriggerResponse\"\x00\x12O\n\x06\x41\x64\x64Tag\x12 .flyteidl.artifact.AddTagRequest\x1a!.flyteidl.artifact.AddTagResponse\"\x00\x12\x65\n\x10RegisterProducer\x12*.flyteidl.artifact.RegisterProducerRequest\x1a#.flyteidl.artifact.RegisterResponse\"\x00\x12\x65\n\x10RegisterConsumer\x12*.flyteidl.artifact.RegisterConsumerRequest\x1a#.flyteidl.artifact.RegisterResponse\"\x00\x42\xcc\x01\n\x15\x63om.flyteidl.artifactB\x0e\x41rtifactsProtoP\x01Z>github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact\xa2\x02\x03\x46\x41X\xaa\x02\x11\x46lyteidl.Artifact\xca\x02\x11\x46lyteidl\\Artifact\xe2\x02\x1d\x46lyteidl\\Artifact\\GPBMetadata\xea\x02\x12\x46lyteidl::Artifactb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!flyteidl/artifact/artifacts.proto\x12\x11\x66lyteidl.artifact\x1a\x19google/protobuf/any.proto\x1a\x1cgoogle/api/annotations.proto\x1a flyteidl/admin/launch_plan.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x19\x66lyteidl/core/types.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1f\x66lyteidl/core/artifact_id.proto\x1a\x1d\x66lyteidl/core/interface.proto\x1a flyteidl/event/cloudevents.proto\"\x8f\x01\n\x08\x41rtifact\x12:\n\x0b\x61rtifact_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.ArtifactIDR\nartifactId\x12\x33\n\x04spec\x18\x02 \x01(\x0b\x32\x1f.flyteidl.artifact.ArtifactSpecR\x04spec\x12\x12\n\x04tags\x18\x03 \x03(\tR\x04tags\"\xd0\x02\n\x15\x43reateArtifactRequest\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12\x18\n\x07version\x18\x03 \x01(\tR\x07version\x12\x33\n\x04spec\x18\x02 \x01(\x0b\x32\x1f.flyteidl.artifact.ArtifactSpecR\x04spec\x12X\n\npartitions\x18\x04 \x03(\x0b\x32\x38.flyteidl.artifact.CreateArtifactRequest.PartitionsEntryR\npartitions\x12\x10\n\x03tag\x18\x05 \x01(\tR\x03tag\x1a=\n\x0fPartitionsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xb0\x03\n\x0c\x41rtifactSpec\x12,\n\x05value\x18\x01 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05value\x12.\n\x04type\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x04type\x12M\n\x0etask_execution\x18\x05 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\rtaskExecution\x12H\n\texecution\x18\x06 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\texecution\x12\x1c\n\tprincipal\x18\x07 \x01(\tR\tprincipal\x12+\n\x11short_description\x18\x08 \x01(\tR\x10shortDescription\x12\x39\n\ruser_metadata\x18\n \x01(\x0b\x32\x14.google.protobuf.AnyR\x0cuserMetadata\x12#\n\rmetadata_type\x18\x0b \x01(\tR\x0cmetadataType\"Q\n\x16\x43reateArtifactResponse\x12\x37\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x1b.flyteidl.artifact.ArtifactR\x08\x61rtifact\"b\n\x12GetArtifactRequest\x12\x32\n\x05query\x18\x01 \x01(\x0b\x32\x1c.flyteidl.core.ArtifactQueryR\x05query\x12\x18\n\x07\x64\x65tails\x18\x02 \x01(\x08R\x07\x64\x65tails\"N\n\x13GetArtifactResponse\x12\x37\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x1b.flyteidl.artifact.ArtifactR\x08\x61rtifact\"L\n\x18ListArtifactNamesRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\"\\\n\x19ListArtifactNamesResponse\x12?\n\rartifact_keys\x18\x01 \x03(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0c\x61rtifactKeys\"\x9d\x01\n\x16SearchArtifactsRequest\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12\x18\n\x07\x66ilters\x18\x02 \x01(\tR\x07\x66ilters\x12\x14\n\x05token\x18\x03 \x01(\tR\x05token\x12\x14\n\x05limit\x18\x04 \x01(\x05R\x05limit\"T\n\x17SearchArtifactsResponse\x12\x39\n\tartifacts\x18\x01 \x03(\x0b\x32\x1b.flyteidl.artifact.ArtifactR\tartifacts\"\x7f\n\rAddTagRequest\x12:\n\x0b\x61rtifact_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.ArtifactIDR\nartifactId\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\x12\x1c\n\toverwrite\x18\x03 \x01(\x08R\toverwrite\"\x10\n\x0e\x41\x64\x64TagResponse\"b\n\x14\x43reateTriggerRequest\x12J\n\x13trigger_launch_plan\x18\x01 \x01(\x0b\x32\x1a.flyteidl.admin.LaunchPlanR\x11triggerLaunchPlan\"\x17\n\x15\x43reateTriggerResponse\"P\n\x14\x44\x65leteTriggerRequest\x12\x38\n\ntrigger_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\ttriggerId\"\x17\n\x15\x44\x65leteTriggerResponse\"\x80\x01\n\x10\x41rtifactProducer\x12\x36\n\tentity_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x08\x65ntityId\x12\x34\n\x07outputs\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.VariableMapR\x07outputs\"\\\n\x17RegisterProducerRequest\x12\x41\n\tproducers\x18\x01 \x03(\x0b\x32#.flyteidl.artifact.ArtifactProducerR\tproducers\"\x7f\n\x10\x41rtifactConsumer\x12\x36\n\tentity_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x08\x65ntityId\x12\x33\n\x06inputs\x18\x02 \x01(\x0b\x32\x1b.flyteidl.core.ParameterMapR\x06inputs\"\\\n\x17RegisterConsumerRequest\x12\x41\n\tconsumers\x18\x01 \x03(\x0b\x32#.flyteidl.artifact.ArtifactConsumerR\tconsumers\"\x12\n\x10RegisterResponse\"\xbf\x02\n\x11\x43loudEventRequest\x12g\n\x18workflow_execution_event\x18\x01 \x01(\x0b\x32+.flyteidl.event.CloudEventWorkflowExecutionH\x00R\x16workflowExecutionEvent\x12[\n\x14task_execution_event\x18\x02 \x01(\x0b\x32\'.flyteidl.event.CloudEventTaskExecutionH\x00R\x12taskExecutionEvent\x12[\n\x14node_execution_event\x18\x03 \x01(\x0b\x32\'.flyteidl.event.CloudEventNodeExecutionH\x00R\x12nodeExecutionEventB\x07\n\x05\x65vent\"\x14\n\x12\x43loudEventResponse2\xbb\x0b\n\x10\x41rtifactRegistry\x12g\n\x0e\x43reateArtifact\x12(.flyteidl.artifact.CreateArtifactRequest\x1a).flyteidl.artifact.CreateArtifactResponse\"\x00\x12\xcd\x04\n\x0bGetArtifact\x12%.flyteidl.artifact.GetArtifactRequest\x1a&.flyteidl.artifact.GetArtifactResponse\"\xee\x03\x82\xd3\xe4\x93\x02\xe7\x03Z\xaa\x01\x12\xa7\x01/data/v1/artifact/id/{query.artifact_id.artifact_key.project}/{query.artifact_id.artifact_key.domain}/{query.artifact_id.artifact_key.name}/{query.artifact_id.version}Z\x8e\x01\x12\x8b\x01/data/v1/artifact/id/{query.artifact_id.artifact_key.project}/{query.artifact_id.artifact_key.domain}/{query.artifact_id.artifact_key.name}Z\x92\x01\x12\x8f\x01/data/v1/artifact/tag/{query.artifact_tag.artifact_key.project}/{query.artifact_tag.artifact_key.domain}/{query.artifact_tag.artifact_key.name}\x12\x12/data/v1/artifacts\x12\x82\x02\n\x0fSearchArtifacts\x12).flyteidl.artifact.SearchArtifactsRequest\x1a*.flyteidl.artifact.SearchArtifactsResponse\"\x97\x01\x82\xd3\xe4\x93\x02\x90\x01Z=\x12;/data/v1/query/{artifact_key.project}/{artifact_key.domain}\x12O/data/v1/query/{artifact_key.project}/{artifact_key.domain}/{artifact_key.name}\x12\x64\n\rCreateTrigger\x12\'.flyteidl.artifact.CreateTriggerRequest\x1a(.flyteidl.artifact.CreateTriggerResponse\"\x00\x12\x64\n\rDeleteTrigger\x12\'.flyteidl.artifact.DeleteTriggerRequest\x1a(.flyteidl.artifact.DeleteTriggerResponse\"\x00\x12O\n\x06\x41\x64\x64Tag\x12 .flyteidl.artifact.AddTagRequest\x1a!.flyteidl.artifact.AddTagResponse\"\x00\x12\x65\n\x10RegisterProducer\x12*.flyteidl.artifact.RegisterProducerRequest\x1a#.flyteidl.artifact.RegisterResponse\"\x00\x12\x65\n\x10RegisterConsumer\x12*.flyteidl.artifact.RegisterConsumerRequest\x1a#.flyteidl.artifact.RegisterResponse\"\x00\x42\xcc\x01\n\x15\x63om.flyteidl.artifactB\x0e\x41rtifactsProtoP\x01Z>github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact\xa2\x02\x03\x46\x41X\xaa\x02\x11\x46lyteidl.Artifact\xca\x02\x11\x46lyteidl\\Artifact\xe2\x02\x1d\x46lyteidl\\Artifact\\GPBMetadata\xea\x02\x12\x46lyteidl::Artifactb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -31,50 +33,58 @@ DESCRIPTOR._serialized_options = b'\n\025com.flyteidl.artifactB\016ArtifactsProtoP\001Z>github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact\242\002\003FAX\252\002\021Flyteidl.Artifact\312\002\021Flyteidl\\Artifact\342\002\035Flyteidl\\Artifact\\GPBMetadata\352\002\022Flyteidl::Artifact' _CREATEARTIFACTREQUEST_PARTITIONSENTRY._options = None _CREATEARTIFACTREQUEST_PARTITIONSENTRY._serialized_options = b'8\001' - _globals['_ARTIFACT']._serialized_start=271 - _globals['_ARTIFACT']._serialized_end=414 - _globals['_CREATEARTIFACTREQUEST']._serialized_start=417 - _globals['_CREATEARTIFACTREQUEST']._serialized_end=753 - _globals['_CREATEARTIFACTREQUEST_PARTITIONSENTRY']._serialized_start=692 - _globals['_CREATEARTIFACTREQUEST_PARTITIONSENTRY']._serialized_end=753 - _globals['_ARTIFACTSPEC']._serialized_start=756 - _globals['_ARTIFACTSPEC']._serialized_end=1231 - _globals['_CREATEARTIFACTRESPONSE']._serialized_start=1233 - _globals['_CREATEARTIFACTRESPONSE']._serialized_end=1314 - _globals['_GETARTIFACTREQUEST']._serialized_start=1316 - _globals['_GETARTIFACTREQUEST']._serialized_end=1414 - _globals['_GETARTIFACTRESPONSE']._serialized_start=1416 - _globals['_GETARTIFACTRESPONSE']._serialized_end=1494 - _globals['_LISTARTIFACTNAMESREQUEST']._serialized_start=1496 - _globals['_LISTARTIFACTNAMESREQUEST']._serialized_end=1572 - _globals['_LISTARTIFACTNAMESRESPONSE']._serialized_start=1574 - _globals['_LISTARTIFACTNAMESRESPONSE']._serialized_end=1666 - _globals['_LISTARTIFACTSREQUEST']._serialized_start=1668 - _globals['_LISTARTIFACTSREQUEST']._serialized_end=1753 - _globals['_LISTARTIFACTSRESPONSE']._serialized_start=1755 - _globals['_LISTARTIFACTSRESPONSE']._serialized_end=1837 - _globals['_ADDTAGREQUEST']._serialized_start=1839 - _globals['_ADDTAGREQUEST']._serialized_end=1966 - _globals['_ADDTAGRESPONSE']._serialized_start=1968 - _globals['_ADDTAGRESPONSE']._serialized_end=1984 - _globals['_CREATETRIGGERREQUEST']._serialized_start=1986 - _globals['_CREATETRIGGERREQUEST']._serialized_end=2084 - _globals['_CREATETRIGGERRESPONSE']._serialized_start=2086 - _globals['_CREATETRIGGERRESPONSE']._serialized_end=2109 - _globals['_DELETETRIGGERREQUEST']._serialized_start=2111 - _globals['_DELETETRIGGERREQUEST']._serialized_end=2191 - _globals['_DELETETRIGGERRESPONSE']._serialized_start=2193 - _globals['_DELETETRIGGERRESPONSE']._serialized_end=2216 - _globals['_ARTIFACTPRODUCER']._serialized_start=2219 - _globals['_ARTIFACTPRODUCER']._serialized_end=2347 - _globals['_REGISTERPRODUCERREQUEST']._serialized_start=2349 - _globals['_REGISTERPRODUCERREQUEST']._serialized_end=2441 - _globals['_ARTIFACTCONSUMER']._serialized_start=2443 - _globals['_ARTIFACTCONSUMER']._serialized_end=2570 - _globals['_REGISTERCONSUMERREQUEST']._serialized_start=2572 - _globals['_REGISTERCONSUMERREQUEST']._serialized_end=2664 - _globals['_REGISTERRESPONSE']._serialized_start=2666 - _globals['_REGISTERRESPONSE']._serialized_end=2684 - _globals['_ARTIFACTREGISTRY']._serialized_start=2687 - _globals['_ARTIFACTREGISTRY']._serialized_end=3397 + _ARTIFACTREGISTRY.methods_by_name['GetArtifact']._options = None + _ARTIFACTREGISTRY.methods_by_name['GetArtifact']._serialized_options = b'\202\323\344\223\002\347\003Z\252\001\022\247\001/data/v1/artifact/id/{query.artifact_id.artifact_key.project}/{query.artifact_id.artifact_key.domain}/{query.artifact_id.artifact_key.name}/{query.artifact_id.version}Z\216\001\022\213\001/data/v1/artifact/id/{query.artifact_id.artifact_key.project}/{query.artifact_id.artifact_key.domain}/{query.artifact_id.artifact_key.name}Z\222\001\022\217\001/data/v1/artifact/tag/{query.artifact_tag.artifact_key.project}/{query.artifact_tag.artifact_key.domain}/{query.artifact_tag.artifact_key.name}\022\022/data/v1/artifacts' + _ARTIFACTREGISTRY.methods_by_name['SearchArtifacts']._options = None + _ARTIFACTREGISTRY.methods_by_name['SearchArtifacts']._serialized_options = b'\202\323\344\223\002\220\001Z=\022;/data/v1/query/{artifact_key.project}/{artifact_key.domain}\022O/data/v1/query/{artifact_key.project}/{artifact_key.domain}/{artifact_key.name}' + _globals['_ARTIFACT']._serialized_start=335 + _globals['_ARTIFACT']._serialized_end=478 + _globals['_CREATEARTIFACTREQUEST']._serialized_start=481 + _globals['_CREATEARTIFACTREQUEST']._serialized_end=817 + _globals['_CREATEARTIFACTREQUEST_PARTITIONSENTRY']._serialized_start=756 + _globals['_CREATEARTIFACTREQUEST_PARTITIONSENTRY']._serialized_end=817 + _globals['_ARTIFACTSPEC']._serialized_start=820 + _globals['_ARTIFACTSPEC']._serialized_end=1252 + _globals['_CREATEARTIFACTRESPONSE']._serialized_start=1254 + _globals['_CREATEARTIFACTRESPONSE']._serialized_end=1335 + _globals['_GETARTIFACTREQUEST']._serialized_start=1337 + _globals['_GETARTIFACTREQUEST']._serialized_end=1435 + _globals['_GETARTIFACTRESPONSE']._serialized_start=1437 + _globals['_GETARTIFACTRESPONSE']._serialized_end=1515 + _globals['_LISTARTIFACTNAMESREQUEST']._serialized_start=1517 + _globals['_LISTARTIFACTNAMESREQUEST']._serialized_end=1593 + _globals['_LISTARTIFACTNAMESRESPONSE']._serialized_start=1595 + _globals['_LISTARTIFACTNAMESRESPONSE']._serialized_end=1687 + _globals['_SEARCHARTIFACTSREQUEST']._serialized_start=1690 + _globals['_SEARCHARTIFACTSREQUEST']._serialized_end=1847 + _globals['_SEARCHARTIFACTSRESPONSE']._serialized_start=1849 + _globals['_SEARCHARTIFACTSRESPONSE']._serialized_end=1933 + _globals['_ADDTAGREQUEST']._serialized_start=1935 + _globals['_ADDTAGREQUEST']._serialized_end=2062 + _globals['_ADDTAGRESPONSE']._serialized_start=2064 + _globals['_ADDTAGRESPONSE']._serialized_end=2080 + _globals['_CREATETRIGGERREQUEST']._serialized_start=2082 + _globals['_CREATETRIGGERREQUEST']._serialized_end=2180 + _globals['_CREATETRIGGERRESPONSE']._serialized_start=2182 + _globals['_CREATETRIGGERRESPONSE']._serialized_end=2205 + _globals['_DELETETRIGGERREQUEST']._serialized_start=2207 + _globals['_DELETETRIGGERREQUEST']._serialized_end=2287 + _globals['_DELETETRIGGERRESPONSE']._serialized_start=2289 + _globals['_DELETETRIGGERRESPONSE']._serialized_end=2312 + _globals['_ARTIFACTPRODUCER']._serialized_start=2315 + _globals['_ARTIFACTPRODUCER']._serialized_end=2443 + _globals['_REGISTERPRODUCERREQUEST']._serialized_start=2445 + _globals['_REGISTERPRODUCERREQUEST']._serialized_end=2537 + _globals['_ARTIFACTCONSUMER']._serialized_start=2539 + _globals['_ARTIFACTCONSUMER']._serialized_end=2666 + _globals['_REGISTERCONSUMERREQUEST']._serialized_start=2668 + _globals['_REGISTERCONSUMERREQUEST']._serialized_end=2760 + _globals['_REGISTERRESPONSE']._serialized_start=2762 + _globals['_REGISTERRESPONSE']._serialized_end=2780 + _globals['_CLOUDEVENTREQUEST']._serialized_start=2783 + _globals['_CLOUDEVENTREQUEST']._serialized_end=3102 + _globals['_CLOUDEVENTRESPONSE']._serialized_start=3104 + _globals['_CLOUDEVENTRESPONSE']._serialized_end=3124 + _globals['_ARTIFACTREGISTRY']._serialized_start=3127 + _globals['_ARTIFACTREGISTRY']._serialized_end=4594 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2.pyi index 1389d3da24..cca1eae8e1 100644 --- a/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2.pyi @@ -1,10 +1,12 @@ from google.protobuf import any_pb2 as _any_pb2 +from google.api import annotations_pb2 as _annotations_pb2 from flyteidl.admin import launch_plan_pb2 as _launch_plan_pb2 from flyteidl.core import literals_pb2 as _literals_pb2 from flyteidl.core import types_pb2 as _types_pb2 from flyteidl.core import identifier_pb2 as _identifier_pb2 from flyteidl.core import artifact_id_pb2 as _artifact_id_pb2 from flyteidl.core import interface_pb2 as _interface_pb2 +from flyteidl.event import cloudevents_pb2 as _cloudevents_pb2 from google.protobuf.internal import containers as _containers from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -44,14 +46,13 @@ class CreateArtifactRequest(_message.Message): def __init__(self, artifact_key: _Optional[_Union[_artifact_id_pb2.ArtifactKey, _Mapping]] = ..., version: _Optional[str] = ..., spec: _Optional[_Union[ArtifactSpec, _Mapping]] = ..., partitions: _Optional[_Mapping[str, str]] = ..., tag: _Optional[str] = ...) -> None: ... class ArtifactSpec(_message.Message): - __slots__ = ["value", "type", "task_execution", "execution", "principal", "short_description", "long_description", "user_metadata", "metadata_type"] + __slots__ = ["value", "type", "task_execution", "execution", "principal", "short_description", "user_metadata", "metadata_type"] VALUE_FIELD_NUMBER: _ClassVar[int] TYPE_FIELD_NUMBER: _ClassVar[int] TASK_EXECUTION_FIELD_NUMBER: _ClassVar[int] EXECUTION_FIELD_NUMBER: _ClassVar[int] PRINCIPAL_FIELD_NUMBER: _ClassVar[int] SHORT_DESCRIPTION_FIELD_NUMBER: _ClassVar[int] - LONG_DESCRIPTION_FIELD_NUMBER: _ClassVar[int] USER_METADATA_FIELD_NUMBER: _ClassVar[int] METADATA_TYPE_FIELD_NUMBER: _ClassVar[int] value: _literals_pb2.Literal @@ -60,10 +61,9 @@ class ArtifactSpec(_message.Message): execution: _identifier_pb2.WorkflowExecutionIdentifier principal: str short_description: str - long_description: str user_metadata: _any_pb2.Any metadata_type: str - def __init__(self, value: _Optional[_Union[_literals_pb2.Literal, _Mapping]] = ..., type: _Optional[_Union[_types_pb2.LiteralType, _Mapping]] = ..., task_execution: _Optional[_Union[_identifier_pb2.TaskExecutionIdentifier, _Mapping]] = ..., execution: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., principal: _Optional[str] = ..., short_description: _Optional[str] = ..., long_description: _Optional[str] = ..., user_metadata: _Optional[_Union[_any_pb2.Any, _Mapping]] = ..., metadata_type: _Optional[str] = ...) -> None: ... + def __init__(self, value: _Optional[_Union[_literals_pb2.Literal, _Mapping]] = ..., type: _Optional[_Union[_types_pb2.LiteralType, _Mapping]] = ..., task_execution: _Optional[_Union[_identifier_pb2.TaskExecutionIdentifier, _Mapping]] = ..., execution: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., principal: _Optional[str] = ..., short_description: _Optional[str] = ..., user_metadata: _Optional[_Union[_any_pb2.Any, _Mapping]] = ..., metadata_type: _Optional[str] = ...) -> None: ... class CreateArtifactResponse(_message.Message): __slots__ = ["artifact"] @@ -99,13 +99,19 @@ class ListArtifactNamesResponse(_message.Message): artifact_keys: _containers.RepeatedCompositeFieldContainer[_artifact_id_pb2.ArtifactKey] def __init__(self, artifact_keys: _Optional[_Iterable[_Union[_artifact_id_pb2.ArtifactKey, _Mapping]]] = ...) -> None: ... -class ListArtifactsRequest(_message.Message): - __slots__ = ["artifact_key"] +class SearchArtifactsRequest(_message.Message): + __slots__ = ["artifact_key", "filters", "token", "limit"] ARTIFACT_KEY_FIELD_NUMBER: _ClassVar[int] + FILTERS_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + LIMIT_FIELD_NUMBER: _ClassVar[int] artifact_key: _artifact_id_pb2.ArtifactKey - def __init__(self, artifact_key: _Optional[_Union[_artifact_id_pb2.ArtifactKey, _Mapping]] = ...) -> None: ... + filters: str + token: str + limit: int + def __init__(self, artifact_key: _Optional[_Union[_artifact_id_pb2.ArtifactKey, _Mapping]] = ..., filters: _Optional[str] = ..., token: _Optional[str] = ..., limit: _Optional[int] = ...) -> None: ... -class ListArtifactsResponse(_message.Message): +class SearchArtifactsResponse(_message.Message): __slots__ = ["artifacts"] ARTIFACTS_FIELD_NUMBER: _ClassVar[int] artifacts: _containers.RepeatedCompositeFieldContainer[Artifact] @@ -176,3 +182,17 @@ class RegisterConsumerRequest(_message.Message): class RegisterResponse(_message.Message): __slots__ = [] def __init__(self) -> None: ... + +class CloudEventRequest(_message.Message): + __slots__ = ["workflow_execution_event", "task_execution_event", "node_execution_event"] + WORKFLOW_EXECUTION_EVENT_FIELD_NUMBER: _ClassVar[int] + TASK_EXECUTION_EVENT_FIELD_NUMBER: _ClassVar[int] + NODE_EXECUTION_EVENT_FIELD_NUMBER: _ClassVar[int] + workflow_execution_event: _cloudevents_pb2.CloudEventWorkflowExecution + task_execution_event: _cloudevents_pb2.CloudEventTaskExecution + node_execution_event: _cloudevents_pb2.CloudEventNodeExecution + def __init__(self, workflow_execution_event: _Optional[_Union[_cloudevents_pb2.CloudEventWorkflowExecution, _Mapping]] = ..., task_execution_event: _Optional[_Union[_cloudevents_pb2.CloudEventTaskExecution, _Mapping]] = ..., node_execution_event: _Optional[_Union[_cloudevents_pb2.CloudEventNodeExecution, _Mapping]] = ...) -> None: ... + +class CloudEventResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... diff --git a/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2_grpc.py b/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2_grpc.py index f4d13fe4d6..6e01592a77 100644 --- a/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2_grpc.py +++ b/flyteidl/gen/pb_python/flyteidl/artifact/artifacts_pb2_grpc.py @@ -24,6 +24,11 @@ def __init__(self, channel): request_serializer=flyteidl_dot_artifact_dot_artifacts__pb2.GetArtifactRequest.SerializeToString, response_deserializer=flyteidl_dot_artifact_dot_artifacts__pb2.GetArtifactResponse.FromString, ) + self.SearchArtifacts = channel.unary_unary( + '/flyteidl.artifact.ArtifactRegistry/SearchArtifacts', + request_serializer=flyteidl_dot_artifact_dot_artifacts__pb2.SearchArtifactsRequest.SerializeToString, + response_deserializer=flyteidl_dot_artifact_dot_artifacts__pb2.SearchArtifactsResponse.FromString, + ) self.CreateTrigger = channel.unary_unary( '/flyteidl.artifact.ArtifactRegistry/CreateTrigger', request_serializer=flyteidl_dot_artifact_dot_artifacts__pb2.CreateTriggerRequest.SerializeToString, @@ -66,12 +71,14 @@ def GetArtifact(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def CreateTrigger(self, request, context): - """rpc ListArtifactNames (ListArtifactNamesRequest) returns (ListArtifactNamesResponse) {} - - rpc ListArtifacts (ListArtifactsRequest) returns (ListArtifactsResponse) {} + def SearchArtifacts(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - """ + def CreateTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') @@ -113,6 +120,11 @@ def add_ArtifactRegistryServicer_to_server(servicer, server): request_deserializer=flyteidl_dot_artifact_dot_artifacts__pb2.GetArtifactRequest.FromString, response_serializer=flyteidl_dot_artifact_dot_artifacts__pb2.GetArtifactResponse.SerializeToString, ), + 'SearchArtifacts': grpc.unary_unary_rpc_method_handler( + servicer.SearchArtifacts, + request_deserializer=flyteidl_dot_artifact_dot_artifacts__pb2.SearchArtifactsRequest.FromString, + response_serializer=flyteidl_dot_artifact_dot_artifacts__pb2.SearchArtifactsResponse.SerializeToString, + ), 'CreateTrigger': grpc.unary_unary_rpc_method_handler( servicer.CreateTrigger, request_deserializer=flyteidl_dot_artifact_dot_artifacts__pb2.CreateTriggerRequest.FromString, @@ -182,6 +194,23 @@ def GetArtifact(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def SearchArtifacts(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.artifact.ArtifactRegistry/SearchArtifacts', + flyteidl_dot_artifact_dot_artifacts__pb2.SearchArtifactsRequest.SerializeToString, + flyteidl_dot_artifact_dot_artifacts__pb2.SearchArtifactsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def CreateTrigger(request, target, diff --git a/flyteidl/gen/pb_python/flyteidl/event/cloudevents_pb2.py b/flyteidl/gen/pb_python/flyteidl/event/cloudevents_pb2.py index 08b5e1af62..66c22ee318 100644 --- a/flyteidl/gen/pb_python/flyteidl/event/cloudevents_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/event/cloudevents_pb2.py @@ -19,7 +19,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/event/cloudevents.proto\x12\x0e\x66lyteidl.event\x1a\x1a\x66lyteidl/event/event.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1d\x66lyteidl/core/interface.proto\x1a\x1f\x66lyteidl/core/artifact_id.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd8\x04\n\x1b\x43loudEventWorkflowExecution\x12\x43\n\traw_event\x18\x01 \x01(\x0b\x32&.flyteidl.event.WorkflowExecutionEventR\x08rawEvent\x12:\n\x0boutput_data\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\noutputData\x12H\n\x10output_interface\x18\x03 \x01(\x0b\x32\x1d.flyteidl.core.TypedInterfaceR\x0foutputInterface\x12\x38\n\ninput_data\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\tinputData\x12=\n\x0cscheduled_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12<\n\x0c\x61rtifact_ids\x18\x06 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\x12Z\n\x15parent_node_execution\x18\x07 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x13parentNodeExecution\x12[\n\x13reference_execution\x18\x08 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x12referenceExecution\"Z\n\x17\x43loudEventNodeExecution\x12?\n\traw_event\x18\x01 \x01(\x0b\x32\".flyteidl.event.NodeExecutionEventR\x08rawEvent\"\xd0\x04\n\x17\x43loudEventTaskExecution\x12?\n\traw_event\x18\x01 \x01(\x0b\x32\".flyteidl.event.TaskExecutionEventR\x08rawEvent\x12:\n\x0boutput_data\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\noutputData\x12H\n\x10output_interface\x18\x03 \x01(\x0b\x32\x1d.flyteidl.core.TypedInterfaceR\x0foutputInterface\x12\x38\n\ninput_data\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\tinputData\x12=\n\x0cscheduled_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12<\n\x0c\x61rtifact_ids\x18\x06 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\x12Z\n\x15parent_node_execution\x18\x07 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x13parentNodeExecution\x12[\n\x13reference_execution\x18\x08 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x12referenceExecution\"\xc9\x02\n\x18\x43loudEventExecutionStart\x12M\n\x0c\x65xecution_id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x0b\x65xecutionId\x12?\n\x0elaunch_plan_id\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x0claunchPlanId\x12:\n\x0bworkflow_id\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nworkflowId\x12<\n\x0c\x61rtifact_ids\x18\x04 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\x12#\n\rartifact_keys\x18\x05 \x03(\tR\x0c\x61rtifactKeysB\xbc\x01\n\x12\x63om.flyteidl.eventB\x10\x43loudeventsProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/event\xa2\x02\x03\x46\x45X\xaa\x02\x0e\x46lyteidl.Event\xca\x02\x0e\x46lyteidl\\Event\xe2\x02\x1a\x46lyteidl\\Event\\GPBMetadata\xea\x02\x0f\x46lyteidl::Eventb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/event/cloudevents.proto\x12\x0e\x66lyteidl.event\x1a\x1a\x66lyteidl/event/event.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1d\x66lyteidl/core/interface.proto\x1a\x1f\x66lyteidl/core/artifact_id.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x99\x05\n\x1b\x43loudEventWorkflowExecution\x12\x43\n\traw_event\x18\x01 \x01(\x0b\x32&.flyteidl.event.WorkflowExecutionEventR\x08rawEvent\x12:\n\x0boutput_data\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\noutputData\x12H\n\x10output_interface\x18\x03 \x01(\x0b\x32\x1d.flyteidl.core.TypedInterfaceR\x0foutputInterface\x12\x38\n\ninput_data\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\tinputData\x12=\n\x0cscheduled_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12<\n\x0c\x61rtifact_ids\x18\x06 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\x12Z\n\x15parent_node_execution\x18\x07 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x13parentNodeExecution\x12[\n\x13reference_execution\x18\x08 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x12referenceExecution\x12?\n\x0elaunch_plan_id\x18\t \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x0claunchPlanId\"Z\n\x17\x43loudEventNodeExecution\x12?\n\traw_event\x18\x01 \x01(\x0b\x32\".flyteidl.event.NodeExecutionEventR\x08rawEvent\"\x91\x05\n\x17\x43loudEventTaskExecution\x12?\n\traw_event\x18\x01 \x01(\x0b\x32\".flyteidl.event.TaskExecutionEventR\x08rawEvent\x12:\n\x0boutput_data\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\noutputData\x12H\n\x10output_interface\x18\x03 \x01(\x0b\x32\x1d.flyteidl.core.TypedInterfaceR\x0foutputInterface\x12\x38\n\ninput_data\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\tinputData\x12=\n\x0cscheduled_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12<\n\x0c\x61rtifact_ids\x18\x06 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\x12Z\n\x15parent_node_execution\x18\x07 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x13parentNodeExecution\x12[\n\x13reference_execution\x18\x08 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x12referenceExecution\x12?\n\x0elaunch_plan_id\x18\t \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x0claunchPlanId\"\xc9\x02\n\x18\x43loudEventExecutionStart\x12M\n\x0c\x65xecution_id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x0b\x65xecutionId\x12?\n\x0elaunch_plan_id\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x0claunchPlanId\x12:\n\x0bworkflow_id\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nworkflowId\x12<\n\x0c\x61rtifact_ids\x18\x04 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\x12#\n\rartifact_keys\x18\x05 \x03(\tR\x0c\x61rtifactKeysB\xbc\x01\n\x12\x63om.flyteidl.eventB\x10\x43loudeventsProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/event\xa2\x02\x03\x46\x45X\xaa\x02\x0e\x46lyteidl.Event\xca\x02\x0e\x46lyteidl\\Event\xe2\x02\x1a\x46lyteidl\\Event\\GPBMetadata\xea\x02\x0f\x46lyteidl::Eventb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,11 +29,11 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.eventB\020CloudeventsProtoP\001Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/event\242\002\003FEX\252\002\016Flyteidl.Event\312\002\016Flyteidl\\Event\342\002\032Flyteidl\\Event\\GPBMetadata\352\002\017Flyteidl::Event' _globals['_CLOUDEVENTWORKFLOWEXECUTION']._serialized_start=240 - _globals['_CLOUDEVENTWORKFLOWEXECUTION']._serialized_end=840 - _globals['_CLOUDEVENTNODEEXECUTION']._serialized_start=842 - _globals['_CLOUDEVENTNODEEXECUTION']._serialized_end=932 - _globals['_CLOUDEVENTTASKEXECUTION']._serialized_start=935 - _globals['_CLOUDEVENTTASKEXECUTION']._serialized_end=1527 - _globals['_CLOUDEVENTEXECUTIONSTART']._serialized_start=1530 - _globals['_CLOUDEVENTEXECUTIONSTART']._serialized_end=1859 + _globals['_CLOUDEVENTWORKFLOWEXECUTION']._serialized_end=905 + _globals['_CLOUDEVENTNODEEXECUTION']._serialized_start=907 + _globals['_CLOUDEVENTNODEEXECUTION']._serialized_end=997 + _globals['_CLOUDEVENTTASKEXECUTION']._serialized_start=1000 + _globals['_CLOUDEVENTTASKEXECUTION']._serialized_end=1657 + _globals['_CLOUDEVENTEXECUTIONSTART']._serialized_start=1660 + _globals['_CLOUDEVENTEXECUTIONSTART']._serialized_end=1989 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/event/cloudevents_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/event/cloudevents_pb2.pyi index 95555a9236..059455bb30 100644 --- a/flyteidl/gen/pb_python/flyteidl/event/cloudevents_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/event/cloudevents_pb2.pyi @@ -12,7 +12,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map DESCRIPTOR: _descriptor.FileDescriptor class CloudEventWorkflowExecution(_message.Message): - __slots__ = ["raw_event", "output_data", "output_interface", "input_data", "scheduled_at", "artifact_ids", "parent_node_execution", "reference_execution"] + __slots__ = ["raw_event", "output_data", "output_interface", "input_data", "scheduled_at", "artifact_ids", "parent_node_execution", "reference_execution", "launch_plan_id"] RAW_EVENT_FIELD_NUMBER: _ClassVar[int] OUTPUT_DATA_FIELD_NUMBER: _ClassVar[int] OUTPUT_INTERFACE_FIELD_NUMBER: _ClassVar[int] @@ -21,6 +21,7 @@ class CloudEventWorkflowExecution(_message.Message): ARTIFACT_IDS_FIELD_NUMBER: _ClassVar[int] PARENT_NODE_EXECUTION_FIELD_NUMBER: _ClassVar[int] REFERENCE_EXECUTION_FIELD_NUMBER: _ClassVar[int] + LAUNCH_PLAN_ID_FIELD_NUMBER: _ClassVar[int] raw_event: _event_pb2.WorkflowExecutionEvent output_data: _literals_pb2.LiteralMap output_interface: _interface_pb2.TypedInterface @@ -29,7 +30,8 @@ class CloudEventWorkflowExecution(_message.Message): artifact_ids: _containers.RepeatedCompositeFieldContainer[_artifact_id_pb2.ArtifactID] parent_node_execution: _identifier_pb2.NodeExecutionIdentifier reference_execution: _identifier_pb2.WorkflowExecutionIdentifier - def __init__(self, raw_event: _Optional[_Union[_event_pb2.WorkflowExecutionEvent, _Mapping]] = ..., output_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., output_interface: _Optional[_Union[_interface_pb2.TypedInterface, _Mapping]] = ..., input_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., scheduled_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., artifact_ids: _Optional[_Iterable[_Union[_artifact_id_pb2.ArtifactID, _Mapping]]] = ..., parent_node_execution: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ..., reference_execution: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ...) -> None: ... + launch_plan_id: _identifier_pb2.Identifier + def __init__(self, raw_event: _Optional[_Union[_event_pb2.WorkflowExecutionEvent, _Mapping]] = ..., output_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., output_interface: _Optional[_Union[_interface_pb2.TypedInterface, _Mapping]] = ..., input_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., scheduled_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., artifact_ids: _Optional[_Iterable[_Union[_artifact_id_pb2.ArtifactID, _Mapping]]] = ..., parent_node_execution: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ..., reference_execution: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., launch_plan_id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ...) -> None: ... class CloudEventNodeExecution(_message.Message): __slots__ = ["raw_event"] @@ -38,7 +40,7 @@ class CloudEventNodeExecution(_message.Message): def __init__(self, raw_event: _Optional[_Union[_event_pb2.NodeExecutionEvent, _Mapping]] = ...) -> None: ... class CloudEventTaskExecution(_message.Message): - __slots__ = ["raw_event", "output_data", "output_interface", "input_data", "scheduled_at", "artifact_ids", "parent_node_execution", "reference_execution"] + __slots__ = ["raw_event", "output_data", "output_interface", "input_data", "scheduled_at", "artifact_ids", "parent_node_execution", "reference_execution", "launch_plan_id"] RAW_EVENT_FIELD_NUMBER: _ClassVar[int] OUTPUT_DATA_FIELD_NUMBER: _ClassVar[int] OUTPUT_INTERFACE_FIELD_NUMBER: _ClassVar[int] @@ -47,6 +49,7 @@ class CloudEventTaskExecution(_message.Message): ARTIFACT_IDS_FIELD_NUMBER: _ClassVar[int] PARENT_NODE_EXECUTION_FIELD_NUMBER: _ClassVar[int] REFERENCE_EXECUTION_FIELD_NUMBER: _ClassVar[int] + LAUNCH_PLAN_ID_FIELD_NUMBER: _ClassVar[int] raw_event: _event_pb2.TaskExecutionEvent output_data: _literals_pb2.LiteralMap output_interface: _interface_pb2.TypedInterface @@ -55,7 +58,8 @@ class CloudEventTaskExecution(_message.Message): artifact_ids: _containers.RepeatedCompositeFieldContainer[_artifact_id_pb2.ArtifactID] parent_node_execution: _identifier_pb2.NodeExecutionIdentifier reference_execution: _identifier_pb2.WorkflowExecutionIdentifier - def __init__(self, raw_event: _Optional[_Union[_event_pb2.TaskExecutionEvent, _Mapping]] = ..., output_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., output_interface: _Optional[_Union[_interface_pb2.TypedInterface, _Mapping]] = ..., input_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., scheduled_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., artifact_ids: _Optional[_Iterable[_Union[_artifact_id_pb2.ArtifactID, _Mapping]]] = ..., parent_node_execution: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ..., reference_execution: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ...) -> None: ... + launch_plan_id: _identifier_pb2.Identifier + def __init__(self, raw_event: _Optional[_Union[_event_pb2.TaskExecutionEvent, _Mapping]] = ..., output_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., output_interface: _Optional[_Union[_interface_pb2.TypedInterface, _Mapping]] = ..., input_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., scheduled_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., artifact_ids: _Optional[_Iterable[_Union[_artifact_id_pb2.ArtifactID, _Mapping]]] = ..., parent_node_execution: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ..., reference_execution: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., launch_plan_id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ...) -> None: ... class CloudEventExecutionStart(_message.Message): __slots__ = ["execution_id", "launch_plan_id", "workflow_id", "artifact_ids", "artifact_keys"] diff --git a/flyteidl/gen/pb_rust/flyteidl.artifact.rs b/flyteidl/gen/pb_rust/flyteidl.artifact.rs index e2d65967b9..7a8bda96fd 100644 --- a/flyteidl/gen/pb_rust/flyteidl.artifact.rs +++ b/flyteidl/gen/pb_rust/flyteidl.artifact.rs @@ -46,8 +46,6 @@ pub struct ArtifactSpec { pub principal: ::prost::alloc::string::String, #[prost(string, tag="8")] pub short_description: ::prost::alloc::string::String, - #[prost(string, tag="9")] - pub long_description: ::prost::alloc::string::String, /// Additional user metadata #[prost(message, optional, tag="10")] pub user_metadata: ::core::option::Option<::prost_types::Any>, @@ -91,13 +89,19 @@ pub struct ListArtifactNamesResponse { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ListArtifactsRequest { +pub struct SearchArtifactsRequest { #[prost(message, optional, tag="1")] pub artifact_key: ::core::option::Option, + #[prost(string, tag="2")] + pub filters: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub token: ::prost::alloc::string::String, + #[prost(int32, tag="4")] + pub limit: i32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ListArtifactsResponse { +pub struct SearchArtifactsResponse { #[prost(message, repeated, tag="1")] pub artifacts: ::prost::alloc::vec::Vec, } @@ -174,4 +178,27 @@ pub struct RegisterConsumerRequest { #[derive(Clone, PartialEq, ::prost::Message)] pub struct RegisterResponse { } +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CloudEventRequest { + #[prost(oneof="cloud_event_request::Event", tags="1, 2, 3")] + pub event: ::core::option::Option, +} +/// Nested message and enum types in `CloudEventRequest`. +pub mod cloud_event_request { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Event { + #[prost(message, tag="1")] + WorkflowExecutionEvent(super::super::event::CloudEventWorkflowExecution), + #[prost(message, tag="2")] + TaskExecutionEvent(super::super::event::CloudEventTaskExecution), + #[prost(message, tag="3")] + NodeExecutionEvent(super::super::event::CloudEventNodeExecution), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CloudEventResponse { +} // @@protoc_insertion_point(module) diff --git a/flyteidl/gen/pb_rust/flyteidl.event.rs b/flyteidl/gen/pb_rust/flyteidl.event.rs index d0ed13d8af..21a05e3729 100644 --- a/flyteidl/gen/pb_rust/flyteidl.event.rs +++ b/flyteidl/gen/pb_rust/flyteidl.event.rs @@ -408,6 +408,11 @@ pub struct CloudEventWorkflowExecution { pub parent_node_execution: ::core::option::Option, #[prost(message, optional, tag="8")] pub reference_execution: ::core::option::Option, + /// The ID of the LP that generated the execution that generated the Artifact. + /// Here for provenance information. + /// Launch plan IDs are easier to get than workflow IDs so we'll use these for now. + #[prost(message, optional, tag="9")] + pub launch_plan_id: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -438,6 +443,11 @@ pub struct CloudEventTaskExecution { pub parent_node_execution: ::core::option::Option, #[prost(message, optional, tag="8")] pub reference_execution: ::core::option::Option, + /// The ID of the LP that generated the execution that generated the Artifact. + /// Here for provenance information. + /// Launch plan IDs are easier to get than workflow IDs so we'll use these for now. + #[prost(message, optional, tag="9")] + pub launch_plan_id: ::core::option::Option, } /// This event is to be sent by Admin after it creates an execution. #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/flyteidl/go.mod b/flyteidl/go.mod index cab3731451..fd519dcbca 100644 --- a/flyteidl/go.mod +++ b/flyteidl/go.mod @@ -17,7 +17,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 - golang.org/x/net v0.9.0 + golang.org/x/net v0.10.0 golang.org/x/oauth2 v0.7.0 google.golang.org/api v0.114.0 google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 @@ -74,8 +74,8 @@ require ( github.com/spf13/cobra v1.4.0 // indirect github.com/stretchr/objx v0.5.0 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f // indirect - golang.org/x/sys v0.7.0 // indirect + golang.org/x/crypto v0.9.0 // indirect + golang.org/x/sys v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.1.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect diff --git a/flyteidl/go.sum b/flyteidl/go.sum index 46a0f9be44..955074ff15 100644 --- a/flyteidl/go.sum +++ b/flyteidl/go.sum @@ -404,8 +404,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/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.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -473,8 +473,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.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -540,8 +540,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.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/flyteidl/protos/flyteidl/artifact/artifacts.proto b/flyteidl/protos/flyteidl/artifact/artifacts.proto index a0656ca289..ceadd16a11 100644 --- a/flyteidl/protos/flyteidl/artifact/artifacts.proto +++ b/flyteidl/protos/flyteidl/artifact/artifacts.proto @@ -3,8 +3,8 @@ package flyteidl.artifact; option go_package = "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/artifact"; - import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; import "flyteidl/admin/launch_plan.proto"; import "flyteidl/core/literals.proto"; @@ -12,6 +12,7 @@ import "flyteidl/core/types.proto"; import "flyteidl/core/identifier.proto"; import "flyteidl/core/artifact_id.proto"; import "flyteidl/core/interface.proto"; +import "flyteidl/event/cloudevents.proto"; message Artifact { @@ -21,6 +22,8 @@ message Artifact { // references the tag field in ArtifactTag repeated string tags = 3; + + // 4. and the source message should be added here instead } message CreateArtifactRequest { @@ -34,8 +37,13 @@ message CreateArtifactRequest { map partitions = 4; string tag = 5; + + // 2. We should add the source field to this. } +// 1. Should add a new Source message that encapsulates all three of principal, task execution id, workflow execution id, +// as well as the workflow and launch plan id responsible for the execution that generated the artifact (if not an upload) + message ArtifactSpec { core.Literal value = 1; @@ -44,6 +52,7 @@ message ArtifactSpec { // type to all Literals is a lot of work. core.LiteralType type = 2; + // 3. These fields should be removed. // Outputs of tasks will have this. core.TaskExecutionIdentifier task_execution = 5; @@ -54,7 +63,6 @@ message ArtifactSpec { string principal = 7; string short_description = 8; - string long_description = 9; // Additional user metadata google.protobuf.Any user_metadata = 10; @@ -87,11 +95,15 @@ message ListArtifactNamesResponse { repeated core.ArtifactKey artifact_keys = 1; } -message ListArtifactsRequest { +message SearchArtifactsRequest { core.ArtifactKey artifact_key = 1; + + string filters = 2; + string token = 3; + int32 limit = 4; } -message ListArtifactsResponse { +message SearchArtifactsResponse { repeated Artifact artifacts = 1; } @@ -146,14 +158,38 @@ message RegisterConsumerRequest { message RegisterResponse {} +message CloudEventRequest { + oneof event { + event.CloudEventWorkflowExecution workflow_execution_event = 1; + event.CloudEventTaskExecution task_execution_event = 2; + event.CloudEventNodeExecution node_execution_event = 3; + } +} + +message CloudEventResponse {} + service ArtifactRegistry { - rpc CreateArtifact (CreateArtifactRequest) returns (CreateArtifactResponse) {} + rpc CreateArtifact (CreateArtifactRequest) returns (CreateArtifactResponse) { + + } + + rpc GetArtifact (GetArtifactRequest) returns (GetArtifactResponse) { + option (google.api.http) = { + get: "/data/v1/artifacts" + additional_bindings {get: "/data/v1/artifact/id/{query.artifact_id.artifact_key.project}/{query.artifact_id.artifact_key.domain}/{query.artifact_id.artifact_key.name}/{query.artifact_id.version}"} + additional_bindings {get: "/data/v1/artifact/id/{query.artifact_id.artifact_key.project}/{query.artifact_id.artifact_key.domain}/{query.artifact_id.artifact_key.name}"} + additional_bindings {get: "/data/v1/artifact/tag/{query.artifact_tag.artifact_key.project}/{query.artifact_tag.artifact_key.domain}/{query.artifact_tag.artifact_key.name}"} + }; + - rpc GetArtifact (GetArtifactRequest) returns (GetArtifactResponse) {} + } -// rpc ListArtifactNames (ListArtifactNamesRequest) returns (ListArtifactNamesResponse) {} -// -// rpc ListArtifacts (ListArtifactsRequest) returns (ListArtifactsResponse) {} + rpc SearchArtifacts (SearchArtifactsRequest) returns (SearchArtifactsResponse) { + option (google.api.http) = { + get: "/data/v1/query/{artifact_key.project}/{artifact_key.domain}/{artifact_key.name}" + additional_bindings {get: "/data/v1/query/{artifact_key.project}/{artifact_key.domain}"} + }; + } rpc CreateTrigger (CreateTriggerRequest) returns (CreateTriggerResponse) {} diff --git a/flyteidl/protos/flyteidl/event/cloudevents.proto b/flyteidl/protos/flyteidl/event/cloudevents.proto index eb354fe3dd..4ef7425c55 100644 --- a/flyteidl/protos/flyteidl/event/cloudevents.proto +++ b/flyteidl/protos/flyteidl/event/cloudevents.proto @@ -28,6 +28,11 @@ message CloudEventWorkflowExecution { repeated core.ArtifactID artifact_ids = 6; core.NodeExecutionIdentifier parent_node_execution = 7; core.WorkflowExecutionIdentifier reference_execution = 8; + + // The ID of the LP that generated the execution that generated the Artifact. + // Here for provenance information. + // Launch plan IDs are easier to get than workflow IDs so we'll use these for now. + core.Identifier launch_plan_id = 9; } @@ -53,6 +58,10 @@ message CloudEventTaskExecution { core.NodeExecutionIdentifier parent_node_execution = 7; core.WorkflowExecutionIdentifier reference_execution = 8; + // The ID of the LP that generated the execution that generated the Artifact. + // Here for provenance information. + // Launch plan IDs are easier to get than workflow IDs so we'll use these for now. + core.Identifier launch_plan_id = 9; } // This event is to be sent by Admin after it creates an execution. diff --git a/flyteplugins/go.mod b/flyteplugins/go.mod index 72af6857e1..e8857717a2 100644 --- a/flyteplugins/go.mod +++ b/flyteplugins/go.mod @@ -27,7 +27,7 @@ require ( 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/net v0.10.0 golang.org/x/oauth2 v0.7.0 google.golang.org/api v0.114.0 google.golang.org/grpc v1.56.1 @@ -116,9 +116,9 @@ 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/sys v0.7.0 // indirect - golang.org/x/term v0.7.0 // indirect + golang.org/x/crypto v0.9.0 // indirect + golang.org/x/sys v0.8.0 // indirect + golang.org/x/term v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.1.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect diff --git a/flyteplugins/go.sum b/flyteplugins/go.sum index b47b530091..7c6553ed32 100644 --- a/flyteplugins/go.sum +++ b/flyteplugins/go.sum @@ -689,8 +689,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y 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.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -725,7 +725,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.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= 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= @@ -776,8 +776,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b 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.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -874,12 +874,12 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc 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.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-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.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= 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= diff --git a/flytepropeller/go.mod b/flytepropeller/go.mod index 249353d809..9240481300 100644 --- a/flytepropeller/go.mod +++ b/flytepropeller/go.mod @@ -121,11 +121,11 @@ 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/crypto v0.9.0 // indirect + golang.org/x/net v0.10.0 // indirect golang.org/x/oauth2 v0.7.0 // indirect golang.org/x/sys v0.12.0 // indirect - golang.org/x/term v0.7.0 // indirect + golang.org/x/term v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect diff --git a/flytepropeller/go.sum b/flytepropeller/go.sum index 5430099db3..f6f14ecda2 100644 --- a/flytepropeller/go.sum +++ b/flytepropeller/go.sum @@ -820,8 +820,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y 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.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -916,8 +916,8 @@ golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qx 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.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1027,8 +1027,8 @@ 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/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= 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= diff --git a/flytestdlib/config/clouddeployment_enumer.go b/flytestdlib/config/clouddeployment_enumer.go new file mode 100644 index 0000000000..b4ee421c47 --- /dev/null +++ b/flytestdlib/config/clouddeployment_enumer.go @@ -0,0 +1,87 @@ +// Code generated by "enumer --type=CloudDeployment -json -yaml -trimprefix=CloudDeployment"; DO NOT EDIT. + +package config + +import ( + "encoding/json" + "fmt" +) + +const _CloudDeploymentName = "NoneAWSGCPSandboxLocal" + +var _CloudDeploymentIndex = [...]uint8{0, 4, 7, 10, 17, 22} + +func (i CloudDeployment) String() string { + if i >= CloudDeployment(len(_CloudDeploymentIndex)-1) { + return fmt.Sprintf("CloudDeployment(%d)", i) + } + return _CloudDeploymentName[_CloudDeploymentIndex[i]:_CloudDeploymentIndex[i+1]] +} + +var _CloudDeploymentValues = []CloudDeployment{0, 1, 2, 3, 4} + +var _CloudDeploymentNameToValueMap = map[string]CloudDeployment{ + _CloudDeploymentName[0:4]: 0, + _CloudDeploymentName[4:7]: 1, + _CloudDeploymentName[7:10]: 2, + _CloudDeploymentName[10:17]: 3, + _CloudDeploymentName[17:22]: 4, +} + +// CloudDeploymentString retrieves an enum value from the enum constants string name. +// Throws an error if the param is not part of the enum. +func CloudDeploymentString(s string) (CloudDeployment, error) { + if val, ok := _CloudDeploymentNameToValueMap[s]; ok { + return val, nil + } + return 0, fmt.Errorf("%s does not belong to CloudDeployment values", s) +} + +// CloudDeploymentValues returns all values of the enum +func CloudDeploymentValues() []CloudDeployment { + return _CloudDeploymentValues +} + +// IsACloudDeployment returns "true" if the value is listed in the enum definition. "false" otherwise +func (i CloudDeployment) IsACloudDeployment() bool { + for _, v := range _CloudDeploymentValues { + if i == v { + return true + } + } + return false +} + +// MarshalJSON implements the json.Marshaler interface for CloudDeployment +func (i CloudDeployment) MarshalJSON() ([]byte, error) { + return json.Marshal(i.String()) +} + +// UnmarshalJSON implements the json.Unmarshaler interface for CloudDeployment +func (i *CloudDeployment) UnmarshalJSON(data []byte) error { + var s string + if err := json.Unmarshal(data, &s); err != nil { + return fmt.Errorf("CloudDeployment should be a string, got %s", data) + } + + var err error + *i, err = CloudDeploymentString(s) + return err +} + +// MarshalYAML implements a YAML Marshaler for CloudDeployment +func (i CloudDeployment) MarshalYAML() (interface{}, error) { + return i.String(), nil +} + +// UnmarshalYAML implements a YAML Unmarshaler for CloudDeployment +func (i *CloudDeployment) UnmarshalYAML(unmarshal func(interface{}) error) error { + var s string + if err := unmarshal(&s); err != nil { + return err + } + + var err error + *i, err = CloudDeploymentString(s) + return err +} diff --git a/flytestdlib/config/constants.go b/flytestdlib/config/constants.go new file mode 100644 index 0000000000..cf499ac23c --- /dev/null +++ b/flytestdlib/config/constants.go @@ -0,0 +1,12 @@ +package config + +//go:generate enumer --type=CloudDeployment -json -yaml -trimprefix=CloudDeployment +type CloudDeployment uint8 + +const ( + CloudDeploymentNone CloudDeployment = iota + CloudDeploymentAWS + CloudDeploymentGCP + CloudDeploymentSandbox + CloudDeploymentLocal +) diff --git a/flytestdlib/database/config.go b/flytestdlib/database/config.go index c3dc2a31c0..16ca0e5708 100644 --- a/flytestdlib/database/config.go +++ b/flytestdlib/database/config.go @@ -7,8 +7,8 @@ import ( ) const ( - database = "database" - postgres = "postgres" + database = "database" + postgresStr = "postgres" ) //go:generate pflags DbConfig --default-var=defaultConfig @@ -18,10 +18,12 @@ var defaultConfig = &DbConfig{ MaxOpenConnections: 100, ConnMaxLifeTime: config.Duration{Duration: time.Hour}, Postgres: PostgresConfig{ - Port: 5432, - User: postgres, - Host: postgres, - DbName: postgres, + // These values are suitable for local sandbox development + Host: "localhost", + Port: 30001, + DbName: postgresStr, + User: postgresStr, + Password: postgresStr, ExtraOptions: "sslmode=disable", }, } diff --git a/flytestdlib/database/db.go b/flytestdlib/database/db.go new file mode 100644 index 0000000000..1a8f07760e --- /dev/null +++ b/flytestdlib/database/db.go @@ -0,0 +1,144 @@ +package database + +import ( + "context" + "fmt" + + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/go-gormigrate/gormigrate/v2" + "gorm.io/driver/sqlite" + "gorm.io/gorm" +) + +// GetDB uses the dbConfig to create gorm DB object. If the db doesn't exist for the dbConfig then a new one is created +// using the default db for the provider. eg : postgres has default dbName as postgres +func GetDB(ctx context.Context, dbConfig *DbConfig, logConfig *logger.Config) ( + *gorm.DB, error) { + + if dbConfig == nil { + panic("Cannot initialize database repository from empty db config") + } + gormConfig := &gorm.Config{ + Logger: GetGormLogger(ctx, logConfig), + DisableForeignKeyConstraintWhenMigrating: false, + } + + var gormDb *gorm.DB + var err error + + switch { + case !(dbConfig.SQLite.IsEmpty()): + if dbConfig.SQLite.File == "" { + return nil, fmt.Errorf("illegal sqlite database configuration. `file` is a required parameter and should be a path") + } + gormDb, err = gorm.Open(sqlite.Open(dbConfig.SQLite.File), gormConfig) + if err != nil { + return nil, err + } + case !(dbConfig.Postgres.IsEmpty()): + gormDb, err = CreatePostgresDbIfNotExists(ctx, gormConfig, dbConfig.Postgres) + if err != nil { + return nil, err + } + + case len(dbConfig.DeprecatedHost) > 0 || len(dbConfig.DeprecatedUser) > 0 || len(dbConfig.DeprecatedDbName) > 0: + pgConfig := PostgresConfig{ + Host: dbConfig.DeprecatedHost, + Port: dbConfig.DeprecatedPort, + DbName: dbConfig.DeprecatedDbName, + User: dbConfig.DeprecatedUser, + Password: dbConfig.DeprecatedPassword, + PasswordPath: dbConfig.DeprecatedPasswordPath, + ExtraOptions: dbConfig.DeprecatedExtraOptions, + Debug: dbConfig.DeprecatedDebug, + } + gormDb, err = CreatePostgresDbIfNotExists(ctx, gormConfig, pgConfig) + if err != nil { + return nil, err + } + default: + return nil, fmt.Errorf("unrecognized database config, %v. Supported only postgres and sqlite", dbConfig) + } + + // Setup connection pool settings + return gormDb, setupDbConnectionPool(ctx, gormDb, dbConfig) +} + +func setupDbConnectionPool(ctx context.Context, gormDb *gorm.DB, dbConfig *DbConfig) error { + genericDb, err := gormDb.DB() + if err != nil { + return err + } + genericDb.SetConnMaxLifetime(dbConfig.ConnMaxLifeTime.Duration) + genericDb.SetMaxIdleConns(dbConfig.MaxIdleConnections) + genericDb.SetMaxOpenConns(dbConfig.MaxOpenConnections) + logger.Infof(ctx, "Set connection pool values to [%+v]", genericDb.Stats()) + return nil +} + +func withDB(ctx context.Context, databaseConfig *DbConfig, do func(db *gorm.DB) error) error { + if databaseConfig == nil { + databaseConfig = GetConfig() + } + logConfig := logger.GetConfig() + + db, err := GetDB(ctx, databaseConfig, logConfig) + if err != nil { + logger.Fatal(ctx, err) + } + + sqlDB, err := db.DB() + if err != nil { + logger.Fatal(ctx, err) + } + + defer func(deferCtx context.Context) { + if err = sqlDB.Close(); err != nil { + logger.Fatal(deferCtx, err) + } + }(ctx) + + if err = sqlDB.Ping(); err != nil { + return err + } + + return do(db) +} + +// Migrate runs all configured migrations +func Migrate(ctx context.Context, databaseConfig *DbConfig, migrations []*gormigrate.Migration, initializationSQL string) error { + if len(migrations) == 0 { + logger.Infof(ctx, "No migrations to run") + return nil + } + return withDB(ctx, databaseConfig, func(db *gorm.DB) error { + tx := db.Exec(initializationSQL) + if tx.Error != nil { + return tx.Error + } + + m := gormigrate.New(db, gormigrate.DefaultOptions, migrations) + if err := m.Migrate(); err != nil { + return fmt.Errorf("database migration failed: %v", err) + } + logger.Infof(ctx, "Migration ran successfully") + return nil + }) +} + +// Rollback rolls back the last migration +func Rollback(ctx context.Context, databaseConfig *DbConfig, migrations []*gormigrate.Migration) error { + if len(migrations) == 0 { + logger.Infof(ctx, "No migrations to rollback") + return nil + } + return withDB(ctx, databaseConfig, func(db *gorm.DB) error { + m := gormigrate.New(db, gormigrate.DefaultOptions, migrations) + err := m.RollbackLast() + if err != nil { + return fmt.Errorf("could not rollback latest migration: %v", err) + } + logger.Infof(ctx, "Rolled back one migration successfully") + return nil + }) +} diff --git a/flytestdlib/database/gorm.go b/flytestdlib/database/gorm.go index 17800f712d..246f47a872 100644 --- a/flytestdlib/database/gorm.go +++ b/flytestdlib/database/gorm.go @@ -37,7 +37,10 @@ func GetGormLogger(ctx context.Context, logConfig *logger.Config) gormLogger.Int logLevel = gormLogger.Info ignoreRecordNotFoundError = false default: - logLevel = gormLogger.Silent + logLevel = gormLogger.Info + } + if logConfigLevel > logger.DebugLevel { + logLevel = gormLogger.Info } // Copied from gormLogger.Default initialization. The gormLogger interface only allows modifying the LogLevel // and not IgnoreRecordNotFoundError. diff --git a/flytestdlib/database/postgres.go b/flytestdlib/database/postgres.go new file mode 100644 index 0000000000..404f691168 --- /dev/null +++ b/flytestdlib/database/postgres.go @@ -0,0 +1,103 @@ +package database + +import ( + "context" + "errors" + "fmt" + "io/ioutil" + "os" + "strings" + + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/jackc/pgx/v5/pgconn" + "gorm.io/driver/postgres" + "gorm.io/gorm" +) + +const pqInvalidDBCode = "3D000" +const pqDbAlreadyExistsCode = "42P04" +const defaultDB = "postgres" + +// Resolves a password value from either a user-provided inline value or a filepath whose contents contain a password. +func resolvePassword(ctx context.Context, passwordVal, passwordPath string) string { + password := passwordVal + if len(passwordPath) > 0 { + if _, err := os.Stat(passwordPath); os.IsNotExist(err) { + logger.Fatalf(ctx, + "missing database password at specified path [%s]", passwordPath) + } + passwordVal, err := ioutil.ReadFile(passwordPath) + if err != nil { + logger.Fatalf(ctx, "failed to read database password from path [%s] with err: %v", + passwordPath, err) + } + // Passwords can contain special characters as long as they are percent encoded + // https://www.postgresql.org/docs/current/libpq-connect.html + password = strings.TrimSpace(string(passwordVal)) + } + return password +} + +// Produces the DSN (data source name) for opening a postgres db connection. +func getPostgresDsn(ctx context.Context, pgConfig PostgresConfig) string { + password := resolvePassword(ctx, pgConfig.Password, pgConfig.PasswordPath) + if len(password) == 0 { + // The password-less case is included for development environments. + return fmt.Sprintf("host=%s port=%d dbname=%s user=%s sslmode=disable", + pgConfig.Host, pgConfig.Port, pgConfig.DbName, pgConfig.User) + } + return fmt.Sprintf("host=%s port=%d dbname=%s user=%s password=%s %s", + pgConfig.Host, pgConfig.Port, pgConfig.DbName, pgConfig.User, password, pgConfig.ExtraOptions) +} + +// CreatePostgresDbIfNotExists creates DB if it doesn't exist for the passed in config +func CreatePostgresDbIfNotExists(ctx context.Context, gormConfig *gorm.Config, pgConfig PostgresConfig) (*gorm.DB, error) { + dialector := postgres.Open(getPostgresDsn(ctx, pgConfig)) + gormDb, err := gorm.Open(dialector, gormConfig) + if err == nil { + return gormDb, nil + } + if !isPgErrorWithCode(err, pqInvalidDBCode) { + return nil, err + } + logger.Warningf(ctx, "Database [%v] does not exist", pgConfig.DbName) + + // Every postgres installation includes a 'postgres' database by default. We connect to that now in order to + // initialize the user-specified database. + defaultDbPgConfig := pgConfig + defaultDbPgConfig.DbName = defaultDB + defaultDBDialector := postgres.Open(getPostgresDsn(ctx, defaultDbPgConfig)) + gormDb, err = gorm.Open(defaultDBDialector, gormConfig) + if err != nil { + return nil, err + } + + // Because we asserted earlier that the db does not exist, we create it now. + logger.Infof(ctx, "Creating database %v", pgConfig.DbName) + + // NOTE: golang sql drivers do not support parameter injection for CREATE calls + createDBStatement := fmt.Sprintf("CREATE DATABASE %s", pgConfig.DbName) + result := gormDb.Exec(createDBStatement) + + if result.Error != nil { + if !isPgErrorWithCode(result.Error, pqDbAlreadyExistsCode) { + return nil, result.Error + } + logger.Warningf(ctx, "Got DB already exists error for [%s], skipping...", pgConfig.DbName) + } + // Now try connecting to the db again + return gorm.Open(dialector, gormConfig) +} + +func isPgErrorWithCode(err error, code string) bool { + // Make sure the pgconn you're using is "github.com/jackc/pgx/v5/pgconn" + // See https://github.com/go-gorm/gorm/issues/4135 + pgErr := &pgconn.PgError{} + if !errors.As(err, &pgErr) { + // err chain does not contain a pgconn.PgError + return false + } + + // pgconn.PgError found in chain and set to code specified + return pgErr.Code == code +} diff --git a/flytestdlib/database/postgres_test.go b/flytestdlib/database/postgres_test.go new file mode 100644 index 0000000000..fab6822726 --- /dev/null +++ b/flytestdlib/database/postgres_test.go @@ -0,0 +1,156 @@ +package database + +import ( + "context" + "errors" + "io/ioutil" + "net" + "os" + "testing" + + "github.com/jackc/pgconn" + "github.com/stretchr/testify/assert" +) + +func TestResolvePassword(t *testing.T) { + password := "123abc" + tmpFile, err := os.CreateTemp("", "prefix") + if err != nil { + t.Errorf("Couldn't open temp file: %v", err) + } + defer tmpFile.Close() + if _, err = tmpFile.WriteString(password); err != nil { + t.Errorf("Couldn't write to temp file: %v", err) + } + resolvedPassword := resolvePassword(context.TODO(), "", tmpFile.Name()) + assert.Equal(t, resolvedPassword, password) +} + +func TestGetPostgresDsn(t *testing.T) { + pgConfig := PostgresConfig{ + Host: "localhost", + Port: 5432, + DbName: "postgres", + User: "postgres", + ExtraOptions: "sslmode=disable", + } + t.Run("no password", func(t *testing.T) { + dsn := getPostgresDsn(context.TODO(), pgConfig) + assert.Equal(t, "host=localhost port=5432 dbname=postgres user=postgres sslmode=disable", dsn) + }) + t.Run("with password", func(t *testing.T) { + pgConfig.Password = "pass" + dsn := getPostgresDsn(context.TODO(), pgConfig) + assert.Equal(t, "host=localhost port=5432 dbname=postgres user=postgres password=pass sslmode=disable", dsn) + + }) + t.Run("with password, no extra", func(t *testing.T) { + pgConfig.Password = "pass" + pgConfig.ExtraOptions = "" + dsn := getPostgresDsn(context.TODO(), pgConfig) + assert.Equal(t, "host=localhost port=5432 dbname=postgres user=postgres password=pass ", dsn) + }) + t.Run("with password path", func(t *testing.T) { + password := "123abc" + tmpFile, err := ioutil.TempFile("", "prefix") + if err != nil { + t.Errorf("Couldn't open temp file: %v", err) + } + defer tmpFile.Close() + if _, err = tmpFile.WriteString(password); err != nil { + t.Errorf("Couldn't write to temp file: %v", err) + } + pgConfig.PasswordPath = tmpFile.Name() + dsn := getPostgresDsn(context.TODO(), pgConfig) + assert.Equal(t, "host=localhost port=5432 dbname=postgres user=postgres password=123abc ", dsn) + }) +} + +type wrappedError struct { + err error +} + +func (e *wrappedError) Error() string { + return e.err.Error() +} + +func (e *wrappedError) Unwrap() error { + return e.err +} + +func TestIsInvalidDBPgError(t *testing.T) { + // wrap error with wrappedError when testing to ensure the function checks the whole error chain + + testCases := []struct { + Name string + Err error + ExpectedResult bool + }{ + { + Name: "nil error", + Err: nil, + ExpectedResult: false, + }, + { + Name: "not a PgError", + Err: &wrappedError{err: &net.OpError{Op: "connect", Err: errors.New("connection refused")}}, + ExpectedResult: false, + }, + { + Name: "PgError but not invalid DB", + Err: &wrappedError{&pgconn.PgError{Severity: "FATAL", Message: "out of memory", Code: "53200"}}, + ExpectedResult: false, + }, + { + Name: "PgError and is invalid DB", + Err: &wrappedError{&pgconn.PgError{Severity: "FATAL", Message: "database \"flyte\" does not exist", Code: "3D000"}}, + ExpectedResult: true, + }, + } + + for _, tc := range testCases { + tc := tc + + t.Run(tc.Name, func(t *testing.T) { + assert.Equal(t, tc.ExpectedResult, isPgErrorWithCode(tc.Err, pqInvalidDBCode)) + }) + } +} + +func TestIsPgDbAlreadyExistsError(t *testing.T) { + // wrap error with wrappedError when testing to ensure the function checks the whole error chain + + testCases := []struct { + Name string + Err error + ExpectedResult bool + }{ + { + Name: "nil error", + Err: nil, + ExpectedResult: false, + }, + { + Name: "not a PgError", + Err: &wrappedError{err: &net.OpError{Op: "connect", Err: errors.New("connection refused")}}, + ExpectedResult: false, + }, + { + Name: "PgError but not already exists", + Err: &wrappedError{&pgconn.PgError{Severity: "FATAL", Message: "out of memory", Code: "53200"}}, + ExpectedResult: false, + }, + { + Name: "PgError and is already exists", + Err: &wrappedError{&pgconn.PgError{Severity: "FATAL", Message: "database \"flyte\" does not exist", Code: "42P04"}}, + ExpectedResult: true, + }, + } + + for _, tc := range testCases { + tc := tc + t.Run(tc.Name, func(t *testing.T) { + assert.Equal(t, tc.ExpectedResult, isPgErrorWithCode(tc.Err, pqDbAlreadyExistsCode)) + }) + } +} diff --git a/flytestdlib/go.mod b/flytestdlib/go.mod index 4793b283d2..e61c95a1d9 100644 --- a/flytestdlib/go.mod +++ b/flytestdlib/go.mod @@ -12,9 +12,12 @@ require ( github.com/flyteorg/stow v0.3.7 github.com/fsnotify/fsnotify v1.5.1 github.com/ghodss/yaml v1.0.0 + github.com/go-gormigrate/gormigrate/v2 v2.1.1 github.com/go-test/deep v1.0.7 github.com/golang/protobuf v1.5.3 github.com/hashicorp/golang-lru v0.5.4 + github.com/jackc/pgconn v1.14.1 + github.com/jackc/pgx/v5 v5.4.3 github.com/magiconair/properties v1.8.6 github.com/mitchellh/mapstructure v1.5.0 github.com/pkg/errors v0.9.1 @@ -28,7 +31,9 @@ require ( golang.org/x/tools v0.6.0 google.golang.org/grpc v1.56.1 google.golang.org/protobuf v1.30.0 - gorm.io/gorm v1.22.4 + gorm.io/driver/postgres v1.5.3 + gorm.io/driver/sqlite v1.5.4 + gorm.io/gorm v1.25.4 k8s.io/api v0.20.2 k8s.io/apimachinery v0.20.2 k8s.io/client-go v0.0.0-20210217172142-7279fc64d847 @@ -66,11 +71,19 @@ require ( github.com/googleapis/gax-go/v2 v2.7.1 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/inconshreveable/mousetrap v1.0.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 + github.com/jackc/pgproto3/v2 v2.3.2 // indirect + github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect + github.com/jinzhu/inflection v1.0.0 // indirect + github.com/jinzhu/now v1.1.5 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kr/text v0.2.0 // indirect github.com/mattn/go-colorable v0.1.12 // indirect github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-sqlite3 v1.14.17 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -81,17 +94,18 @@ require ( 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/rogpeppe/go-internal v1.11.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 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/mod v0.8.0 // indirect - golang.org/x/net v0.9.0 // indirect + golang.org/x/crypto v0.9.0 // indirect + golang.org/x/mod v0.9.0 // indirect + golang.org/x/net v0.10.0 // indirect golang.org/x/oauth2 v0.7.0 // indirect - golang.org/x/sys v0.7.0 // indirect + golang.org/x/sys v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.114.0 // indirect diff --git a/flytestdlib/go.sum b/flytestdlib/go.sum index bbe81e8dd1..ea406cae25 100644 --- a/flytestdlib/go.sum +++ b/flytestdlib/go.sum @@ -112,9 +112,13 @@ 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/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEkaPc= github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY= +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/cpuguy83/go-md2man/v2 v2.0.1/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/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= @@ -151,6 +155,8 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME 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-gormigrate/gormigrate/v2 v2.1.1 h1:eGS0WTFRV30r103lU8JNXY27KbviRnqqIDobW3EV3iY= +github.com/go-gormigrate/gormigrate/v2 v2.1.1/go.mod h1:L7nJ620PFDKei9QOhJzqA8kRCk+E3UbV2f5gv+1ndLc= 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= @@ -273,9 +279,51 @@ github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1: 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= +github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= +github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= +github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= +github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= +github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= +github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= +github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= +github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= +github.com/jackc/pgconn v1.14.1 h1:smbxIaZA08n6YuxEX1sDyjV/qkbtUtkH20qLkR9MUR4= +github.com/jackc/pgconn v1.14.1/go.mod h1:9mBNlny0UvkgJdCDvdVHYSjI+8tD2rnKK69Wz8ti++E= +github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= +github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= +github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= +github.com/jackc/pgmock v0.0.0-20201204152224-4fe30f7445fd/go.mod h1:hrBW0Enj2AZTNpt/7Y5rr2xe/9Mn757Wtb2xeBzPv2c= +github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65 h1:DadwsjnMwFjfWc9y5Wi/+Zz7xoE5ALHsRQlOctkOiHc= +github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65/go.mod h1:5R2h2EEX+qri8jOWMbJCtaPWkrrNc7OHwsp2TCqp7ak= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= +github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= +github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= +github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= +github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= +github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.3.2 h1:7eY55bdBeCz1F2fTzSz69QC+pG46jYq9/jtSPiJ5nn0= +github.com/jackc/pgproto3/v2 v2.3.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= +github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= +github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= +github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= +github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= +github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= +github.com/jackc/pgx/v5 v5.4.3 h1:cxFyXhxlvAifxnkKKdlxv8XqUf59tDlYjnV5YYfsJJY= +github.com/jackc/pgx/v5 v5.4.3/go.mod h1:Ig06C2Vu0t5qXC60W8sqIthScaEnFvojjj9dSljmHRA= +github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.3 h1:PlHq1bSCSZL9K0wUhbm2pGLoTWs2GwVhsP6emvGV/ZI= -github.com/jinzhu/now v1.1.3/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= 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= @@ -294,28 +342,38 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL 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= 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 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= 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= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= 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.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.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.7/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-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM= +github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= 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= @@ -377,8 +435,16 @@ 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.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +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= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= 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 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= @@ -422,6 +488,8 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de 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.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= 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= @@ -430,20 +498,31 @@ 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.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/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/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-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= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.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.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -477,8 +556,9 @@ 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.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 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= @@ -494,6 +574,7 @@ 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-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= @@ -519,8 +600,10 @@ 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.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -543,13 +626,16 @@ 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-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= 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= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/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= @@ -558,6 +644,7 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w 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= @@ -597,10 +684,15 @@ 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.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.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= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= 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= @@ -609,6 +701,7 @@ 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.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= 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-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -625,6 +718,7 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 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-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/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= @@ -632,6 +726,7 @@ golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgw 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-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-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -668,8 +763,11 @@ 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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -778,10 +876,11 @@ 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/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 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= @@ -798,8 +897,12 @@ 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.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/gorm v1.22.4 h1:8aPcyEJhY0MAt8aY6Dc524Pn+pO29K+ydu+e/cXSpQM= -gorm.io/gorm v1.22.4/go.mod h1:1aeVC+pe9ZmvKZban/gW4QPra7PRoTEssyc922qCAkk= +gorm.io/driver/postgres v1.5.3 h1:qKGY5CPHOuj47K/VxbCXJfFvIUeqMSXXadqdCY+MbBU= +gorm.io/driver/postgres v1.5.3/go.mod h1:F+LtvlFhZT7UBiA81mC9W6Su3D4WUhSboc/36QZU0gk= +gorm.io/driver/sqlite v1.5.4 h1:IqXwXi8M/ZlPzH/947tn5uik3aYQslP9BVveoax0nV0= +gorm.io/driver/sqlite v1.5.4/go.mod h1:qxAuCol+2r6PannQDpOP1FP6ag3mKi4esLnB/jHed+4= +gorm.io/gorm v1.25.4 h1:iyNd8fNAe8W9dvtlgeRI5zSVZPsq3OpcTu37cYcpCmw= +gorm.io/gorm v1.25.4/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= 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= diff --git a/flytestdlib/sandbox_utils/processor.go b/flytestdlib/sandbox_utils/processor.go new file mode 100644 index 0000000000..79b1eb14ab --- /dev/null +++ b/flytestdlib/sandbox_utils/processor.go @@ -0,0 +1,69 @@ +package sandbox_utils + +import ( + "context" + "fmt" + "github.com/flyteorg/flyte/flytestdlib/logger" + "github.com/golang/protobuf/proto" + "sync" + "time" +) + +var MsgChan chan SandboxMessage +var once sync.Once + +func init() { + once.Do(func() { + MsgChan = make(chan SandboxMessage, 1000) + }) +} + +type SandboxMessage struct { + Msg proto.Message + Raw []byte + Topic string +} + +type CloudEventsSandboxOnlyPublisher struct { + subChan chan<- SandboxMessage +} + +func (z *CloudEventsSandboxOnlyPublisher) Publish(ctx context.Context, topic string, msg proto.Message) error { + logger.Debugf(ctx, "Sandbox cloud event publisher, sending to topic [%s]", topic) + sm := SandboxMessage{ + Msg: msg, + Topic: topic, + } + select { + case z.subChan <- sm: + return nil + case <-ctx.Done(): + return ctx.Err() + } +} + +// PublishRaw will publish a raw byte array as a message with context. +func (z *CloudEventsSandboxOnlyPublisher) PublishRaw(ctx context.Context, topic string, msgRaw []byte) error { + logger.Debugf(ctx, "Sandbox cloud event publisher, sending raw to topic [%s]", topic) + sm := SandboxMessage{ + Raw: msgRaw, + Topic: topic, + } + select { + case z.subChan <- sm: + // metric + logger.Debugf(ctx, "Sandbox publisher sent message to %s", topic) + return nil + case <-time.After(10000 * time.Millisecond): + // metric + logger.Errorf(context.Background(), "CloudEventsSandboxOnlyPublisher PublishRaw timed out") + return fmt.Errorf("CloudEventsSandboxOnlyPublisher PublishRaw timed out") + } + +} + +func NewCloudEventsPublisher() *CloudEventsSandboxOnlyPublisher { + return &CloudEventsSandboxOnlyPublisher{ + subChan: MsgChan, + } +} diff --git a/go.mod b/go.mod index 889bfc66ec..10be8761ed 100644 --- a/go.mod +++ b/go.mod @@ -5,14 +5,15 @@ go 1.19 require ( github.com/flyteorg/flyte/datacatalog v1.9.4 github.com/flyteorg/flyte/flyteadmin v1.9.4 + github.com/flyteorg/flyte/flyteartifacts v0.0.0-00010101000000-000000000000 github.com/flyteorg/flyte/flytepropeller v1.9.4 - github.com/flyteorg/flyte/flytestdlib v1.9.4 + github.com/flyteorg/flyte/flytestdlib v1.9.5 github.com/golang/glog v1.1.0 github.com/prometheus/client_golang v1.12.1 github.com/spf13/cobra v1.4.0 github.com/spf13/pflag v1.0.5 golang.org/x/sync v0.3.0 - gorm.io/driver/postgres v1.4.5 + gorm.io/driver/postgres v1.5.3 k8s.io/client-go v0.24.1 sigs.k8s.io/controller-runtime v0.12.1 ) @@ -55,9 +56,9 @@ require ( github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.8.0 // indirect + github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.14.0 // indirect github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.8.0 // indirect - github.com/cloudevents/sdk-go/v2 v2.8.0 // indirect + github.com/cloudevents/sdk-go/v2 v2.14.0 // indirect github.com/coocood/freecache v1.1.1 // indirect github.com/coreos/go-oidc v2.2.1+incompatible // indirect github.com/dask/dask-kubernetes/v2023 v2023.0.0-20230626103304-abd02cd17b26 // indirect @@ -76,7 +77,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-gormigrate/gormigrate/v2 v2.0.0 // indirect + github.com/go-gormigrate/gormigrate/v2 v2.1.1 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.1 // indirect @@ -99,7 +100,7 @@ require ( github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/securecookie v1.1.1 // indirect github.com/gorilla/websocket v1.4.2 // indirect - github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69 // indirect @@ -109,13 +110,12 @@ require ( github.com/imdario/mergo v0.3.13 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect - github.com/jackc/pgconn v1.13.0 // indirect + github.com/jackc/pgconn v1.14.1 // indirect github.com/jackc/pgio v1.0.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect - github.com/jackc/pgproto3/v2 v2.3.1 // indirect - github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect - github.com/jackc/pgtype v1.12.0 // indirect - github.com/jackc/pgx/v4 v4.17.2 // indirect + github.com/jackc/pgproto3/v2 v2.3.2 // indirect + github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect + github.com/jackc/pgx/v5 v5.4.3 // indirect github.com/jcmturner/gofork v1.0.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect @@ -202,8 +202,8 @@ 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 - gorm.io/driver/sqlite v1.1.1 // indirect - gorm.io/gorm v1.24.1-0.20221019064659-5dd2bb482755 // indirect + gorm.io/driver/sqlite v1.5.4 // indirect + gorm.io/gorm v1.25.5 // indirect k8s.io/api v0.24.1 // indirect k8s.io/apiextensions-apiserver v0.24.1 // indirect k8s.io/apimachinery v0.24.1 // indirect @@ -219,6 +219,7 @@ require ( replace ( github.com/flyteorg/flyte/datacatalog => ./datacatalog github.com/flyteorg/flyte/flyteadmin => ./flyteadmin + github.com/flyteorg/flyte/flyteartifacts => ./flyteartifacts github.com/flyteorg/flyte/flytecopilot => ./flytecopilot github.com/flyteorg/flyte/flyteidl => ./flyteidl github.com/flyteorg/flyte/flyteplugins => ./flyteplugins diff --git a/go.sum b/go.sum index edc4408994..3ca3dbcacd 100644 --- a/go.sum +++ b/go.sum @@ -109,8 +109,6 @@ github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF0 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= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/NYTimes/gizmo v1.3.6 h1:K+GRagPdAxojsT1TlTQlMkTeOmgfLxSdvuOhdki7GG0= @@ -121,7 +119,6 @@ github.com/NYTimes/logrotate v1.0.0/go.mod h1:GxNz1cSw1c6t99PXoZlw+nm90H6cyQyrH6 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= @@ -145,7 +142,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/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= @@ -222,17 +218,17 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.8.0 h1:hRguaVL9rVsO8PMOpKSZ5gYZ2kjGRCvuKw4yMlfsBtg= -github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.8.0/go.mod h1:Ba4CS2d+naAK8tGd6nm5ftGIWuHim+1lryAaIxhuh1k= +github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.14.0 h1:dEopBSOSjB5fM9r76ufM44AVj9Dnz2IOM0Xs6FVxZRM= +github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.14.0/go.mod h1:qDSbb0fgIfFNjZrNTPtS5MOMScAGyQtn1KlSvoOdqYw= github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.8.0 h1:48wFAj3LK/G80FqXgKzyciQF9BU3W+RwucGwWY1Tk0M= github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.8.0/go.mod h1:m41mqM/Pa9pzPPNrvWwY3M7llCuzciKk5tqH0m6Rz9I= -github.com/cloudevents/sdk-go/v2 v2.8.0 h1:kmRaLbsafZmidZ0rZ6h7WOMqCkRMcVTLV5lxV/HKQ9Y= github.com/cloudevents/sdk-go/v2 v2.8.0/go.mod h1:GpCBmUj7DIRiDhVvsK5d6WCbgTWs8DxAWTRtAwQmIXs= +github.com/cloudevents/sdk-go/v2 v2.14.0 h1:Nrob4FwVgi5L4tV9lhjzZcjYqFVyJzsA56CwPaPfv6s= +github.com/cloudevents/sdk-go/v2 v2.14.0/go.mod h1:xDmKfzNjM8gBvjaF8ijFjM1VYOVUEeUfapHMUX1T5To= 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= @@ -281,8 +277,6 @@ github.com/decred/dcrd/chaincfg/chainhash v1.0.2/go.mod h1:BpbrGgrPTr3YJYRN3Bm+D github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0 h1:sgNeV1VRMDzs6rzyPpxyM0jp317hnwiq58Filgag2xw= github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0/go.mod h1:J70FGZSbzsjecRTiTzER+3f1KZLNaXkuv+yeFTKoxM8= -github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc h1:VRRKCwnzqk8QCaRC4os14xoKDdbHqqlJtJA0oc1ZAjg= -github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= github.com/dgraph-io/ristretto v0.0.1/go.mod h1:T40EBc7CJke8TkpiYfGGKAeFjSaxuFXhuXRyumBd6RE= github.com/dgraph-io/ristretto v0.0.2/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.0.3 h1:jh22xisGBjrEVnRZ1DVTpBVQm0Xndu8sMl0CWDzSIBI= @@ -370,8 +364,8 @@ github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy 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-gormigrate/gormigrate/v2 v2.0.0 h1:e2A3Uznk4viUC4UuemuVgsNnvYZyOA8B3awlYk3UioU= -github.com/go-gormigrate/gormigrate/v2 v2.0.0/go.mod h1:YuVJ+D/dNt4HWrThTBnjgZuRbt7AuwINeg4q52ZE3Jw= +github.com/go-gormigrate/gormigrate/v2 v2.1.1 h1:eGS0WTFRV30r103lU8JNXY27KbviRnqqIDobW3EV3iY= +github.com/go-gormigrate/gormigrate/v2 v2.1.1/go.mod h1:L7nJ620PFDKei9QOhJzqA8kRCk+E3UbV2f5gv+1ndLc= 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= @@ -720,7 +714,6 @@ github.com/goccy/go-json v0.4.8/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGF 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= 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/gofrs/uuid/v3 v3.1.2/go.mod h1:xPwMqoocQ1L5G6pXX5BcE7N5jlzn2o19oqAKxwZW/kI= @@ -736,8 +729,6 @@ github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzw 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-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= @@ -873,8 +864,9 @@ github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:Fecb 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-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= 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= @@ -929,16 +921,12 @@ github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9 github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= github.com/jackc/pgconn v1.3.2/go.mod h1:LvCquS3HbBKwgl7KbX9KyqEIumJAbm1UMcTvGaIf3bM= -github.com/jackc/pgconn v1.4.0/go.mod h1:Y2O3ZDF0q4mMacyWV3AstPJpeHXWGEetiFttmq5lahk= github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= -github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= github.com/jackc/pgconn v1.6.0/go.mod h1:yeseQo4xhQbgyJs2c87RAXOH2i624N0Fh1KSPJya7qo= -github.com/jackc/pgconn v1.6.4/go.mod h1:w2pne1C2tZgP+TvjqLpOigGzNqjBgQW9dUw/4Chex78= github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= -github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= -github.com/jackc/pgconn v1.13.0 h1:3L1XMNV2Zvca/8BYhzcRFS70Lr0WlDg16Di6SFGAbys= -github.com/jackc/pgconn v1.13.0/go.mod h1:AnowpAqO4CMIIJNZl2VJp+KrkAZciAkhEl0W0JIobpI= +github.com/jackc/pgconn v1.14.1 h1:smbxIaZA08n6YuxEX1sDyjV/qkbtUtkH20qLkR9MUR4= +github.com/jackc/pgconn v1.14.1/go.mod h1:9mBNlny0UvkgJdCDvdVHYSjI+8tD2rnKK69Wz8ti++E= github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= @@ -956,42 +944,29 @@ github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwX github.com/jackc/pgproto3/v2 v2.0.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.3.1 h1:nwj7qwf0S+Q7ISFfBndqeLwSwxs+4DPsbRFjECT1Y4Y= -github.com/jackc/pgproto3/v2 v2.3.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.3.2 h1:7eY55bdBeCz1F2fTzSz69QC+pG46jYq9/jtSPiJ5nn0= +github.com/jackc/pgproto3/v2 v2.3.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= -github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg= github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= github.com/jackc/pgtype v1.2.0/go.mod h1:5m2OfMh1wTK7x+Fk952IDmI4nw3nPrvtQdM0ZT4WpC0= github.com/jackc/pgtype v1.3.0/go.mod h1:b0JqxHvPmljG+HQ5IsvQ0yqeSi4nGcDTVjFoiLDb0Ik= -github.com/jackc/pgtype v1.3.1-0.20200510190516-8cd94a14c75a/go.mod h1:vaogEUkALtxZMCH411K+tKzNpwzCKU+AnPzBKZ+I+Po= -github.com/jackc/pgtype v1.3.1-0.20200606141011-f6355165a91c/go.mod h1:cvk9Bgu/VzJ9/lxTO5R5sf80p0DiucVtN7ZxvaC4GmQ= -github.com/jackc/pgtype v1.4.2/go.mod h1:JCULISAZBFGrHaOXIIFiyfzW5VY0GRitRr8NeJsrdig= -github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= -github.com/jackc/pgtype v1.12.0 h1:Dlq8Qvcch7kiehm8wPGIW0W3KsCCHJnRacKW0UM8n5w= -github.com/jackc/pgtype v1.12.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jackc/pgx v3.6.2+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= github.com/jackc/pgx/v4 v4.4.1/go.mod h1:6iSW+JznC0YT+SgBn7rNxoEBsBgSmnC5FwyCekOGUiE= -github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXgo+kA= github.com/jackc/pgx/v4 v4.6.0/go.mod h1:vPh43ZzxijXUVJ+t/EmXBtFmbFVO72cuneCT9oAlxAg= -github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o= -github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg= -github.com/jackc/pgx/v4 v4.8.1/go.mod h1:4HOLxrl8wToZJReD04/yB20GDwf4KBYETvlHciCnwW0= -github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= -github.com/jackc/pgx/v4 v4.17.2 h1:0Ut0rpeKwvIVbMQ1KbMBU4h6wxehBI535LK6Flheh8E= -github.com/jackc/pgx/v4 v4.17.2/go.mod h1:lcxIZN44yMIrWI78a5CpucdD14hX0SBDbNRvjDBItsw= +github.com/jackc/pgx/v5 v5.4.3 h1:cxFyXhxlvAifxnkKKdlxv8XqUf59tDlYjnV5YYfsJJY= +github.com/jackc/pgx/v5 v5.4.3/go.mod h1:Ig06C2Vu0t5qXC60W8sqIthScaEnFvojjj9dSljmHRA= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.3.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jandelgado/gcov2lcov v1.0.4-0.20210120124023-b83752c6dc08/go.mod h1:NnSxK6TMlg1oGDBfGelGbjgorT5/L3cchlbtgFYZSss= github.com/jcmturner/gofork v0.0.0-20190328161633-dc7c13fece03/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= @@ -1000,8 +975,6 @@ github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJS github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -1014,7 +987,6 @@ github.com/jmoiron/sqlx v0.0.0-20180614180643-0dae4fefe7c0/go.mod h1:IiEW3SEiiEr github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -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= @@ -1065,8 +1037,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.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= 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= @@ -1098,8 +1070,6 @@ github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.4 h1:SO9z7FRPzA03QhHKJrH5BXA6HU1rS4V2nIVrrNC1iYk= github.com/luna-duclos/instrumentedsql v0.0.0-20181127104832-b7d587d28109/go.mod h1:PWUIzhtavmOR965zfawVsHXbEuU1G29BPZ/CB3C7jXk= github.com/luna-duclos/instrumentedsql v1.1.2/go.mod h1:4LGbEqDnopzNAiyxPPDXhLspyunZxgPTMJBKtC6U0BQ= github.com/luna-duclos/instrumentedsql v1.1.3/go.mod h1:9J1njvFds+zN7y85EDhN9XNQLANWwZt2ULeIC8yMNYs= @@ -1162,7 +1132,6 @@ github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp 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= -github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= @@ -1371,6 +1340,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.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= 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= @@ -1400,9 +1370,6 @@ github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLS github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= -github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= -github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= @@ -1539,6 +1506,7 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de 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/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= 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= @@ -1594,7 +1562,6 @@ go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16g 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= @@ -1604,7 +1571,6 @@ 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/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= @@ -1613,9 +1579,9 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E 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.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= 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= @@ -1639,7 +1605,6 @@ golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnf 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= golang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= @@ -1671,7 +1636,7 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y 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.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1717,9 +1682,9 @@ 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.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= 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= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1787,6 +1752,8 @@ golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qx 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.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1817,6 +1784,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-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.0.0-20220722155255-886fb9371eb4/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= @@ -1919,14 +1887,19 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc 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-20211025201205-69cdffdb9359/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-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/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= 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.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= 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= @@ -1939,6 +1912,7 @@ 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.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= 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= @@ -2021,7 +1995,6 @@ golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191224055732-dd894d0a8a40/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -2060,6 +2033,7 @@ 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.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= 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= @@ -2280,19 +2254,13 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C 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= -gorm.io/driver/mysql v1.0.1/go.mod h1:KtqSthtg55lFp3S5kUXqlGaelnWpKitn4k1xZTnoiPw= gorm.io/driver/mysql v1.4.4 h1:MX0K9Qvy0Na4o7qSC/YI7XxqUw5KDw01umqgID+svdQ= -gorm.io/driver/postgres v1.0.0/go.mod h1:wtMFcOzmuA5QigNsgEIb7O5lhvH1tHAF1RbWmLWV4to= -gorm.io/driver/postgres v1.4.5 h1:mTeXTTtHAgnS9PgmhN2YeUbazYpLhUI1doLnw42XUZc= -gorm.io/driver/postgres v1.4.5/go.mod h1:GKNQYSJ14qvWkvPwXljMGehpKrhlDNsqYRr5HnYGncg= -gorm.io/driver/sqlite v1.1.1 h1:qtWqNAEUyi7gYSUAJXeiAMz0lUOdakZF5ia9Fqnp5G4= -gorm.io/driver/sqlite v1.1.1/go.mod h1:hm2olEcl8Tmsc6eZyxYSeznnsDaMqamBvEXLNtBg4cI= -gorm.io/driver/sqlserver v1.0.2 h1:FzxAlw0/7hntMzSiNfotpYCo9Lz8dqWQGdmCGqIiFGo= -gorm.io/driver/sqlserver v1.0.2/go.mod h1:gb0Y9QePGgqjzrVyTQUZeh9zkd5v0iz71cM1B4ZycEY= -gorm.io/gorm v1.9.19/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= -gorm.io/gorm v1.20.0/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= -gorm.io/gorm v1.24.1-0.20221019064659-5dd2bb482755 h1:7AdrbfcvKnzejfqP5g37fdSZOXH/JvaPIzBIHTOqXKk= -gorm.io/gorm v1.24.1-0.20221019064659-5dd2bb482755/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= +gorm.io/driver/postgres v1.5.3 h1:qKGY5CPHOuj47K/VxbCXJfFvIUeqMSXXadqdCY+MbBU= +gorm.io/driver/postgres v1.5.3/go.mod h1:F+LtvlFhZT7UBiA81mC9W6Su3D4WUhSboc/36QZU0gk= +gorm.io/driver/sqlite v1.5.4 h1:IqXwXi8M/ZlPzH/947tn5uik3aYQslP9BVveoax0nV0= +gorm.io/driver/sqlite v1.5.4/go.mod h1:qxAuCol+2r6PannQDpOP1FP6ag3mKi4esLnB/jHed+4= +gorm.io/gorm v1.25.5 h1:zR9lOiiYf09VNh5Q1gphfyia1JpiClIWG9hQaxB/mls= +gorm.io/gorm v1.25.5/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= 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= diff --git a/rsts/deployment/configuration/cloud_event.rst b/rsts/deployment/configuration/cloud_event.rst index 99de6af07c..5fa526cbc1 100644 --- a/rsts/deployment/configuration/cloud_event.rst +++ b/rsts/deployment/configuration/cloud_event.rst @@ -3,7 +3,7 @@ ############ Cloud Events ############ - +# gatepr: this doc needs to be updated .. tags:: Infrastructure, AWS, GCP, Advanced Progress of Flyte workflow and task execution is delimited by a series of @@ -98,6 +98,8 @@ The same flag is used for Helm as for Admin itself. Usage ***** +Version 1 +========= The events are emitted in cloud Event format, and the data in the cloud event will be base64 encoded binary representation of the following IDL messages: @@ -112,7 +114,7 @@ Note that these message wrap the underlying event messages :std:doc:`found here `. CloudEvent Spec -=============== +--------------- .. code:: json @@ -128,3 +130,30 @@ CloudEvent Spec .. note:: The message format may eventually change to an enriched and distinct message type in future releases. + +Version 2 +========= +These events are also in the cloud event spec, but there will be considerably more information in the event that users may find useful. Keep in mind however that turning on these events will induce a heavier load on the database as information is queried. + +The event types may be found in the following IDL messages (Python example given): + +* ``flyteidl.event.cloudevents_pb2.CloudEventWorkflowExecution`` +* ``flyteidl.event.cloudevents_pb2.CloudEventTaskExecution`` +* ``flyteidl.event.cloudevents_pb2.CloudEventNodeExecution`` +* ``flyteidl.event.cloudevents_pb2.CloudEventExecutionStart`` + +CloudEvent Spec +--------------- +The specification for these v2 events is similar, except that the jsonschemaurl will be blank for now. We are working on making these auto-generated from the IDL. + +.. code:: json + + { + "specversion" : "1.0", + "type" : "com.flyte.resource.cloudevents.WorkflowExecution", + "source" : "https://github.com/flyteorg/flyteadmin", + "id" : "D234-1234-1234", + "time" : "2018-04-05T17:31:00Z", + "jsonschemaurl": "", + "data" : (bytes of the underlying event) + }