diff --git a/.bingo/.gitignore b/.bingo/.gitignore index 9efccf683..4428593c3 100755 --- a/.bingo/.gitignore +++ b/.bingo/.gitignore @@ -11,3 +11,4 @@ !variables.env *tmp.mod +*tmp.sum diff --git a/.bingo/README.md b/.bingo/README.md index 7a5c2d4f6..c812e3a6c 100755 --- a/.bingo/README.md +++ b/.bingo/README.md @@ -1,14 +1,13 @@ # Project Development Dependencies. -This is directory which stores Go modules with pinned buildable package that is used within this repository, managed by https://github.com/bwplotka/bingo. +This is directory which stores Go modules with pinned buildable package that is used within this repository, managed by . * Run `bingo get` to install all tools having each own module file in this directory. -* Run `bingo get ` to install that have own module file in this directory. -* For Makefile: Make sure to put `include .bingo/Variables.mk` in your Makefile, then use $() variable where is the .bingo/.mod. +* Run `bingo get ` to install `` that have own module file in this directory. +* For Makefile: Make sure to put `include .bingo/Variables.mk` in your Makefile, then use `\$()` variable where `` is the .bingo/`.mod`. * For shell: Run `source .bingo/variables.env` to source all environment variable for each tool. -* For go: Import `.bingo/variables.go` to for variable names. -* See https://github.com/bwplotka/bingo or -h on how to add, remove or change binaries dependencies. +* See or -h on how to add, remove or change binaries dependencies. ## Requirements -* Go 1.14+ +* Go 1.24.x or 1.25.x diff --git a/.bingo/Variables.mk b/.bingo/Variables.mk index d275c4e88..58412bb40 100644 --- a/.bingo/Variables.mk +++ b/.bingo/Variables.mk @@ -1,10 +1,16 @@ -# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.9. DO NOT EDIT. +# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.10. DO NOT EDIT. # All tools are designed to be build inside $GOBIN. BINGO_DIR := $(dir $(lastword $(MAKEFILE_LIST))) GOPATH ?= $(shell go env GOPATH) GOBIN ?= $(firstword $(subst :, ,${GOPATH}))/bin GO ?= $(shell which go) +# Ensure bingo-managed tools are always built for the host platform, +# even when GOOS/GOARCH are set for cross-compilation of other targets. +GOHOSTOS ?= $(shell $(GO) env GOHOSTOS) +GOHOSTARCH ?= $(shell $(GO) env GOHOSTARCH) +GOHOSTARM ?= $(shell $(GO) env GOHOSTARM) + # Below generated variables ensure that every time a tool under each variable is invoked, the correct version # will be used; reinstalling only if needed. # For example for bingo variable: @@ -17,99 +23,87 @@ GO ?= $(shell which go) # @echo "Running bingo" # @$(BINGO) # -BINGO := $(GOBIN)/bingo-v0.9.0 +BINGO := $(GOBIN)/bingo-v0.10.0 $(BINGO): $(BINGO_DIR)/bingo.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. - @echo "(re)installing $(GOBIN)/bingo-v0.9.0" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=bingo.mod -o=$(GOBIN)/bingo-v0.9.0 "github.com/bwplotka/bingo" - -DEX := $(GOBIN)/dex-v0.0.0-20200512115545-709d4169d646 -$(DEX): $(BINGO_DIR)/dex.mod - @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. - @echo "(re)installing $(GOBIN)/dex-v0.0.0-20200512115545-709d4169d646" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=dex.mod -o=$(GOBIN)/dex-v0.0.0-20200512115545-709d4169d646 "github.com/dexidp/dex/cmd/dex" - -EMBEDMD := $(GOBIN)/embedmd-v1.0.0 -$(EMBEDMD): $(BINGO_DIR)/embedmd.mod - @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. - @echo "(re)installing $(GOBIN)/embedmd-v1.0.0" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=embedmd.mod -o=$(GOBIN)/embedmd-v1.0.0 "github.com/campoy/embedmd" + @echo "(re)installing $(GOBIN)/bingo-v0.10.0" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=bingo.mod -o=$(GOBIN)/bingo-v0.10.0 "github.com/bwplotka/bingo" GOJSONTOYAML := $(GOBIN)/gojsontoyaml-v0.0.0-20200602132005-3697ded27e8c $(GOJSONTOYAML): $(BINGO_DIR)/gojsontoyaml.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. @echo "(re)installing $(GOBIN)/gojsontoyaml-v0.0.0-20200602132005-3697ded27e8c" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=gojsontoyaml.mod -o=$(GOBIN)/gojsontoyaml-v0.0.0-20200602132005-3697ded27e8c "github.com/brancz/gojsontoyaml" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=gojsontoyaml.mod -o=$(GOBIN)/gojsontoyaml-v0.0.0-20200602132005-3697ded27e8c "github.com/brancz/gojsontoyaml" -GOLANGCI_LINT := $(GOBIN)/golangci-lint-v2.7.0 +GOLANGCI_LINT := $(GOBIN)/golangci-lint-v2.8.0 $(GOLANGCI_LINT): $(BINGO_DIR)/golangci-lint.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. - @echo "(re)installing $(GOBIN)/golangci-lint-v2.7.0" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v2.7.0 "github.com/golangci/golangci-lint/v2/cmd/golangci-lint" + @echo "(re)installing $(GOBIN)/golangci-lint-v2.8.0" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v2.8.0 "github.com/golangci/golangci-lint/v2/cmd/golangci-lint" -GOYACC := $(GOBIN)/goyacc-v0.1.5 +GOYACC := $(GOBIN)/goyacc-v0.42.0 $(GOYACC): $(BINGO_DIR)/goyacc.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. - @echo "(re)installing $(GOBIN)/goyacc-v0.1.5" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=goyacc.mod -o=$(GOBIN)/goyacc-v0.1.5 "golang.org/x/tools/cmd/goyacc" + @echo "(re)installing $(GOBIN)/goyacc-v0.42.0" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=goyacc.mod -o=$(GOBIN)/goyacc-v0.42.0 "golang.org/x/tools/cmd/goyacc" GUBERNATOR := $(GOBIN)/gubernator-v1.0.0-rc.3 $(GUBERNATOR): $(BINGO_DIR)/gubernator.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. @echo "(re)installing $(GOBIN)/gubernator-v1.0.0-rc.3" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=gubernator.mod -o=$(GOBIN)/gubernator-v1.0.0-rc.3 "github.com/mailgun/gubernator/cmd/gubernator" - -JB := $(GOBIN)/jb-v0.4.0 -$(JB): $(BINGO_DIR)/jb.mod - @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. - @echo "(re)installing $(GOBIN)/jb-v0.4.0" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=jb.mod -o=$(GOBIN)/jb-v0.4.0 "github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=gubernator.mod -o=$(GOBIN)/gubernator-v1.0.0-rc.3 "github.com/mailgun/gubernator/cmd/gubernator" JSONNET := $(GOBIN)/jsonnet-v0.21.0 $(JSONNET): $(BINGO_DIR)/jsonnet.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. @echo "(re)installing $(GOBIN)/jsonnet-v0.21.0" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=jsonnet.mod -o=$(GOBIN)/jsonnet-v0.21.0 "github.com/google/go-jsonnet/cmd/jsonnet" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=jsonnet.mod -o=$(GOBIN)/jsonnet-v0.21.0 "github.com/google/go-jsonnet/cmd/jsonnet" JSONNETFMT := $(GOBIN)/jsonnetfmt-v0.21.0 $(JSONNETFMT): $(BINGO_DIR)/jsonnetfmt.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. @echo "(re)installing $(GOBIN)/jsonnetfmt-v0.21.0" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=jsonnetfmt.mod -o=$(GOBIN)/jsonnetfmt-v0.21.0 "github.com/google/go-jsonnet/cmd/jsonnetfmt" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=jsonnetfmt.mod -o=$(GOBIN)/jsonnetfmt-v0.21.0 "github.com/google/go-jsonnet/cmd/jsonnetfmt" KUBECONFORM := $(GOBIN)/kubeconform-v0.7.0 $(KUBECONFORM): $(BINGO_DIR)/kubeconform.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. @echo "(re)installing $(GOBIN)/kubeconform-v0.7.0" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=kubeconform.mod -o=$(GOBIN)/kubeconform-v0.7.0 "github.com/yannh/kubeconform/cmd/kubeconform" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=kubeconform.mod -o=$(GOBIN)/kubeconform-v0.7.0 "github.com/yannh/kubeconform/cmd/kubeconform" + +MDOX := $(GOBIN)/mdox-v0.9.1-0.20250909081353-65d927203516 +$(MDOX): $(BINGO_DIR)/mdox.mod + @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. + @echo "(re)installing $(GOBIN)/mdox-v0.9.1-0.20250909081353-65d927203516" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=mdox.mod -o=$(GOBIN)/mdox-v0.9.1-0.20250909081353-65d927203516 "github.com/bwplotka/mdox" OAPI_CODEGEN := $(GOBIN)/oapi-codegen-v2.5.1 $(OAPI_CODEGEN): $(BINGO_DIR)/oapi-codegen.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. @echo "(re)installing $(GOBIN)/oapi-codegen-v2.5.1" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=oapi-codegen.mod -o=$(GOBIN)/oapi-codegen-v2.5.1 "github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=oapi-codegen.mod -o=$(GOBIN)/oapi-codegen-v2.5.1 "github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen" -OPA := $(GOBIN)/opa-v1.5.1 +OPA := $(GOBIN)/opa-v1.13.2 $(OPA): $(BINGO_DIR)/opa.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. - @echo "(re)installing $(GOBIN)/opa-v1.5.1" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=opa.mod -o=$(GOBIN)/opa-v1.5.1 "github.com/open-policy-agent/opa" + @echo "(re)installing $(GOBIN)/opa-v1.13.2" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=opa.mod -o=$(GOBIN)/opa-v1.13.2 "github.com/open-policy-agent/opa" PROTOC_GEN_GO := $(GOBIN)/protoc-gen-go-v1.4.2 $(PROTOC_GEN_GO): $(BINGO_DIR)/protoc-gen-go.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. @echo "(re)installing $(GOBIN)/protoc-gen-go-v1.4.2" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=protoc-gen-go.mod -o=$(GOBIN)/protoc-gen-go-v1.4.2 "github.com/golang/protobuf/protoc-gen-go" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=protoc-gen-go.mod -o=$(GOBIN)/protoc-gen-go-v1.4.2 "github.com/golang/protobuf/protoc-gen-go" STYX := $(GOBIN)/styx-v0.0.0-20200109161911-78a77eb717b4 $(STYX): $(BINGO_DIR)/styx.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. @echo "(re)installing $(GOBIN)/styx-v0.0.0-20200109161911-78a77eb717b4" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=styx.mod -o=$(GOBIN)/styx-v0.0.0-20200109161911-78a77eb717b4 "github.com/go-pluto/styx" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=styx.mod -o=$(GOBIN)/styx-v0.0.0-20200109161911-78a77eb717b4 "github.com/go-pluto/styx" UP := $(GOBIN)/up-v0.0.0-20200928171403-120d85735d11 $(UP): $(BINGO_DIR)/up.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. @echo "(re)installing $(GOBIN)/up-v0.0.0-20200928171403-120d85735d11" - @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=up.mod -o=$(GOBIN)/up-v0.0.0-20200928171403-120d85735d11 "github.com/observatorium/up/cmd/up" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=up.mod -o=$(GOBIN)/up-v0.0.0-20200928171403-120d85735d11 "github.com/observatorium/up/cmd/up" diff --git a/.bingo/bingo.mod b/.bingo/bingo.mod index 1f0008c4b..8888b1e84 100644 --- a/.bingo/bingo.mod +++ b/.bingo/bingo.mod @@ -1,5 +1,5 @@ module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT -go 1.15 +go 1.24.9 -require github.com/bwplotka/bingo v0.9.0 +require github.com/bwplotka/bingo v0.10.0 diff --git a/.bingo/bingo.sum b/.bingo/bingo.sum index f35bcc677..1471eb2d2 100644 --- a/.bingo/bingo.sum +++ b/.bingo/bingo.sum @@ -6,22 +6,32 @@ github.com/bwplotka/bingo v0.8.0 h1:Cx9eQb+ed9aU7sbrmZagomKx+wYor9y5z5HM91bvp1U= github.com/bwplotka/bingo v0.8.0/go.mod h1:eXPFwhZ92mmOUBk6F7aKcAJoq8HX88Ju3wLZKwtNKEw= github.com/bwplotka/bingo v0.9.0 h1:slnsdJYExR4iRalHR6/ZiYnr9vSazOuFGmc2LdX293g= github.com/bwplotka/bingo v0.9.0/go.mod h1:GxC/y/xbmOK5P29cn+B3HuOSw0s2gruddT3r+rDizDw= +github.com/bwplotka/bingo v0.10.0 h1:NhodmVTA5T6prv7ZDRbr8wMOKlUE14GsKBaKlioBd58= +github.com/bwplotka/bingo v0.10.0/go.mod h1:dFsm4aLJesa7lAhddUS0yLuuCKeM5n+GIPT7K9yycu4= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.15/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= +github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/efficientgo/core v1.0.0-rc.0 h1:jJoA0N+C4/knWYVZ6GrdHOtDyrg8Y/TR4vFpTaqTsqs= github.com/efficientgo/core v1.0.0-rc.0/go.mod h1:kQa0V74HNYMfuJH6jiPiwNdpWXl4xd/K4tzlrcvYDQI= +github.com/efficientgo/core v1.0.0-rc.3 h1:X6CdgycYWDcbYiJr1H1+lQGzx13o7bq3EUkbB9DsSPc= +github.com/efficientgo/core v1.0.0-rc.3/go.mod h1:FfGdkzWarkuzOlY04VY+bGfb1lWrjaL6x/GLcQ4vJps= github.com/frankban/quicktest v1.13.1/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= github.com/frankban/quicktest v1.14.5/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/renameio v1.0.1/go.mod h1:t/HQoYBZSsWSNK35C6CO/TpPLDVWvxOHboWUAweKUpk= github.com/google/renameio/v2 v2.0.0/go.mod h1:BtmJXm5YlszgC+TD4HOEEUFgkJP3nLxehU6hfe7jRt4= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -37,31 +47,42 @@ github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTE github.com/rogpeppe/go-internal v1.8.1-0.20210923151022-86f73c517451/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.10.1-0.20230524175051-ec119421bb97/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= +github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= +github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= 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/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -73,18 +94,25 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= +golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/telemetry v0.0.0-20250908211612-aef8a434d053/go.mod h1:+nZKN+XVh4LCiA9DV3ywrzN4gumyCnKjau3NGb9SGoE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210916214954-140adaaadfaf/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= 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/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q= +golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= 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= @@ -94,8 +122,12 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= mvdan.cc/editorconfig v0.2.0/go.mod h1:lvnnD3BNdBYkhq+B4uBuFFKatfp02eB6HixDvEz91C0= +mvdan.cc/editorconfig v0.3.0/go.mod h1:NcJHuDtNOTEJ6251indKiWuzK6+VcrMuLzGMLKBFupQ= mvdan.cc/sh/v3 v3.4.3 h1:zbuKH7YH9cqU6PGajhFFXZY7dhPXcDr55iN/cUAqpuw= mvdan.cc/sh/v3 v3.4.3/go.mod h1:p/tqPPI4Epfk2rICAe2RoaNd8HBSJ8t9Y2DA9yQlbzY= mvdan.cc/sh/v3 v3.7.0 h1:lSTjdP/1xsddtaKfGg7Myu7DnlHItd3/M2tomOcNNBg= mvdan.cc/sh/v3 v3.7.0/go.mod h1:K2gwkaesF/D7av7Kxl0HbF5kGOd2ArupNTX3X44+8l8= +mvdan.cc/sh/v3 v3.12.0 h1:ejKUR7ONP5bb+UGHGEG/k9V5+pRVIyD+LsZz7o8KHrI= +mvdan.cc/sh/v3 v3.12.0/go.mod h1:Se6Cj17eYSn+sNooLZiEUnNNmNxg0imoYlTu4CyaGyg= diff --git a/.bingo/dex.mod b/.bingo/dex.mod deleted file mode 100644 index 83d4ae386..000000000 --- a/.bingo/dex.mod +++ /dev/null @@ -1,10 +0,0 @@ -module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT - -go 1.15 - -replace ( - go.etcd.io/etcd => go.etcd.io/etcd v0.5.0-alpha.5.0.20200425165423-262c93980547 - google.golang.org/grpc => google.golang.org/grpc v1.27.1 -) - -require github.com/dexidp/dex v0.0.0-20200512115545-709d4169d646 // cmd/dex diff --git a/.bingo/embedmd.mod b/.bingo/embedmd.mod deleted file mode 100644 index 31ebe684b..000000000 --- a/.bingo/embedmd.mod +++ /dev/null @@ -1,5 +0,0 @@ -module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT - -go 1.15 - -require github.com/campoy/embedmd v1.0.0 diff --git a/.bingo/embedmd.sum b/.bingo/embedmd.sum deleted file mode 100644 index 74a5597d6..000000000 --- a/.bingo/embedmd.sum +++ /dev/null @@ -1,4 +0,0 @@ -github.com/campoy/embedmd v1.0.0 h1:V4kI2qTJJLf4J29RzI/MAt2c3Bl4dQSYPuflzwFH2hY= -github.com/campoy/embedmd v1.0.0/go.mod h1:oxyr9RCiSXg0M3VJ3ks0UGfp98BpSSGr0kpiX3MzVl8= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= diff --git a/.bingo/go.mod b/.bingo/go.mod index 610249af0..5fae25074 100755 --- a/.bingo/go.mod +++ b/.bingo/go.mod @@ -1 +1,3 @@ -module _ // Fake go.mod auto-created by 'bingo' for go -moddir compatibility with non-Go projects. Commit this file, together with other .mod files. \ No newline at end of file +module _ // Fake go.mod auto-created by 'bingo' for go -moddir compatibility with non-Go projects. Commit this file, together with other .mod files. + +go 1.24.13 diff --git a/.bingo/golangci-lint.mod b/.bingo/golangci-lint.mod index 6cdcf80cc..63a00db88 100644 --- a/.bingo/golangci-lint.mod +++ b/.bingo/golangci-lint.mod @@ -1,7 +1,5 @@ module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT -go 1.24.0 +go 1.24.13 -toolchain go1.24.10 - -require github.com/golangci/golangci-lint/v2 v2.7.0 // cmd/golangci-lint +require github.com/golangci/golangci-lint/v2 v2.8.0 // cmd/golangci-lint diff --git a/.bingo/golangci-lint.sum b/.bingo/golangci-lint.sum index c1e8dda06..cf6f305b6 100644 --- a/.bingo/golangci-lint.sum +++ b/.bingo/golangci-lint.sum @@ -36,59 +36,41 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= codeberg.org/chavacava/garif v0.2.0 h1:F0tVjhYbuOCnvNcU3YSpO6b3Waw6Bimy4K0mM8y6MfY= codeberg.org/chavacava/garif v0.2.0/go.mod h1:P2BPbVbT4QcvLZrORc2T29szK3xEOlnl0GiPTJmEqBQ= +codeberg.org/polyfloyd/go-errorlint v1.9.0 h1:VkdEEmA1VBpH6ecQoMR4LdphVI3fA4RrCh2an7YmodI= +codeberg.org/polyfloyd/go-errorlint v1.9.0/go.mod h1:GPRRu2LzVijNn4YkrZYJfatQIdS+TrcK8rL5Xs24qw8= dev.gaijin.team/go/exhaustruct/v4 v4.0.0 h1:873r7aNneqoBB3IaFIzhvt2RFYTuHgmMjoKfwODoI1Y= dev.gaijin.team/go/exhaustruct/v4 v4.0.0/go.mod h1:aZ/k2o4Y05aMJtiux15x8iXaumE88YdiB0Ai4fXOzPI= dev.gaijin.team/go/golib v0.6.0 h1:v6nnznFTs4bppib/NyU1PQxobwDHwCXXl15P7DV5Zgo= dev.gaijin.team/go/golib v0.6.0/go.mod h1:uY1mShx8Z/aNHWDyAkZTkX+uCi5PdX7KsG1eDQa2AVE= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/4meepo/tagalign v1.4.2 h1:0hcLHPGMjDyM1gHG58cS73aQF8J4TdVR96TZViorO9E= -github.com/4meepo/tagalign v1.4.2/go.mod h1:+p4aMyFM+ra7nb41CnFG6aSDXqRxU/w1VQqScKqDARI= github.com/4meepo/tagalign v1.4.3 h1:Bnu7jGWwbfpAie2vyl63Zup5KuRv21olsPIha53BJr8= github.com/4meepo/tagalign v1.4.3/go.mod h1:00WwRjiuSbrRJnSVeGWPLp2epS5Q/l4UEy0apLLS37c= -github.com/Abirdcfly/dupword v0.1.6 h1:qeL6u0442RPRe3mcaLcbaCi2/Y/hOcdtw6DE9odjz9c= -github.com/Abirdcfly/dupword v0.1.6/go.mod h1:s+BFMuL/I4YSiFv29snqyjwzDp4b65W2Kvy+PKzZ6cw= github.com/Abirdcfly/dupword v0.1.7 h1:2j8sInznrje4I0CMisSL6ipEBkeJUJAmK1/lfoNGWrQ= github.com/Abirdcfly/dupword v0.1.7/go.mod h1:K0DkBeOebJ4VyOICFdppB23Q0YMOgVafM0zYW0n9lF4= github.com/AdminBenni/iota-mixing v1.0.0 h1:Os6lpjG2dp/AE5fYBPAA1zfa2qMdCAWwPMCgpwKq7wo= github.com/AdminBenni/iota-mixing v1.0.0/go.mod h1:i4+tpAaB+qMVIV9OK3m4/DAynOd5bQFaOu+2AhtBCNY= -github.com/AlwxSin/noinlineerr v1.0.4 h1:+WeO27L9bora38Quw+we2Tt0tr/UKJLP5bOMxwEeO5Y= -github.com/AlwxSin/noinlineerr v1.0.4/go.mod h1:+QgkkoYrMH7RHvcdxdlI7vYYEdgeoFOVjU9sUhw/rQc= github.com/AlwxSin/noinlineerr v1.0.5 h1:RUjt63wk1AYWTXtVXbSqemlbVTb23JOSRiNsshj7TbY= github.com/AlwxSin/noinlineerr v1.0.5/go.mod h1:+QgkkoYrMH7RHvcdxdlI7vYYEdgeoFOVjU9sUhw/rQc= -github.com/Antonboom/errname v1.1.0 h1:A+ucvdpMwlo/myWrkHEUEBWc/xuXdud23S8tmTb/oAE= -github.com/Antonboom/errname v1.1.0/go.mod h1:O1NMrzgUcVBGIfi3xlVuvX8Q/VP/73sseCaAppfjqZw= github.com/Antonboom/errname v1.1.1 h1:bllB7mlIbTVzO9jmSWVWLjxTEbGBVQ1Ff/ClQgtPw9Q= github.com/Antonboom/errname v1.1.1/go.mod h1:gjhe24xoxXp0ScLtHzjiXp0Exi1RFLKJb0bVBtWKCWQ= -github.com/Antonboom/nilnil v1.1.0 h1:jGxJxjgYS3VUUtOTNk8Z1icwT5ESpLH/426fjmQG+ng= -github.com/Antonboom/nilnil v1.1.0/go.mod h1:b7sAlogQjFa1wV8jUW3o4PMzDVFLbTux+xnQdvzdcIE= github.com/Antonboom/nilnil v1.1.1 h1:9Mdr6BYd8WHCDngQnNVV0b554xyisFioEKi30sksufQ= github.com/Antonboom/nilnil v1.1.1/go.mod h1:yCyAmSw3doopbOWhJlVci+HuyNRuHJKIv6V2oYQa8II= -github.com/Antonboom/testifylint v1.6.1 h1:6ZSytkFWatT8mwZlmRCHkWz1gPi+q6UBSbieji2Gj/o= -github.com/Antonboom/testifylint v1.6.1/go.mod h1:k+nEkathI2NFjKO6HvwmSrbzUcQ6FAnbZV+ZRrnXPLI= github.com/Antonboom/testifylint v1.6.4 h1:gs9fUEy+egzxkEbq9P4cpcMB6/G0DYdMeiFS87UiqmQ= github.com/Antonboom/testifylint v1.6.4/go.mod h1:YO33FROXX2OoUfwjz8g+gUxQXio5i9qpVy7nXGbxDD4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= -github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk= +github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= -github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/Djarvur/go-err113 v0.1.1 h1:eHfopDqXRwAi+YmCUas75ZE0+hoBHJ2GQNLYRSxao4g= github.com/Djarvur/go-err113 v0.1.1/go.mod h1:IaWJdYFLg76t2ihfflPZnM1LIQszWOsFDh2hhhAVF6k= -github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.1 h1:Sz1JIXEcSfhz7fUi7xHnhpIE0thVASYjvosApmHuD2k= -github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.1/go.mod h1:n/LSCXNuIYqVfBlVXyHfMQkZDdp1/mmxfSjADd3z1Zg= -github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= -github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= -github.com/MirrexOne/unqueryvet v1.3.0 h1:5slWSomgqpYU4zFuZ3NNOfOUxVPlXFDBPAVasZOGlAY= -github.com/MirrexOne/unqueryvet v1.3.0/go.mod h1:IWwCwMQlSWjAIteW0t+28Q5vouyktfujzYznSIWiuOg= +github.com/MirrexOne/unqueryvet v1.4.0 h1:6KAkqqW2KUnkl9Z0VuTphC3IXRPoFqEkJEtyxxHj5eQ= +github.com/MirrexOne/unqueryvet v1.4.0/go.mod h1:IWwCwMQlSWjAIteW0t+28Q5vouyktfujzYznSIWiuOg= github.com/OpenPeeDeeP/depguard/v2 v2.2.1 h1:vckeWVESWp6Qog7UZSARNqfu/cZqvki8zsuj3piCMx4= github.com/OpenPeeDeeP/depguard/v2 v2.2.1/go.mod h1:q4DKzC4UcVaAvcfd41CZh0PWpGgzrVxUYBlgKNGquUo= -github.com/alecthomas/chroma/v2 v2.19.0 h1:Im+SLRgT8maArxv81mULDWN8oKxkzboH07CHesxElq4= -github.com/alecthomas/chroma/v2 v2.19.0/go.mod h1:RVX6AvYm4VfYe/zsk7mjHueLDZor3aWCNE14TFlepBk= -github.com/alecthomas/chroma/v2 v2.20.0 h1:sfIHpxPyR07/Oylvmcai3X/exDlE8+FA820NTz+9sGw= -github.com/alecthomas/chroma/v2 v2.20.0/go.mod h1:e7tViK0xh/Nf4BYHl00ycY6rV7b8iXBksI9E359yNmA= +github.com/alecthomas/chroma/v2 v2.21.1 h1:FaSDrp6N+3pphkNKU6HPCiYLgm8dbe5UXIXcoBhZSWA= +github.com/alecthomas/chroma/v2 v2.21.1/go.mod h1:NqVhfBR0lte5Ouh3DcthuUCTUpDC9cxBOfyMbMQPs3o= github.com/alecthomas/go-check-sumtype v0.3.1 h1:u9aUvbGINJxLVXiFvHUlPEaD7VDULsrxJb4Aq31NLkU= github.com/alecthomas/go-check-sumtype v0.3.1/go.mod h1:A8TSiN3UPRw3laIgWEUOHHLPa6/r9MtoigdlP5h3K/E= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -98,20 +80,16 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexkohler/nakedret/v2 v2.0.6 h1:ME3Qef1/KIKr3kWX3nti3hhgNxw6aqN5pZmQiFSsuzQ= github.com/alexkohler/nakedret/v2 v2.0.6/go.mod h1:l3RKju/IzOMQHmsEvXwkqMDzHHvurNQfAgE1eVmT40Q= -github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= -github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= +github.com/alexkohler/prealloc v1.0.1 h1:A9P1haqowqUxWvU9nk6tQ7YktXIHf+LQM9wPRhuteEE= +github.com/alexkohler/prealloc v1.0.1/go.mod h1:fT39Jge3bQrfA7nPMDngUfvUbQGQeJyGQnR+913SCig= github.com/alfatraining/structtag v1.0.0 h1:2qmcUqNcCoyVJ0up879K614L9PazjBSFruTB0GOFjCc= github.com/alfatraining/structtag v1.0.0/go.mod h1:p3Xi5SwzTi+Ryj64DqjLWz7XurHxbGsq6y3ubePJPus= github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= github.com/alingse/nilnesserr v0.2.0 h1:raLem5KG7EFVb4UIDAXgrv3N2JIaffeKNtcEXkEWd/w= github.com/alingse/nilnesserr v0.2.0/go.mod h1:1xJPrXonEtX7wyTq8Dytns5P2hNzoWymVUIaKm4HNFg= -github.com/ashanbrown/forbidigo/v2 v2.1.0 h1:NAxZrWqNUQiDz19FKScQ/xvwzmij6BiOw3S0+QUQ+Hs= -github.com/ashanbrown/forbidigo/v2 v2.1.0/go.mod h1:0zZfdNAuZIL7rSComLGthgc/9/n2FqspBOH90xlCHdA= github.com/ashanbrown/forbidigo/v2 v2.3.0 h1:OZZDOchCgsX5gvToVtEBoV2UWbFfI6RKQTir2UZzSxo= github.com/ashanbrown/forbidigo/v2 v2.3.0/go.mod h1:5p6VmsG5/1xx3E785W9fouMxIOkvY2rRV9nMdWadd6c= -github.com/ashanbrown/makezero/v2 v2.0.1 h1:r8GtKetWOgoJ4sLyUx97UTwyt2dO7WkGFHizn/Lo8TY= -github.com/ashanbrown/makezero/v2 v2.0.1/go.mod h1:kKU4IMxmYW1M4fiEHMb2vc5SFoPzXvgbMR9gIp5pjSw= github.com/ashanbrown/makezero/v2 v2.1.0 h1:snuKYMbqosNokUKm+R6/+vOPs8yVAi46La7Ck6QYSaE= github.com/ashanbrown/makezero/v2 v2.1.0/go.mod h1:aEGT/9q3S8DHeE57C88z2a6xydvgx8J5hgXIGWgo0MY= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= @@ -126,8 +104,6 @@ github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= github.com/bombsimon/wsl/v4 v4.7.0 h1:1Ilm9JBPRczjyUs6hvOPKvd7VL1Q++PL8M0SXBDf+jQ= github.com/bombsimon/wsl/v4 v4.7.0/go.mod h1:uV/+6BkffuzSAVYD+yGyld1AChO7/EuLrCF/8xTiapg= -github.com/bombsimon/wsl/v5 v5.0.0 h1:pWxP6X11o/YeF9eBVGXvS7L0FLEbHWm2kJJJGH6SeDQ= -github.com/bombsimon/wsl/v5 v5.0.0/go.mod h1:Gp8lD04z27wm3FANIUPZycXp+8huVsn0oxc+n4qfV9I= github.com/bombsimon/wsl/v5 v5.3.0 h1:nZWREJFL6U3vgW/B1lfDOigl+tEF6qgs6dGGbFeR0UM= github.com/bombsimon/wsl/v5 v5.3.0/go.mod h1:Gp8lD04z27wm3FANIUPZycXp+8huVsn0oxc+n4qfV9I= github.com/breml/bidichk v0.3.3 h1:WSM67ztRusf1sMoqH6/c4OBCUlRVTKq+CbSeo0R17sE= @@ -138,8 +114,6 @@ github.com/butuzov/ireturn v0.4.0 h1:+s76bF/PfeKEdbG8b54aCocxXmi0wvYdOVsWxVO7n8E github.com/butuzov/ireturn v0.4.0/go.mod h1:ghI0FrCmap8pDWZwfPisFD1vEc56VKH4NpQUxDHta70= github.com/butuzov/mirror v1.3.0 h1:HdWCXzmwlQHdVhwvsfBb2Au0r3HyINry3bDWLYXiKoc= github.com/butuzov/mirror v1.3.0/go.mod h1:AEij0Z8YMALaq4yQj9CPPVYOyJQyiexpQEQgihajRfI= -github.com/catenacyber/perfsprint v0.9.1 h1:5LlTp4RwTooQjJCvGEFV6XksZvWE7wCOUvjD2z0vls0= -github.com/catenacyber/perfsprint v0.9.1/go.mod h1:q//VWC2fWbcdSLEY1R3l8n0zQCDPdE4IjZwyY1HMunM= github.com/catenacyber/perfsprint v0.10.1 h1:u7Riei30bk46XsG8nknMhKLXG9BcXz3+3tl/WpKm0PQ= github.com/catenacyber/perfsprint v0.10.1/go.mod h1:DJTGsi/Zufpuus6XPGJyKOTMELe347o6akPvWG9Zcsc= github.com/ccojocar/zxcvbn-go v1.0.4 h1:FWnCIRMXPj43ukfX000kvBZvV6raSxakYr1nzyNrUcc= @@ -149,8 +123,6 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= -github.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ= github.com/charithe/durationcheck v0.0.11 h1:g1/EX1eIiKS57NTWsYtHDZ/APfeXKhye1DidBcABctk= github.com/charithe/durationcheck v0.0.11/go.mod h1:x5iZaixRNl8ctbM+3B2RrPG5t856TxRyVQEnbIEM2X4= github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc h1:4pZI35227imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs= @@ -173,8 +145,6 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/curioswitch/go-reassign v0.3.0 h1:dh3kpQHuADL3cobV/sSGETA8DOv457dwl+fbBAhrQPs= github.com/curioswitch/go-reassign v0.3.0/go.mod h1:nApPCCTtqLJN/s8HfItCcKV0jIPwluBOvZP+dsJGA88= -github.com/daixiang0/gci v0.13.6 h1:RKuEOSkGpSadkGbvZ6hJ4ddItT3cVZ9Vn9Rybk6xjl8= -github.com/daixiang0/gci v0.13.6/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk= github.com/daixiang0/gci v0.13.7 h1:+0bG5eK9vlI08J+J/NWGbWPTNiXPG4WhNLJOkSxWITQ= github.com/daixiang0/gci v0.13.7/go.mod h1:812WVN6JLFY9S6Tv76twqmNqevN0pa3SX3nih0brVzQ= github.com/dave/dst v0.27.3 h1:P1HPoMza3cMEquVf9kKy8yXsFirry4zEnWOdYPOoIzY= @@ -202,14 +172,10 @@ github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwV github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= -github.com/ghostiam/protogetter v0.3.15 h1:1KF5sXel0HE48zh1/vn0Loiw25A9ApyseLzQuif1mLY= -github.com/ghostiam/protogetter v0.3.15/go.mod h1:WZ0nw9pfzsgxuRsPOFQomgDVSWtDLJRfQJEhsGbmQMA= -github.com/ghostiam/protogetter v0.3.17 h1:sjGPErP9o7i2Ym+z3LsQzBdLCNaqbYy2iJQPxGXg04Q= -github.com/ghostiam/protogetter v0.3.17/go.mod h1:AivIX1eKA/TcUmzZdzbl+Tb8tjIe8FcyG6JFyemQAH4= -github.com/go-critic/go-critic v0.13.0 h1:kJzM7wzltQasSUXtYyTl6UaPVySO6GkaR1thFnJ6afY= -github.com/go-critic/go-critic v0.13.0/go.mod h1:M/YeuJ3vOCQDnP2SU+ZhjgRzwzcBW87JqLpMJLrZDLI= -github.com/go-critic/go-critic v0.14.2 h1:PMvP5f+LdR8p6B29npvChUXbD1vrNlKDf60NJtgMBOo= -github.com/go-critic/go-critic v0.14.2/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ= +github.com/ghostiam/protogetter v0.3.18 h1:yEpghRGtP9PjKvVXtEzGpYfQj1Wl/ZehAfU6fr62Lfo= +github.com/ghostiam/protogetter v0.3.18/go.mod h1:FjIu5Yfs6FT391m+Fjp3fbAYJ6rkL/J6ySpZBfnODuI= +github.com/go-critic/go-critic v0.14.3 h1:5R1qH2iFeo4I/RJU8vTezdqs08Egi4u5p6vOESA0pog= +github.com/go-critic/go-critic v0.14.3/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ= 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= @@ -237,18 +203,14 @@ github.com/go-toolsmith/strparse v1.1.0 h1:GAioeZUK9TGxnLS+qfdqNbA4z0SSm5zVNtCQi github.com/go-toolsmith/strparse v1.1.0/go.mod h1:7ksGy58fsaQkGQlY8WVoBFNyEPMGuJin1rfoPS4lBSQ= github.com/go-toolsmith/typep v1.1.0 h1:fIRYDyF+JywLfqzyhdiHzRop/GQDxxNhLGQ6gFUNHus= github.com/go-toolsmith/typep v1.1.0/go.mod h1:fVIw+7zjdsMxDA3ITWnH1yOiw1rnTQKCsF/sk2H/qig= -github.com/go-viper/mapstructure/v2 v2.3.0 h1:27XbWsHIqhbdR5TIC911OfYvgSaW93HM+dX7970Q7jk= -github.com/go-viper/mapstructure/v2 v2.3.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/go-xmlfmt/xmlfmt v1.1.3 h1:t8Ey3Uy7jDSEisW2K3somuMKIpzktkWptA0iFCnRUWY= github.com/go-xmlfmt/xmlfmt v1.1.3/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/godoc-lint/godoc-lint v0.10.2 h1:dksNgK+zebnVlj4Fx83CRnCmPO0qRat/9xfFsir1nfg= -github.com/godoc-lint/godoc-lint v0.10.2/go.mod h1:KleLcHu/CGSvkjUH2RvZyoK1MBC7pDQg4NxMYLcBBsw= -github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E= -github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0= +github.com/godoc-lint/godoc-lint v0.11.1 h1:z9as8Qjiy6miRIa3VRymTa+Gt2RLnGICVikcvlUVOaA= +github.com/godoc-lint/godoc-lint v0.11.1/go.mod h1:BAqayheFSuZrEAqCRxgw9MyvsM+S/hZwJbU1s/ejRj8= github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -285,18 +247,14 @@ github.com/golangci/asciicheck v0.5.0 h1:jczN/BorERZwK8oiFBOGvlGPknhvq0bjnysTj4n github.com/golangci/asciicheck v0.5.0/go.mod h1:5RMNAInbNFw2krqN6ibBxN/zfRFa9S6tA1nPdM0l8qQ= github.com/golangci/dupl v0.0.0-20250308024227-f665c8d69b32 h1:WUvBfQL6EW/40l6OmeSBYQJNSif4O11+bmWEz+C7FYw= github.com/golangci/dupl v0.0.0-20250308024227-f665c8d69b32/go.mod h1:NUw9Zr2Sy7+HxzdjIULge71wI6yEg1lWQr7Evcu8K0E= -github.com/golangci/go-printf-func-name v0.1.0 h1:dVokQP+NMTO7jwO4bwsRwLWeudOVUPPyAKJuzv8pEJU= -github.com/golangci/go-printf-func-name v0.1.0/go.mod h1:wqhWFH5mUdJQhweRnldEywnR5021wTdZSNgwYceV14s= github.com/golangci/go-printf-func-name v0.1.1 h1:hIYTFJqAGp1iwoIfsNTpoq1xZAarogrvjO9AfiW3B4U= github.com/golangci/go-printf-func-name v0.1.1/go.mod h1:Es64MpWEZbh0UBtTAICOZiB+miW53w/K9Or/4QogJss= github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d h1:viFft9sS/dxoYY0aiOTsLKO2aZQAPT4nlQCsimGcSGE= github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d/go.mod h1:ivJ9QDg0XucIkmwhzCDsqcnxxlDStoTl89jDMIoNxKY= -github.com/golangci/golangci-lint/v2 v2.2.2 h1:vuzwYGPzDx9WqN85Fu8F8wqDSZqk8q76ypnznXk6MvM= -github.com/golangci/golangci-lint/v2 v2.2.2/go.mod h1:F0BBgvaCGCAfnrlRQ729JSLrAJT172WwOpaQrbluz8E= -github.com/golangci/golangci-lint/v2 v2.7.0 h1:jcjBA3azjzV0VEsQaBaH/27WHeEQbnKzbWUhXQs+4DU= -github.com/golangci/golangci-lint/v2 v2.7.0/go.mod h1:ekW32uOX47mpRlfPlSscuJPprm6pCEYIDagudfLrx34= -github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95 h1:AkK+w9FZBXlU/xUmBtSJN1+tAI4FIvy5WtnUnY8e4p8= -github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95/go.mod h1:k9mmcyWKSTMcPPvQUCfRWWQ9VHJ1U9Dc0R7kaXAgtnQ= +github.com/golangci/golangci-lint/v2 v2.8.0 h1:wJnr3hJWY3eVzOUcfwbDc2qbi2RDEpvLmQeNFaPSNYA= +github.com/golangci/golangci-lint/v2 v2.8.0/go.mod h1:xl+HafQ9xoP8rzw0z5AwnO5kynxtb80e8u02Ej/47RI= +github.com/golangci/golines v0.14.0 h1:xt9d3RKBjhasA3qpoXs99J2xN2t6eBlpLHt0TrgyyXc= +github.com/golangci/golines v0.14.0/go.mod h1:gf555vPG2Ia7mmy2mzmhVQbVjuK8Orw0maR1G4vVAAQ= github.com/golangci/misspell v0.7.0 h1:4GOHr/T1lTW0hhR4tgaaV1WS/lJ+ncvYCoFKmqJsj0c= github.com/golangci/misspell v0.7.0/go.mod h1:WZyyI2P3hxPY2UVHs3cS8YcllAeyfquQcKfdeE9AFVg= github.com/golangci/plugin-module-register v0.1.2 h1:e5WM6PO6NIAEcij3B053CohVp3HIYbzSuP53UAYgOpg= @@ -335,28 +293,21 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= 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/gordonklaus/ineffassign v0.1.0 h1:y2Gd/9I7MdY1oEIt+n+rowjBNDcLQq3RsH5hwJd0f9s= -github.com/gordonklaus/ineffassign v0.1.0/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= github.com/gordonklaus/ineffassign v0.2.0 h1:Uths4KnmwxNJNzq87fwQQDDnbNb7De00VOk9Nu0TySs= github.com/gordonklaus/ineffassign v0.2.0/go.mod h1:TIpymnagPSexySzs7F9FnO1XFTy8IT3a59vmZp5Y9Lw= github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= -github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= github.com/gostaticanalysis/comment v1.5.0 h1:X82FLl+TswsUMpMh17srGRuKaaXprTaytmEpgnKIDu8= github.com/gostaticanalysis/comment v1.5.0/go.mod h1:V6eb3gpCv9GNVqb6amXzEUX3jXLVK/AdA+IrAMSqvEc= github.com/gostaticanalysis/forcetypeassert v0.2.0 h1:uSnWrrUEYDr86OCxWa4/Tp2jeYDlogZiZHzGkWFefTk= github.com/gostaticanalysis/forcetypeassert v0.2.0/go.mod h1:M5iPavzE9pPqWyeiVXSFghQjljW1+l/Uke3PXHS6ILY= -github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3Uqrmrcpk= -github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= github.com/gostaticanalysis/nilerr v0.1.2 h1:S6nk8a9N8g062nsx63kUkF6AzbHGw7zzyHMcpu52xQU= github.com/gostaticanalysis/nilerr v0.1.2/go.mod h1:A19UHhoY3y8ahoL7YKz6sdjDtduwTSI4CsymaC2htPA= github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= github.com/hashicorp/go-immutable-radix/v2 v2.1.0 h1:CUW5RYIcysz+D3B+l1mDeXrQ7fUvGGCwJfdASSzbrfo= github.com/hashicorp/go-immutable-radix/v2 v2.1.0/go.mod h1:hgdqLXA4f6NIjRVisM1TJ9aOJVNRqKZj+xDGF6m7PBw= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= -github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.8.0 h1:KAkNb1HAiZd1ukkxDFGmokVZe1Xy9HG6NUp+bPle2i4= github.com/hashicorp/go-version v1.8.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -387,8 +338,6 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/julz/importas v0.2.0 h1:y+MJN/UdL63QbFJHws9BVC5RpA2iq0kpjrFajTGivjQ= github.com/julz/importas v0.2.0/go.mod h1:pThlt589EnCYtMnmhmRYY/qn9lCf/frPOK+WMx3xiJY= -github.com/karamaru-alpha/copyloopvar v1.2.1 h1:wmZaZYIjnJ0b5UoKDjUHrikcV0zuPyyxI4SVplLd2CI= -github.com/karamaru-alpha/copyloopvar v1.2.1/go.mod h1:nFmMlFNlClC2BPvNaHMdkirmTJxVCY0lhxBtlfOypMM= github.com/karamaru-alpha/copyloopvar v1.2.2 h1:yfNQvP9YaGQR7VaWLYcfZUlRP2eo2vhExWKxD/fP6q0= github.com/karamaru-alpha/copyloopvar v1.2.2/go.mod h1:oY4rGZqZ879JkJMtX3RRkcXRkmUvH0x35ykgaKgsgJY= github.com/kisielk/errcheck v1.9.0 h1:9xt1zI9EBfcYBvdU1nVrzMzzUPUtPKs9bVSIM3TAb3M= @@ -402,30 +351,20 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= 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/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= -github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= github.com/kulti/thelper v0.7.1 h1:fI8QITAoFVLx+y+vSyuLBP+rcVIB8jKooNSCT2EiI98= github.com/kulti/thelper v0.7.1/go.mod h1:NsMjfQEy6sd+9Kfw8kCP61W1I0nerGSYSFnGaxQkcbs= -github.com/kunwardeep/paralleltest v1.0.14 h1:wAkMoMeGX/kGfhQBPODT/BL8XhK23ol/nuQ3SwFaUw8= -github.com/kunwardeep/paralleltest v1.0.14/go.mod h1:di4moFqtfz3ToSKxhNjhOZL+696QtJGCFe132CbBLGk= github.com/kunwardeep/paralleltest v1.0.15 h1:ZMk4Qt306tHIgKISHWFJAO1IDQJLc6uDyJMLyncOb6w= github.com/kunwardeep/paralleltest v1.0.15/go.mod h1:di4moFqtfz3ToSKxhNjhOZL+696QtJGCFe132CbBLGk= github.com/lasiar/canonicalheader v1.1.2 h1:vZ5uqwvDbyJCnMhmFYimgMZnJMjwljN5VGY0VKbMXb4= github.com/lasiar/canonicalheader v1.1.2/go.mod h1:qJCeLFS0G/QlLQ506T+Fk/fWMa2VmBUiEI2cuMK4djI= -github.com/ldez/exptostd v0.4.4 h1:58AtQjnLcT/tI5W/1KU7xE/O7zW9RAWB6c/ScQAnfus= -github.com/ldez/exptostd v0.4.4/go.mod h1:QfdzPw6oHjFVdNV7ILoPu5sw3OZ3OG1JS0I5JN3J4Js= github.com/ldez/exptostd v0.4.5 h1:kv2ZGUVI6VwRfp/+bcQ6Nbx0ghFWcGIKInkG/oFn1aQ= github.com/ldez/exptostd v0.4.5/go.mod h1:QRjHRMXJrCTIm9WxVNH6VW7oN7KrGSht69bIRwvdFsM= -github.com/ldez/gomoddirectives v0.7.0 h1:EOx8Dd56BZYSez11LVgdj025lKwlP0/E5OLSl9HDwsY= -github.com/ldez/gomoddirectives v0.7.0/go.mod h1:wR4v8MN9J8kcwvrkzrx6sC9xe9Cp68gWYCsda5xvyGc= -github.com/ldez/gomoddirectives v0.7.1 h1:FaULkvUIG36hj6chpwa+FdCNGZBsD7/fO+p7CCsM6pE= -github.com/ldez/gomoddirectives v0.7.1/go.mod h1:auDNtakWJR1rC+YX7ar+HmveqXATBAyEK1KYpsIRW/8= -github.com/ldez/grignotin v0.9.0 h1:MgOEmjZIVNn6p5wPaGp/0OKWyvq42KnzAt/DAb8O4Ow= -github.com/ldez/grignotin v0.9.0/go.mod h1:uaVTr0SoZ1KBii33c47O1M8Jp3OP3YDwhZCmzT9GHEk= +github.com/ldez/gomoddirectives v0.8.0 h1:JqIuTtgvFC2RdH1s357vrE23WJF2cpDCPFgA/TWDGpk= +github.com/ldez/gomoddirectives v0.8.0/go.mod h1:jutzamvZR4XYJLr0d5Honycp4Gy6GEg2mS9+2YX3F1Q= github.com/ldez/grignotin v0.10.1 h1:keYi9rYsgbvqAZGI1liek5c+jv9UUjbvdj3Tbn5fn4o= github.com/ldez/grignotin v0.10.1/go.mod h1:UlDbXFCARrXbWGNGP3S5vsysNXAPhnSuBufpTEbwOas= -github.com/ldez/tagliatelle v0.7.1 h1:bTgKjjc2sQcsgPiT902+aadvMjCeMHrY7ly2XKFORIk= -github.com/ldez/tagliatelle v0.7.1/go.mod h1:3zjxUpsNB2aEZScWiZTHrAXOl1x25t3cRmzfK1mlo2I= +github.com/ldez/structtags v0.6.1 h1:bUooFLbXx41tW8SvkfwfFkkjPYvFFs59AAMgVg6DUBk= +github.com/ldez/structtags v0.6.1/go.mod h1:YDxVSgDy/MON6ariaxLF2X09bh19qL7MtGBN5MrvbdY= github.com/ldez/tagliatelle v0.7.2 h1:KuOlL70/fu9paxuxbeqlicJnCspCRjH0x8FW+NfgYUk= github.com/ldez/tagliatelle v0.7.2/go.mod h1:PtGgm163ZplJfZMZ2sf5nhUT170rSuPgBimoyYtdaSI= github.com/ldez/usetesting v0.5.0 h1:3/QtzZObBKLy1F4F8jLuKJiKBjjVFi1IavpoWbmqLwc= @@ -438,18 +377,12 @@ github.com/macabu/inamedparam v0.2.0 h1:VyPYpOc10nkhI2qeNUdh3Zket4fcZjEWe35poddB github.com/macabu/inamedparam v0.2.0/go.mod h1:+Pee9/YfGe5LJ62pYXqB89lJ+0k5bsR8Wgz/C0Zlq3U= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/manuelarte/embeddedstructfieldcheck v0.3.0 h1:VhGqK8gANDvFYDxQkjPbv7/gDJtsGU9k6qj/hC2hgso= -github.com/manuelarte/embeddedstructfieldcheck v0.3.0/go.mod h1:LSo/IQpPfx1dXMcX4ibZCYA7Yy6ayZHIaOGM70+1Wy8= github.com/manuelarte/embeddedstructfieldcheck v0.4.0 h1:3mAIyaGRtjK6EO9E73JlXLtiy7ha80b2ZVGyacxgfww= github.com/manuelarte/embeddedstructfieldcheck v0.4.0/go.mod h1:z8dFSyXqp+fC6NLDSljRJeNQJJDWnY7RoWFzV3PC6UM= github.com/manuelarte/funcorder v0.5.0 h1:llMuHXXbg7tD0i/LNw8vGnkDTHFpTnWqKPI85Rknc+8= github.com/manuelarte/funcorder v0.5.0/go.mod h1:Yt3CiUQthSBMBxjShjdXMexmzpP8YGvGLjrxJNkO2hA= -github.com/maratori/testableexamples v1.0.0 h1:dU5alXRrD8WKSjOUnmJZuzdxWOEQ57+7s93SLMxb2vI= -github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE= github.com/maratori/testableexamples v1.0.1 h1:HfOQXs+XgfeRBJ+Wz0XfH+FHnoY9TVqL6Fcevpzy4q8= github.com/maratori/testableexamples v1.0.1/go.mod h1:XE2F/nQs7B9N08JgyRmdGjYVGqxWwClLPCGSQhXQSrQ= -github.com/maratori/testpackage v1.1.1 h1:S58XVV5AD7HADMmD0fNnziNHqKvSdDuEKdPD1rNTU04= -github.com/maratori/testpackage v1.1.1/go.mod h1:s4gRK/ym6AMrqpOa/kEbQTV4Q4jb7WeLZzVhVVVOQMc= github.com/maratori/testpackage v1.1.2 h1:ffDSh+AgqluCLMXhM19f/cpvQAKygKAJXFl9aUjmbqs= github.com/maratori/testpackage v1.1.2/go.mod h1:8F24GdVDFW5Ew43Et02jamrVMNXLUNaOynhDssITGfc= github.com/matoous/godox v1.1.0 h1:W5mqwbyWrwZv6OQ5Z1a/DHGMOvXYCBP3+Ht7KMoJhq4= @@ -463,8 +396,6 @@ github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6T github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= 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/mgechev/revive v1.10.0 h1:x2oJsd7yrDp0mC6IgZqSKBTjSUC9Zk5Ob2WfBwZic2I= -github.com/mgechev/revive v1.10.0/go.mod h1:1MRO9zUV7Yukhqh/nGRKSaw6xC5XDzPWPja5GMPWoSE= github.com/mgechev/revive v1.13.0 h1:yFbEVliCVKRXY8UgwEO7EOYNopvjb1BFbmYqm9hZjBM= github.com/mgechev/revive v1.13.0/go.mod h1:efJfeBVCX2JUumNQ7dtOLDja+QKj9mYGgEZA7rt5u+0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -488,8 +419,6 @@ github.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhK github.com/nishanths/exhaustive v0.12.0/go.mod h1:mEZ95wPIZW+x8kC4TgC+9YCUgiST7ecevsVDTgc2obs= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= -github.com/nunnatsa/ginkgolinter v0.19.1 h1:mjwbOlDQxZi9Cal+KfbEJTCz327OLNfwNvoZ70NJ+c4= -github.com/nunnatsa/ginkgolinter v0.19.1/go.mod h1:jkQ3naZDmxaZMXPWaS9rblH+i+GWXQCaS/JFIWcOH2s= github.com/nunnatsa/ginkgolinter v0.21.2 h1:khzWfm2/Br8ZemX8QM1pl72LwM+rMeW6VUbQ4rzh0Po= github.com/nunnatsa/ginkgolinter v0.21.2/go.mod h1:GItSI5fw7mCGLPmkvGYrr1kEetZe7B593jcyOpyabsY= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= @@ -506,8 +435,6 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 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/polyfloyd/go-errorlint v1.8.0 h1:DL4RestQqRLr8U4LygLw8g2DX6RN1eBJOpa2mzsrl1Q= -github.com/polyfloyd/go-errorlint v1.8.0/go.mod h1:G2W0Q5roxbLCt0ZQbdoxQxXktTjwNyDbEaj3n7jvl4s= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= @@ -530,12 +457,8 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/quasilyte/go-ruleguard v0.4.4 h1:53DncefIeLX3qEpjzlS1lyUmQoUEeOWPFWqaTJq9eAQ= -github.com/quasilyte/go-ruleguard v0.4.4/go.mod h1:Vl05zJ538vcEEwu16V/Hdu7IYZWyKSwIy4c88Ro1kRE= github.com/quasilyte/go-ruleguard v0.4.5 h1:AGY0tiOT5hJX9BTdx/xBdoCubQUAE2grkqY2lSwvZcA= github.com/quasilyte/go-ruleguard v0.4.5/go.mod h1:Vl05zJ538vcEEwu16V/Hdu7IYZWyKSwIy4c88Ro1kRE= -github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= -github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/go-ruleguard/dsl v0.3.23 h1:lxjt5B6ZCiBeeNO8/oQsegE6fLeCzuMRoVWSkXC4uvY= github.com/quasilyte/go-ruleguard/dsl v0.3.23/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo= @@ -565,10 +488,8 @@ github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tM github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= github.com/sashamelentyev/usestdlibvars v1.29.0 h1:8J0MoRrw4/NAXtjQqTHrbW9NN+3iMf7Knkq057v4XOQ= github.com/sashamelentyev/usestdlibvars v1.29.0/go.mod h1:8PpnjHMk5VdeWlVb4wCdrB8PNbLqZ3wBZTZWkrpZZL8= -github.com/securego/gosec/v2 v2.22.5 h1:ySws9uwOeE42DsG54v2moaJfh7r08Ev7SAYJuoMDfRA= -github.com/securego/gosec/v2 v2.22.5/go.mod h1:AWfgrFsVewk5LKobsPWlygCHt8K91boVPyL6GUZG5NY= -github.com/securego/gosec/v2 v2.22.10 h1:ntbBqdWXnu46DUOXn+R2SvPo3PiJCDugTCgTW2g4tQg= -github.com/securego/gosec/v2 v2.22.10/go.mod h1:9UNjK3tLpv/w2b0+7r82byV43wCJDNtEDQMeS+H/g2w= +github.com/securego/gosec/v2 v2.22.11 h1:tW+weM/hCM/GX3iaCV91d5I6hqaRT2TPsFM1+USPXwg= +github.com/securego/gosec/v2 v2.22.11/go.mod h1:KE4MW/eH0GLWztkbt4/7XpyH0zJBBnu7sYB4l6Wn7Mw= 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/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -578,27 +499,19 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE= github.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4= -github.com/sonatard/noctx v0.3.4 h1:ZeiM4rEeFTFSie/G5/HD9lHiMpQg/L4fnilaNmFQ2/A= -github.com/sonatard/noctx v0.3.4/go.mod h1:64XdbzFb18XL4LporKXp8poqZtPKbCrqQ402CV+kJas= github.com/sonatard/noctx v0.4.0 h1:7MC/5Gg4SQ4lhLYR6mvOP6mQVSxCrdyiExo7atBs27o= github.com/sonatard/noctx v0.4.0/go.mod h1:64XdbzFb18XL4LporKXp8poqZtPKbCrqQ402CV+kJas= github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0= github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= -github.com/spf13/afero v1.14.0 h1:9tH6MapGnn/j0eb0yIXiLjERO8RB6xIVZRDCX7PtqWA= -github.com/spf13/afero v1.14.0/go.mod h1:acJQ8t0ohCGuMN3O+Pv0V0hgMxNYDlvdk+VTfyZmbYo= github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= -github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= -github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= -github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= -github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= 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/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -606,8 +519,6 @@ github.com/spf13/viper v1.12.0 h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ= github.com/spf13/viper v1.12.0/go.mod h1:b6COn30jlNxbm/V2IqWiNWkJ+vZNiMNksliPCiuKtSI= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= -github.com/stbenjam/no-sprintf-host-port v0.2.0 h1:i8pxvGrt1+4G0czLr/WnmyH7zbZ8Bg8etvARQ1rpyl4= -github.com/stbenjam/no-sprintf-host-port v0.2.0/go.mod h1:eL0bQ9PasS0hsyTyfTjjG+E80QIyPnBVQbYZyv20Jfk= github.com/stbenjam/no-sprintf-host-port v0.3.1 h1:AyX7+dxI4IdLBPtDbsGAyqiTSLpCP9hWRrXQDU4Cm/g= github.com/stbenjam/no-sprintf-host-port v0.3.1/go.mod h1:ODbZesTCHMVKthBHskvUUexdcNHAQRXk9NpSsL8p/HQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -618,26 +529,18 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= -github.com/tdakkota/asciicheck v0.4.1 h1:bm0tbcmi0jezRA2b5kg4ozmMuGAFotKI3RZfrhfovg8= -github.com/tdakkota/asciicheck v0.4.1/go.mod h1:0k7M3rCfRXb0Z6bwgvkEIMleKH3kXNz9UqJ9Xuqopr8= github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= -github.com/tetafro/godot v1.5.1 h1:PZnjCol4+FqaEzvZg5+O8IY2P3hfY9JzRBNPv1pEDS4= -github.com/tetafro/godot v1.5.1/go.mod h1:cCdPtEndkmqqrhiCfkmxDodMQJ/f3L1BCNskCUZdTwk= github.com/tetafro/godot v1.5.4 h1:u1ww+gqpRLiIA16yF2PV1CV1n/X3zhyezbNXC3E14Sg= github.com/tetafro/godot v1.5.4/go.mod h1:eOkMrVQurDui411nBY2FA05EYH01r14LuWY/NrVDVcU= github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67 h1:9LPGD+jzxMlnk5r6+hJnar67cgpDIz/iyD+rfl5r2Vk= github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67/go.mod h1:mkjARE7Yr8qU23YcGMSALbIxTQ9r9QBVahQOBRfU460= github.com/timonwong/loggercheck v0.11.0 h1:jdaMpYBl+Uq9mWPXv1r8jc5fC3gyXx4/WGwTnnNKn4M= github.com/timonwong/loggercheck v0.11.0/go.mod h1:HEAWU8djynujaAVX7QI65Myb8qgfcZ1uKbdpg3ZzKl8= -github.com/tomarrell/wrapcheck/v2 v2.11.0 h1:BJSt36snX9+4WTIXeJ7nvHBQBcm1h2SjQMSlmQ6aFSU= -github.com/tomarrell/wrapcheck/v2 v2.11.0/go.mod h1:wFL9pDWDAbXhhPZZt+nG8Fu+h29TtnZ2MW6Lx4BRXIU= github.com/tomarrell/wrapcheck/v2 v2.12.0 h1:H/qQ1aNWz/eeIhxKAFvkfIA+N7YDvq6TWVFL27Of9is= github.com/tomarrell/wrapcheck/v2 v2.12.0/go.mod h1:AQhQuZd0p7b6rfW+vUwHm5OMCGgp63moQ9Qr/0BpIWo= github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= @@ -648,8 +551,6 @@ github.com/ultraware/whitespace v0.2.0 h1:TYowo2m9Nfj1baEQBjuHzvMRbp19i+RCcRYrSW github.com/ultraware/whitespace v0.2.0/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8= github.com/uudashr/gocognit v1.2.0 h1:3BU9aMr1xbhPlvJLSydKwdLN3tEUUrzPSSM8S4hDYRA= github.com/uudashr/gocognit v1.2.0/go.mod h1:k/DdKPI6XBZO1q7HgoV2juESI2/Ofj9AcHPZhBBdrTU= -github.com/uudashr/iface v1.4.0 h1:ImZ+1oEJPXvjap7nK0md7gA9RRH7PMp4vliaLkJ2+cg= -github.com/uudashr/iface v1.4.0/go.mod h1:i/H4cfRMPe0izticV8Yz0g6/zcsh5xXlvthrdh1kqcY= github.com/uudashr/iface v1.4.1 h1:J16Xl1wyNX9ofhpHmQ9h9gk5rnv2A6lX/2+APLTo0zU= github.com/uudashr/iface v1.4.1/go.mod h1:pbeBPlbuU2qkNDn0mmfrxP2X+wjPMIQAy+r1MBXSXtg= github.com/xen0n/gosmopolitan v1.3.0 h1:zAZI1zefvo7gcpbCOrPSHJZJYA9ZgLfJqtKzZ5pHqQM= @@ -671,20 +572,12 @@ github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= gitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo= gitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8= -go-simpler.org/musttag v0.13.1 h1:lw2sJyu7S1X8lc8zWUAdH42y+afdcCnHhWpnkWvd6vU= -go-simpler.org/musttag v0.13.1/go.mod h1:8r450ehpMLQgvpb6sg+hV5Ur47eH6olp/3yEanfG97k= go-simpler.org/musttag v0.14.0 h1:XGySZATqQYSEV3/YTy+iX+aofbZZllJaqwFWs+RTtSo= go-simpler.org/musttag v0.14.0/go.mod h1:uP8EymctQjJ4Z1kUnjX0u2l60WfUdQxCwSNKzE1JEOE= -go-simpler.org/sloglint v0.11.0 h1:JlR1X4jkbeaffiyjLtymeqmGDKBDO1ikC6rjiuFAOco= -go-simpler.org/sloglint v0.11.0/go.mod h1:CFDO8R1i77dlciGfPEPvYke2ZMx4eyGiEIWkyeW2Pvw= go-simpler.org/sloglint v0.11.1 h1:xRbPepLT/MHPTCA6TS/wNfZrDzkGvCCqUv4Bdwc3H7s= go-simpler.org/sloglint v0.11.1/go.mod h1:2PowwiCOK8mjiF+0KGifVOT8ZsCNiFzvfyJeJOIt8MQ= -go.augendre.info/arangolint v0.2.0 h1:2NP/XudpPmfBhQKX4rMk+zDYIj//qbt4hfZmSSTcpj8= -go.augendre.info/arangolint v0.2.0/go.mod h1:Vx4KSJwu48tkE+8uxuf0cbBnAPgnt8O1KWiT7bljq7w= go.augendre.info/arangolint v0.3.1 h1:n2E6p8f+zfXSFLa2e2WqFPp4bfvcuRdd50y6cT65pSo= go.augendre.info/arangolint v0.3.1/go.mod h1:6ZKzEzIZuBQwoSvlKT+qpUfIbBfFCE5gbAoTg0/117g= -go.augendre.info/fatcontext v0.8.0 h1:2dfk6CQbDGeu1YocF59Za5Pia7ULeAM6friJ3LP7lmk= -go.augendre.info/fatcontext v0.8.0/go.mod h1:oVJfMgwngMsHO+KB2MdgzcO+RvtNdiCEOlWvSFtax/s= go.augendre.info/fatcontext v0.9.0 h1:Gt5jGD4Zcj8CDMVzjOJITlSb9cEch54hjRRlN3qDojE= go.augendre.info/fatcontext v0.9.0/go.mod h1:L94brOAT1OOUNue6ph/2HnwxoNlds9aXDF2FcUntbNw= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= @@ -692,18 +585,14 @@ go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= -go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= 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= @@ -726,8 +615,6 @@ golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMk golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/exp/typeparams v0.0.0-20250210185358-939b2ce775ac h1:TSSpLIG4v+p0rPv1pNOQtl1I8knsO4S9trOxNMOLVP4= -golang.org/x/exp/typeparams v0.0.0-20250210185358-939b2ce775ac/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20251023183803-a4bb9ffd2546 h1:HDjDiATsGqvuqvkDvgJjD1IgPrVekcSXVVE21JwvzGE= golang.org/x/exp/typeparams v0.0.0-20251023183803-a4bb9ffd2546/go.mod h1:4Mzdyp/6jzw9auFDJ3OMF5qksa7UvPnzKqTVGcb04ms= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= @@ -757,10 +644,8 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= -golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= -golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk= -golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc= +golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI= +golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= 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-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -820,10 +705,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= -golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= -golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= 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-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -875,10 +758,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA= -golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= -golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= +golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= 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= @@ -895,10 +776,8 @@ 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/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= -golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= -golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k= -golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= 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= @@ -934,7 +813,6 @@ golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapK 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-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= 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= @@ -944,22 +822,17 @@ golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= 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-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= -golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo= -golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg= -golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= -golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= +golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= +golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= 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= @@ -1039,8 +912,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= -google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -1069,12 +940,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.6.1 h1:R094WgE8K4JirYjBaOpz/AvTyUu/3wbmAoskKN/pxTI= honnef.co/go/tools v0.6.1/go.mod h1:3puzxxljPCe8RGJX7BIy1plGbxEOZni5mR2aXe3/uk4= -mvdan.cc/gofumpt v0.8.0 h1:nZUCeC2ViFaerTcYKstMmfysj6uhQrA2vJe+2vwGU6k= -mvdan.cc/gofumpt v0.8.0/go.mod h1:vEYnSzyGPmjvFkqJWtXkh79UwPWP9/HMxQdGEXZHjpg= mvdan.cc/gofumpt v0.9.2 h1:zsEMWL8SVKGHNztrx6uZrXdp7AX8r421Vvp23sz7ik4= mvdan.cc/gofumpt v0.9.2/go.mod h1:iB7Hn+ai8lPvofHd9ZFGVg2GOr8sBUw1QUWjNbmIL/s= -mvdan.cc/unparam v0.0.0-20250301125049-0df0534333a4 h1:WjUu4yQoT5BHT1w8Zu56SP8367OuBV5jvo+4Ulppyf8= -mvdan.cc/unparam v0.0.0-20250301125049-0df0534333a4/go.mod h1:rthT7OuvRbaGcd5ginj6dA2oLE7YNlta9qhBNNdCaLE= mvdan.cc/unparam v0.0.0-20251027182757-5beb8c8f8f15 h1:ssMzja7PDPJV8FStj7hq9IKiuiKhgz9ErWw+m68e7DI= mvdan.cc/unparam v0.0.0-20251027182757-5beb8c8f8f15/go.mod h1:4M5MMXl2kW6fivUT6yRGpLLPNfuGtU2Z0cPvFquGDYU= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/.bingo/goyacc.mod b/.bingo/goyacc.mod index 097cc9fae..3fd30d203 100644 --- a/.bingo/goyacc.mod +++ b/.bingo/goyacc.mod @@ -1,5 +1,5 @@ module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT -go 1.16 +go 1.24.0 -require golang.org/x/tools v0.1.5 // cmd/goyacc +require golang.org/x/tools v0.42.0 // cmd/goyacc diff --git a/.bingo/goyacc.sum b/.bingo/goyacc.sum new file mode 100644 index 000000000..8f1755488 --- /dev/null +++ b/.bingo/goyacc.sum @@ -0,0 +1,13 @@ +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= +golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= +golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/telemetry v0.0.0-20260209163413-e7419c687ee4/go.mod h1:g5NllXBEermZrmR51cJDQxmJUHUOfRAaNyWBM+R+548= +golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM= +golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= +golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k= +golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/.bingo/jb.mod b/.bingo/jb.mod deleted file mode 100644 index bbd0f55bb..000000000 --- a/.bingo/jb.mod +++ /dev/null @@ -1,5 +0,0 @@ -module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT - -go 1.15 - -require github.com/jsonnet-bundler/jsonnet-bundler v0.4.0 // cmd/jb diff --git a/.bingo/mdox.mod b/.bingo/mdox.mod new file mode 100644 index 000000000..786ea34e3 --- /dev/null +++ b/.bingo/mdox.mod @@ -0,0 +1,5 @@ +module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT + +go 1.24.10 + +require github.com/bwplotka/mdox v0.9.1-0.20250909081353-65d927203516 diff --git a/.bingo/mdox.sum b/.bingo/mdox.sum new file mode 100644 index 000000000..5031573c0 --- /dev/null +++ b/.bingo/mdox.sum @@ -0,0 +1,620 @@ +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.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/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/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/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= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +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/Kunde21/markdownfmt/v3 v3.1.0 h1:KiZu9LKs+wFFBQKhrZJrFZwtLnCCWJahL+S+E/3VnM0= +github.com/Kunde21/markdownfmt/v3 v3.1.0/go.mod h1:tPXN1RTyOzJwhfHoon9wUr4HGYmWgVxSQN6VBJDkrVc= +github.com/PuerkitoBio/goquery v1.5.1 h1:PSPBGne8NIUWw+/7vFBV+kG2J/5MOjbzc7154OaKCSE= +github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= +github.com/alecthomas/chroma v0.10.0 h1:7XDcGkCQopCNKjZHfYrNLraA+M7e0fMiJ/Mfikbfjek= +github.com/alecthomas/chroma v0.10.0/go.mod h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s= +github.com/alecthomas/kingpin/v2 v2.4.0 h1:f48lwail6p8zpO1bC4TxtqACaGqHYA22qkHjHpqDjYY= +github.com/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= +github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= +github.com/andybalholm/cascadia v1.2.0 h1:vuRCkM5Ozh/BfmsaTm26kbjm0mIOM3yS5Ek/F5h18aE= +github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY= +github.com/antchfx/htmlquery v1.2.3 h1:sP3NFDneHx2stfNXCKbhHFo8XgNjCACnU/4AO5gWz6M= +github.com/antchfx/htmlquery v1.2.3/go.mod h1:B0ABL+F5irhhMWg54ymEZinzMSi0Kt3I2if0BLYa3V0= +github.com/antchfx/xmlquery v1.2.4/go.mod h1:KQQuESaxSlqugE2ZBcM/qn+ebIpt+d+4Xx7YcSGAIrM= +github.com/antchfx/xmlquery v1.3.4 h1:RuhsI4AA5Ma4XoXhaAr2VjJxU0Xp0W2zy/f9ZIpsF4s= +github.com/antchfx/xmlquery v1.3.4/go.mod h1:64w0Xesg2sTaawIdNqMB+7qaW/bSqkQm+ssPaCMWNnc= +github.com/antchfx/xpath v1.1.6/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk= +github.com/antchfx/xpath v1.1.8/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk= +github.com/antchfx/xpath v1.1.10 h1:cJ0pOvEdN/WvYXxvRrzQH9x5QWKpzHacYO8qzCcDYAg= +github.com/antchfx/xpath v1.1.10/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk= +github.com/aymanbagabas/go-osc52 v1.0.3 h1:DTwqENW7X9arYimJrPeGZcV0ln14sGMt3pHZspWD+Mg= +github.com/aymanbagabas/go-osc52 v1.0.3/go.mod h1:zT8H+Rk4VSabYN90pWyugflM3ZhpTZNC7cASDfUCdT4= +github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= +github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= +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/bep/godartsass v1.2.0 h1:E2VvQrxAHAFwbjyOIExAMmogTItSKodoKuijNrGm5yU= +github.com/bep/godartsass v1.2.0/go.mod h1:6LvK9RftsXMxGfsA0LDV12AGc4Jylnu6NgHL+Q5/pE8= +github.com/bep/godartsass/v2 v2.0.0 h1:Ruht+BpBWkpmW+yAM2dkp7RSSeN0VLaTobyW0CiSP3Y= +github.com/bep/godartsass/v2 v2.0.0/go.mod h1:AcP8QgC+OwOXEq6im0WgDRYK7scDsmZCEW62o1prQLo= +github.com/bep/golibsass v1.1.1 h1:xkaet75ygImMYjM+FnHIT3xJn7H0xBA9UxSOJjk8Khw= +github.com/bep/golibsass v1.1.1/go.mod h1:DL87K8Un/+pWUS75ggYv41bliGiolxzDKWJAq3eJ1MA= +github.com/bwplotka/mdox v0.9.1-0.20250909081353-65d927203516 h1:Z2oOu0qKOUohbEkgOzKyMEvBE0RQOg2nMz67W+/Faus= +github.com/bwplotka/mdox v0.9.1-0.20250909081353-65d927203516/go.mod h1:r7NaAOsAO3Ng3BJHKGPKTfzf+COwBiQp2+vfek6Lg+Y= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +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/charmbracelet/glamour v0.6.0 h1:wi8fse3Y7nfcabbbDuwolqTqMQPMnVPeZhDM273bISc= +github.com/charmbracelet/glamour v0.6.0/go.mod h1:taqWV4swIMMbWALc0m7AfE9JkPSU8om2538k9ITBxOc= +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/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME= +github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s= +github.com/cli/safeexec v1.0.0/go.mod h1:Z/D4tTN8Vs5gXYHDCbaM1S/anmEDnJb1iW0+EJ5zx3Q= +github.com/cli/safeexec v1.0.1 h1:e/C79PbXF4yYTN/wauC4tviMxEV13BwljGj0N9j+N00= +github.com/cli/safeexec v1.0.1/go.mod h1:Z/D4tTN8Vs5gXYHDCbaM1S/anmEDnJb1iW0+EJ5zx3Q= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +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/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/dlclark/regexp2 v1.10.0 h1:+/GIL799phkJqYW+3YbOd8LCcbHzT0Pbo8zl70MHsq0= +github.com/dlclark/regexp2 v1.10.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/efficientgo/core v1.0.0-rc.2 h1:7j62qHLnrZqO3V3UA0AqOGd5d5aXV3AX6m/NZBHp78I= +github.com/efficientgo/core v1.0.0-rc.2/go.mod h1:FfGdkzWarkuzOlY04VY+bGfb1lWrjaL6x/GLcQ4vJps= +github.com/efficientgo/tools/extkingpin v0.0.0-20230505153745-6b7392939a60 h1:JZLv+76vd7yTN049X7FRbDgvsXrbl7cDaZW12KQdebE= +github.com/efficientgo/tools/extkingpin v0.0.0-20230505153745-6b7392939a60/go.mod h1:0rmhYYrjSfDaVnd8ubwq5vRc1epHv00KkiNrvWuxo+s= +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/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= +github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/felixge/fgprof v0.9.3 h1:VvyZxILNuCiUCSXtPtYmmtGvb65nqXh2QFWc0Wpf2/g= +github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw= +github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= +github.com/frankban/quicktest v1.14.2/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gocolly/colly v1.2.0/go.mod h1:Hof5T3ZswNVsOHYmba1u03W65HDWgpV5HifSuueE0EA= +github.com/gocolly/colly/v2 v2.1.1-0.20201013153555-8252c346cfb0 h1:f+kHjWsqjft+/nCpQ6TcV3Lgs4lc+6rvBt2sfL4XsbE= +github.com/gocolly/colly/v2 v2.1.1-0.20201013153555-8252c346cfb0/go.mod h1:I2MuhsLjQ+Ex+IzK3afNS8/1qP3AedHOusRPcRdC5o0= +github.com/gohugoio/hugo v0.120.4 h1:AO/JFAHgrIKFnApCjpfQuyvI82t3yLgFZic4dg5l9OE= +github.com/gohugoio/hugo v0.120.4/go.mod h1:ZogFi7Iv3kRSSJDDguNsF219M4mGllg44IMvw/z/tEA= +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/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.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/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.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.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +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/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-20211214055906-6f57359322fd h1:1FjCyPC+syAzJ5/2S8fqdZK1R22vvA0J7JZKcuOIQ7Y= +github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= +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/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/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= +github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= +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/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/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= +github.com/jawher/mow.cli v1.1.0/go.mod h1:aNaQlc7ozF3vw6IJ2dHjp2ZFiA4ozMIYY6PyuRJwlUg= +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/kennygrant/sanitize v1.2.4 h1:gN25/otpP5vAsO2djbMhF/LQX6R7+O1TB4yv8NzpJ3o= +github.com/kennygrant/sanitize v1.2.4/go.mod h1:LGsjYYtgxbetdg5owWB2mpgUL6e2nfw2eObZ0u0qvak= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +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/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= +github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= +github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= +github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= +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/microcosm-cc/bluemonday v1.0.21 h1:dNH3e4PSyE4vNX+KlRGHT5KrSvjeUkoNPwEORjffHJg= +github.com/microcosm-cc/bluemonday v1.0.21/go.mod h1:ytNkv4RrDrLJ2pqlsSI46O6IVXmZOBBD4SaJyDwwTkM= +github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= +github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= +github.com/muesli/termenv v0.13.0 h1:wK20DRpJdDX8b7Ek2QfhvqhRQFZ237RGRO0RQ/Iqdy0= +github.com/muesli/termenv v0.13.0/go.mod h1:sP1+uffeLaEYpyOTb8pLCUctGcGLnoFjSn4YJK5e2bc= +github.com/niklasfasching/go-org v1.7.0 h1:vyMdcMWWTe/XmANk19F4k8XGBYg0GQ/gJGMimOjGMek= +github.com/niklasfasching/go-org v1.7.0/go.mod h1:WuVm4d45oePiE0eX25GqTDQIt/qPW1T9DGkRscqLW5o= +github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= +github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +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/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= +github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca h1:NugYot0LIVPxTvN8n+Kvkn6TrbMyxQiuvKdEwFdR9vI= +github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca/go.mod h1:uugorj2VCxiV1x+LzaIdVa9b4S4qGAcH6cbhh4qVxOU= +github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/spf13/afero v1.10.0 h1:EaGW2JJh15aKOejeuJ+wpFSHnbd7GE6Wvp3TsNhb6LY= +github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= +github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.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.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.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tdewolff/parse/v2 v2.7.3 h1:SHj/ry85FdqniccvzJTG+Gt/mi/HNa1cJcTzYZnvc5U= +github.com/tdewolff/parse/v2 v2.7.3/go.mod h1:9p2qMIHpjRSTr1qnFxQr+igogyTUTlwvf9awHSm84h8= +github.com/tdewolff/test v1.0.10/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE= +github.com/temoto/robotstxt v1.1.1 h1:Gh8RCs8ouX3hRSxxK7B1mO5RFByQ4CmJZDwgom++JaA= +github.com/temoto/robotstxt v1.1.1/go.mod h1:+1AmkuG3IYkh1kv0d2qEB9Le88ehNO0zwOr3ujewlOo= +github.com/theckman/yacspin v0.13.12 h1:CdZ57+n0U6JMuh2xqjnjRq5Haj6v1ner2djtLQRzJr4= +github.com/theckman/yacspin v0.13.12/go.mod h1:Rd2+oG2LmQi5f3zC3yeZAOl245z8QOvrH4OPOJNZxLg= +github.com/xhit/go-str2duration/v2 v2.1.0 h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8Ydu2Bstc= +github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU= +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.7/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.5.2/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/goldmark v1.6.0 h1:boZcn2GTjpsynOsC0iJHnBWa4Bi0qzfJjthwauItG68= +github.com/yuin/goldmark v1.6.0/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/goldmark-emoji v1.0.1/go.mod h1:2w1E6FEWLcDQkoTE+7HU6QF1F6SLlNGjRIBbIZQFqkQ= +github.com/yuin/goldmark-emoji v1.0.2 h1:c/RgTShNgHTtc6xdz2KKI74jJr6rWi7FPgnP9GAsO5s= +github.com/yuin/goldmark-emoji v1.0.2/go.mod h1:RhP/RWpexdp+KHs7ghKnifRoIs/Bq4nDS7tRbCkOwKY= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +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-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +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/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-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-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-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-20200421231249-e086a090c8fd/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-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +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-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-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= +golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= +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/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/sys v0.0.0-20180830151530-49385e6e1522/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-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-20191001151750-bb3f8db39f24/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-20200113162924-86b910548bc1/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-20200523222454-059865788121/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-20210225134936-a50acf3fe073/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-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +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.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.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +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/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-20191012152004-8de300cfc20a/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-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-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-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/xerrors v0.0.0-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= +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.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.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/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.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-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-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-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-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-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +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.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.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/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.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +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/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.2/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.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +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= +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= diff --git a/.bingo/opa.mod b/.bingo/opa.mod index e98d24225..3309751d7 100644 --- a/.bingo/opa.mod +++ b/.bingo/opa.mod @@ -1,7 +1,5 @@ module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT -go 1.23.8 +go 1.24.6 -toolchain go1.23.9 - -require github.com/open-policy-agent/opa v1.5.1 +require github.com/open-policy-agent/opa v1.13.2 diff --git a/.bingo/opa.sum b/.bingo/opa.sum index e6331f116..87179aeaa 100644 --- a/.bingo/opa.sum +++ b/.bingo/opa.sum @@ -859,8 +859,12 @@ github.com/bytecodealliance/wasmtime-go v0.36.0 h1:B6thr7RMM9xQmouBtUqm1RpkJjuLS github.com/bytecodealliance/wasmtime-go v0.36.0/go.mod h1:q320gUxqyI8yB+ZqRuaJOEnGkAnHh6WtJjMaT2CW4wI= github.com/bytecodealliance/wasmtime-go/v3 v3.0.2 h1:3uZCA/BLTIu+DqCfguByNMJa2HVHpXvjfy0Dy7g6fuA= github.com/bytecodealliance/wasmtime-go/v3 v3.0.2/go.mod h1:RnUjnIXxEJcL6BgCvNyzCCRzZcxCgsZCi+RNlvYor5Q= +github.com/bytecodealliance/wasmtime-go/v39 v39.0.1 h1:RibaT47yiyCRxMOj/l2cvL8cWiWBSqDXHyqsa9sGcCE= +github.com/bytecodealliance/wasmtime-go/v39 v39.0.1/go.mod h1:miR4NYIEBXeDNamZIzpskhJ0z/p8al+lwMWylQ/ZJb4= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= +github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= @@ -945,6 +949,8 @@ github.com/containerd/containerd v1.7.23/go.mod h1:7QUzfURqZWCZV7RLNEn1XjUCQLEf0 github.com/containerd/containerd/api v1.9.0/go.mod h1:GhghKFmTR3hNtyznBoQ0EMWr9ju5AqHjcZPsSpTKutI= github.com/containerd/containerd/v2 v2.1.1 h1:znnkm7Ajz8lg8BcIPMhc/9yjBRN3B+OkNKqKisKfwwM= github.com/containerd/containerd/v2 v2.1.1/go.mod h1:zIfkQj4RIodclYQkX7GSSswSwgP8d/XxDOtOAoSDIGU= +github.com/containerd/containerd/v2 v2.2.1 h1:TpyxcY4AL5A+07dxETevunVS5zxqzuq7ZqJXknM11yk= +github.com/containerd/containerd/v2 v2.2.1/go.mod h1:NR70yW1iDxe84F2iFWbR9xfAN0N2F0NcjTi1OVth4nU= github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= @@ -977,6 +983,8 @@ github.com/containerd/nri v0.8.0/go.mod h1:uSkgBrCdEtAiEz4vnrq8gmAC4EnVAM5Klt0Ou github.com/containerd/otelttrpc v0.1.0/go.mod h1:XhoA2VvaGPW1clB2ULwrBZfXVuEWuyOd2NUD1IM0yTg= github.com/containerd/platforms v1.0.0-rc.1 h1:83KIq4yy1erSRgOVHNk1HYdPvzdJ5CnsWaRoJX4C41E= github.com/containerd/platforms v1.0.0-rc.1/go.mod h1:J71L7B+aiM5SdIEqmd9wp6THLVRzJGXfNuWCZCllLA4= +github.com/containerd/platforms v1.0.0-rc.2 h1:0SPgaNZPVWGEi4grZdV8VRYQn78y+nm6acgLGv/QzE4= +github.com/containerd/platforms v1.0.0-rc.2/go.mod h1:J71L7B+aiM5SdIEqmd9wp6THLVRzJGXfNuWCZCllLA4= github.com/containerd/plugin v1.0.0/go.mod h1:hQfJe5nmWfImiqT1q8Si3jLv3ynMUIBB47bQ+KexvO8= github.com/containerd/protobuild v0.3.0/go.mod h1:5mNMFKKAwCIAkFBPiOdtRx2KiQlyEJeMXnL5R1DsWu8= github.com/containerd/stargz-snapshotter/estargz v0.15.1/go.mod h1:gr2RNwukQ/S9Nv33Lt6UC7xEx58C+LHRdoqbEKjz1Kk= @@ -990,6 +998,7 @@ github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kw github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= +github.com/containerd/typeurl/v2 v2.2.3 h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40= github.com/containerd/typeurl/v2 v2.2.3/go.mod h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk= github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= @@ -1044,10 +1053,14 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40= github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= github.com/dgraph-io/badger/v3 v3.2103.5/go.mod h1:4MPiseMeDQ3FNCYwRbbcBOGJLf5jsE0PPFzRiKjtcdw= github.com/dgraph-io/badger/v4 v4.7.0 h1:Q+J8HApYAY7UMpL8d9owqiB+odzEc0zn/aqOD9jhc6Y= github.com/dgraph-io/badger/v4 v4.7.0/go.mod h1:He7TzG3YBy3j4f5baj5B7Zl2XyfNe5bl4Udl0aPemVA= +github.com/dgraph-io/badger/v4 v4.9.0 h1:tpqWb0NewSrCYqTvywbcXOhQdWcqephkVkbBmaaqHzc= +github.com/dgraph-io/badger/v4 v4.9.0/go.mod h1:5/MEx97uzdPUHR4KtkNt8asfI2T4JiEiQlV7kWUo8c0= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= github.com/dgraph-io/ristretto/v2 v2.2.0 h1:bkY3XzJcXoMuELV8F+vS8kzNgicwQFAaGINAEJdWGOM= @@ -1111,6 +1124,7 @@ github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQL github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= @@ -1161,6 +1175,8 @@ github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTg github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= @@ -1194,6 +1210,8 @@ github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4 github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= +github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= @@ -1201,6 +1219,8 @@ github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6Wezm github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= +github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/goccy/go-yaml v1.11.0/go.mod h1:H+mJrWtjPTJAHvRbV09MCK9xYwODM+wRTVFFTWckfng= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -1216,6 +1236,7 @@ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zV github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/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= @@ -1379,6 +1400,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4Zs github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 h1:e9Rjr40Z98/clHv5Yg79Is0NtosR5LXRvdr7o/6NwbA= github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1/go.mod h1:tIxuGz/9mpox++sgp9fJjHO0+q1X9/UOWd798aAm22M= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 h1:NmZ1PKzSTQbuGHw9DGPFomqkkLWMC+vZCkfs+FHv1Vg= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3/go.mod h1:zQrxl1YP88HQlA6i9c63DSVPFklWpGX4OWAc9bFuaH4= github.com/hamba/avro/v2 v2.17.2/go.mod h1:Q9YK+qxAhtVrNqOhwlZTATLgLA8qxG2vtvkhK8fJ7Jo= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.25.1/go.mod h1:iiLVwR/htV7mas/sy0O+XSuEnrdBUUydemjxcUrAt4g= @@ -1413,6 +1436,8 @@ github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= @@ -1423,6 +1448,13 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= +github.com/huandu/go-clone v1.7.3 h1:rtQODA+ABThEn6J5LBTppJfKmZy/FwfpMUWa8d01TTQ= +github.com/huandu/go-clone v1.7.3/go.mod h1:ReGivhG6op3GYr+UY3lS6mxjKp7MIGTknuU5TbTVaXE= +github.com/huandu/go-sqlbuilder v1.39.0 h1:O3eSJZXrOfysA1SoDTf/sCiZqhA/FvdKRnehYwhrdOA= +github.com/huandu/go-sqlbuilder v1.39.0/go.mod h1:zdONH67liL+/TvoUMwnZP/sUYGSSvHh9psLe/HpXn8E= +github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= +github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/hugelgupf/socketpair v0.0.0-20190730060125-05d35a94e714/go.mod h1:2Goc3h8EklBH5mspfHFxBnEoURQCGzQQH1ga9Myjvis= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= @@ -1478,6 +1510,8 @@ github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8 github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/klauspost/compress v1.18.2 h1:iiPHWW0YrcFgpBYhsA6D1+fqHssJscY/Tm/y2Uqnapk= +github.com/klauspost/compress v1.18.2/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= @@ -1501,11 +1535,24 @@ github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1 github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y= github.com/lestrrat-go/blackmagic v1.0.2/go.mod h1:UrEqBzIR2U6CnzVyUtfM6oZNMt/7O7Vohk2J0OGSAtU= +github.com/lestrrat-go/blackmagic v1.0.4 h1:IwQibdnf8l2KoO+qC3uT4OaTWsW7tuRQXy9TRN9QanA= +github.com/lestrrat-go/blackmagic v1.0.4/go.mod h1:6AWFyKNNj0zEXQYfTMPfZrAXUWUfTIZ5ECEUEJaijtw= +github.com/lestrrat-go/dsig v1.0.0 h1:OE09s2r9Z81kxzJYRn07TFM9XA4akrUdoMwr0L8xj38= +github.com/lestrrat-go/dsig v1.0.0/go.mod h1:dEgoOYYEJvW6XGbLasr8TFcAxoWrKlbQvmJgCR0qkDo= +github.com/lestrrat-go/dsig-secp256k1 v1.0.0 h1:JpDe4Aybfl0soBvoVwjqDbp+9S1Y2OM7gcrVVMFPOzY= +github.com/lestrrat-go/dsig-secp256k1 v1.0.0/go.mod h1:CxUgAhssb8FToqbL8NjSPoGQlnO4w3LG1P0qPWQm/NU= +github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE= github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= +github.com/lestrrat-go/httprc/v3 v3.0.2 h1:7u4HUaD0NQbf2/n5+fyp+T10hNCsAnwKfqn4A4Baif0= +github.com/lestrrat-go/httprc/v3 v3.0.2/go.mod h1:mSMtkZW92Z98M5YoNNztbRGxbXHql7tSitCvaxvo9l0= github.com/lestrrat-go/iter v1.0.2/go.mod h1:Momfcq3AnRlRjI5b5O8/G5/BvpzrhoFTZcn06fEOPt4= github.com/lestrrat-go/jwx v1.2.29/go.mod h1:hU8k2l6WF0ncx20uQdOmik/Gjg6E3/wIRtXSNFeZuB8= +github.com/lestrrat-go/jwx/v3 v3.0.13 h1:AdHKiPIYeCSnOJtvdpipPg/0SuFh9rdkN+HF3O0VdSk= +github.com/lestrrat-go/jwx/v3 v3.0.13/go.mod h1:2m0PV1A9tM4b/jVLMx8rh6rBl7F6WGb3EG2hufN9OQU= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lestrrat-go/option v1.0.1/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= +github.com/lestrrat-go/option/v2 v2.0.0 h1:XxrcaJESE1fokHy3FpaQ/cXW8ZsIdWcdFzzLOcID3Ss= +github.com/lestrrat-go/option/v2 v2.0.0/go.mod h1:oSySsmzMoR0iRzCDCaUfsCzxQHUEuhOViQObyy7S6Vg= github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= @@ -1526,6 +1573,7 @@ github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVc 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/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= @@ -1534,6 +1582,7 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.0-20181025052659-b20a3daf6a39 h1:0E3wlIAcvD6zt/8UJgTd4JMT6UQhsnYyjCIqllyVLbs= github.com/mattn/go-runewidth v0.0.0-20181025052659-b20a3daf6a39/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= @@ -1541,6 +1590,8 @@ github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= +github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= @@ -1616,11 +1667,17 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLA github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/errors v1.1.0 h1:RNuGIh15QdDenh+hNvKrJkmxxjV4hcS50Db478Ou5sM= +github.com/olekukonko/errors v1.1.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y= +github.com/olekukonko/ll v0.0.9 h1:Y+1YqDfVkqMWuEQMclsF9HUR5+a82+dxJuL1HHSRpxI= +github.com/olekukonko/ll v0.0.9/go.mod h1:En+sEW0JNETl26+K8eZ6/W4UQ7CYSrrgg/EdIYT2H8g= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.1 h1:b3iUnf1v+ppJiOfNX4yxxqfWKMQPZR5yoh8urCTFX88= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/olekukonko/tablewriter v1.1.0 h1:N0LHrshF4T39KvI96fn6GT8HEjXRXYNDrDjKFDB7RIY= +github.com/olekukonko/tablewriter v1.1.0/go.mod h1:5c+EBPeSqvXnLLgkm9isDdzR3wjfBkHR9Nhfp3NWrzo= github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= 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= @@ -1642,6 +1699,8 @@ github.com/open-policy-agent/opa v0.23.2 h1:co9fPjnLPwnvaEThBJjCb5E2iAyvW95Qq2Pv github.com/open-policy-agent/opa v0.23.2/go.mod h1:rrwxoT/b011T0cyj+gg2VvxqTtn6N3gp/jzmr3fjW44= github.com/open-policy-agent/opa v1.5.1 h1:LTxxBJusMVjfs67W4FoRcnMfXADIGFMzpqnfk6D08Cg= github.com/open-policy-agent/opa v1.5.1/go.mod h1:bYbS7u+uhTI+cxHQIpzvr5hxX0hV7urWtY+38ZtjMgk= +github.com/open-policy-agent/opa v1.13.2 h1:c72l7DhxP4g8DEUBOdaU9QBKyA24dZxCcIuZNRZ0yP4= +github.com/open-policy-agent/opa v1.13.2/go.mod h1:M3Asy9yp1YTusUU5VQuENDe92GLmamIuceqjw+C8PHY= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -1721,6 +1780,8 @@ github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3O github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -1740,6 +1801,8 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d h1:GoAlyOgbOEIFdaDqxJVlbOQ1DtGmZWs/Qau0hIlk+WQ= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -1753,13 +1816,20 @@ github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0= +github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a h1:9ZKAASQSHhDYGoxY8uLVpewe1GDZ2vu2Tr/vTdVAkFQ= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/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/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 h1:bsUq1dX0N8AOIL7EB/X911+m4EHsnWEHeJ0c+3TTBrg= +github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -1779,6 +1849,8 @@ github.com/safchain/ethtool v0.5.10/go.mod h1:w9jh2Lx7YBR4UwzLkzCmWl85UY0W2uZdd7 github.com/sagikazarmark/crypt v0.17.0/go.mod h1:SMtHTvdmsZMuY/bpZoqokSoChIrcJ/epOxZN58PbZDg= github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= +github.com/sagikazarmark/locafero v0.11.0 h1:1iurJgmM9G3PA/I+wWYIOw/5SyBtxapeHDcg+AAIFXc= +github.com/sagikazarmark/locafero v0.11.0/go.mod h1:nVIGvgyzw595SUSUE6tvCp3YYTeHs15MvlmU87WwIik= github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U= @@ -1788,8 +1860,12 @@ github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24 github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/seccomp/libseccomp-golang v0.10.0/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0= +github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw= +github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= @@ -1802,6 +1878,8 @@ github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= +github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= github.com/smallstep/pkcs7 v0.1.1/go.mod h1:dL6j5AIz9GHjVEBTXtW+QliALcgM19RtXaTeyxI+AfA= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= @@ -1810,6 +1888,8 @@ github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4k github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw= +github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= @@ -1819,9 +1899,13 @@ github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= +github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= +github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= github.com/spf13/cobra v0.0.0-20181021141114-fe5e611709b0 h1:BgSbPgT2Zu8hDen1jJDGLWO8voaSRVrwsk18Q/uSh5M= github.com/spf13/cobra v0.0.0-20181021141114-fe5e611709b0/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= @@ -1830,6 +1914,8 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v0.0.0-20181024212040-082b515c9490 h1:EmIGPbInxgMLEZd2f2MZwv0lCYiAv93kztj4caWSUZA= @@ -1840,9 +1926,14 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4= github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= +github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= +github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY= github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g= github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/stefanberger/go-pkcs11uri v0.0.0-20230803200340-78284954bff6/go.mod h1:39R/xuhNgVhi+K0/zst4TLrJrVmbm6LVgl4A0+ZFS5M= @@ -1870,6 +1961,7 @@ github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/substrait-io/substrait-go v0.4.2/go.mod h1:qhpnLmrcvAnlZsUyPXZRqldiHapPTXC3t7xFgDi3aQg= @@ -1880,6 +1972,8 @@ github.com/tchap/go-patricia v2.2.6+incompatible h1:JvoDL7JSoIP2HDE8AbDH3zC8QBPx github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= github.com/tchap/go-patricia/v2 v2.3.2 h1:xTHFutuitO2zqKAQ5rCROYgUb7Or/+IC3fts9/Yc7nM= github.com/tchap/go-patricia/v2 v2.3.2/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k= +github.com/tchap/go-patricia/v2 v2.3.3 h1:xfNEsODumaEcCcY3gI0hYPZ/PcpVv5ju6RMAhgwZDDc= +github.com/tchap/go-patricia/v2 v2.3.3/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= @@ -1900,9 +1994,13 @@ github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtX github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.15/go.mod h1:wSan1hmo5zeyLGBjRJbzRTNk8gwoYa2B9n4q9dmRIc0= github.com/urfave/cli/v2 v2.27.6/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= +github.com/valyala/fastjson v1.6.7 h1:ZE4tRy0CIkh+qDc5McjatheGX2czdn8slQjomexVpBM= +github.com/valyala/fastjson v1.6.7/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk= github.com/vektah/gqlparser/v2 v2.5.26 h1:REqqFkO8+SOEgZHR/eHScjjVjGS8Nk3RMO/juiTobN4= github.com/vektah/gqlparser/v2 v2.5.26/go.mod h1:D1/VCZtV3LPnQrcPBeR/q5jkSQIPti0uYCP/RI0gIeo= +github.com/vektah/gqlparser/v2 v2.5.31 h1:YhWGA1mfTjID7qJhd1+Vxhpk5HTgydrGU9IgkWBTJ7k= +github.com/vektah/gqlparser/v2 v2.5.31/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts= github.com/veraison/go-cose v1.2.0/go.mod h1:7ziE85vSq4ScFTg6wyoMXjucIGOf4JkFEZi/an96Ct4= github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= @@ -1970,44 +2068,64 @@ go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0= go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= go.opentelemetry.io/contrib/detectors/gcp v1.34.0/go.mod h1:cV4BMFcscUR/ckqLkbfQmF0PRsq8w/lMGzdbCSveBHo= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.64.0 h1:ssfIgGNANqpVFCndZvcuyKbl0g+UAVcbBcqGkG28H0Y= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.64.0/go.mod h1:GQ/474YrbE4Jx8gZ4q5I4hrhUzM6UPzyrqJYV2AqPoQ= go.opentelemetry.io/contrib/zpages v0.60.0/go.mod h1:xqfToSRGh2MYUsfyErNz8jnNDPlnpZqWM/y6Z2Cx7xw= go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48= +go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8= go.opentelemetry.io/otel/exporters/otlp v0.20.0 h1:PTNgq9MRmQqqJY0REVbZFvwkYOA85vbdQU/nVfxDyqg= go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0/go.mod h1:UFG7EBMRdXyFstOwH028U0sVf+AvukSGhF0g8+dmNG8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 h1:1fTNlAIJZGWLP5FVu0fikVry1IsiUnXjf7QFvoNN3Xw= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0/go.mod h1:zjPK58DtkqQFn+YUMbx0M2XV3QgKU0gS9LeGohREyK4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0 h1:f0cb2XPmrqn4XMy9PNliTgRKJgS5WcL/u0/WRYGz4t0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0/go.mod h1:vnakAaFckOMiMtOIhFI2MNH4FYrZzXCYxmb1LlhoGz8= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 h1:m639+BofXTvcY1q8CGs4ItwQarYtJPOWmVobfM1HpVI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0/go.mod h1:LjReUci/F4BUyv+y4dwnq3h/26iNOeC3wAIqgvTIZVo= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0 h1:in9O8ESIOlwJAEGTkkf34DesGRAc/Pn8qJ7k3r/42LM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0/go.mod h1:Rp0EXBm5tfnv0WL+ARyO/PHBEaEAT8UUHQ6AGJcSq6c= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 h1:xJ2qHD0C1BeYVTLLR9sX12+Qb95kfeD/byKj6Ky1pXg= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0/go.mod h1:u5BF1xyjstDowA1R5QAO9JHzqK+ublenEW/dyqTjBVk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0 h1:Ckwye2FpXkYgiHX7fyVrN1uA/UYd9ounqqTuSNAv0k4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0/go.mod h1:teIFJh5pW2y+AN7riv6IBPX2DuesS3HgP39mwOspKwU= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I= go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= +go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0= +go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs= go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= +go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18= +go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE= go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= +go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= +go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A= +go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4= 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.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -2020,6 +2138,10 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= +go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -2049,6 +2171,8 @@ golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOM golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= +golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2197,6 +2321,8 @@ golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= +golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= +golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= 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= @@ -2251,6 +2377,8 @@ golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -2393,6 +2521,8 @@ golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -2435,6 +2565,8 @@ golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2445,6 +2577,8 @@ golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -2755,9 +2889,13 @@ google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a h1:nwKuGPlUAt+aR+pcrkfFRrTU1BVrSmYyYMxYbUIVHr0= google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a/go.mod h1:3kWAYMk1I75K4vykHtKt2ycnOgpA6974V7bREqbsenU= +google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls= +google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto= google.golang.org/genproto/googleapis/bytestream v0.0.0-20241223144023-3abc09e42ca8/go.mod h1:bLYPejkLzwgJuAHlIk1gdPOlx9CUYXLZi2rZxL/ursM= google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a h1:51aaUVRocpvUOSQKM6Q7VuoaktNIaMCLuhZB6DKksq4= google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a/go.mod h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -2806,6 +2944,8 @@ google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3 google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/grpc v1.72.0 h1:S7UkcVa60b5AAQTaO6ZKamFp1zMZSU0fGDK2WZLbBnM= google.golang.org/grpc v1.72.0/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= +google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc= +google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/grpc/examples v0.0.0-20230224211313-3775f633ce20/go.mod h1:Nr5H8+MlGWr5+xX/STzdoEqJrO+YteqFbMyCsrb6mH0= @@ -2829,6 +2969,8 @@ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= 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= @@ -2844,6 +2986,8 @@ gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMy gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.67.1 h1:tVBILHy0R6e4wkYOn3XmiITt/hEVH4TFMYvAX2Ytz6k= +gopkg.in/ini.v1 v1.67.1/go.mod h1:x/cyOwCgZqOkJoDIJ3c1KNHMo10+nLGAhh+kn3Zizss= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -2956,6 +3100,8 @@ oras.land/oras-go v1.2.0 h1:yoKosVIbsPoFMqAIFHTnrmOuafHal+J/r+I5bdbVWu4= oras.land/oras-go v1.2.0/go.mod h1:pFNs7oHp2dYsYMSS82HaX5l4mpnGO7hbpPN6EWH2ltc= oras.land/oras-go/v2 v2.5.0 h1:o8Me9kLY74Vp5uw07QXPiitjsw7qNXi8Twd+19Zf02c= oras.land/oras-go/v2 v2.5.0/go.mod h1:z4eisnLP530vwIOUOJeBIj0aGI0L1C3d53atvCBqZHg= +oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc= +oras.land/oras-go/v2 v2.6.0/go.mod h1:magiQDfG6H1O9APp+rOsvCPcW1GD2MM7vgnKY0Y+u1o= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= @@ -2971,5 +3117,7 @@ sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= tags.cncf.io/container-device-interface v1.0.1/go.mod h1:JojJIOeW3hNbcnOH2q0NrWNha/JuHoDZcmYxAZwb2i0= tags.cncf.io/container-device-interface/specs-go v1.0.0/go.mod h1:u86hoFWqnh3hWz3esofRFKbI261bUlvUfLKGrDhJkgQ= diff --git a/.bingo/variables.env b/.bingo/variables.env index 5d2ee659d..caf2ae591 100644 --- a/.bingo/variables.env +++ b/.bingo/variables.env @@ -1,4 +1,4 @@ -# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.9. DO NOT EDIT. +# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.10. DO NOT EDIT. # All tools are designed to be build inside $GOBIN. # Those variables will work only until 'bingo get' was invoked, or if tools were installed via Makefile's Variables.mk. GOBIN=${GOBIN:=$(go env GOBIN)} @@ -8,31 +8,27 @@ if [ -z "$GOBIN" ]; then fi -BINGO="${GOBIN}/bingo-v0.9.0" - -DEX="${GOBIN}/dex-v0.0.0-20200512115545-709d4169d646" - -EMBEDMD="${GOBIN}/embedmd-v1.0.0" +BINGO="${GOBIN}/bingo-v0.10.0" GOJSONTOYAML="${GOBIN}/gojsontoyaml-v0.0.0-20200602132005-3697ded27e8c" -GOLANGCI_LINT="${GOBIN}/golangci-lint-v2.7.0" +GOLANGCI_LINT="${GOBIN}/golangci-lint-v2.8.0" -GOYACC="${GOBIN}/goyacc-v0.1.5" +GOYACC="${GOBIN}/goyacc-v0.42.0" GUBERNATOR="${GOBIN}/gubernator-v1.0.0-rc.3" -JB="${GOBIN}/jb-v0.4.0" - JSONNET="${GOBIN}/jsonnet-v0.21.0" JSONNETFMT="${GOBIN}/jsonnetfmt-v0.21.0" KUBECONFORM="${GOBIN}/kubeconform-v0.7.0" +MDOX="${GOBIN}/mdox-v0.9.1-0.20250909081353-65d927203516" + OAPI_CODEGEN="${GOBIN}/oapi-codegen-v2.5.1" -OPA="${GOBIN}/opa-v1.5.1" +OPA="${GOBIN}/opa-v1.13.2" PROTOC_GEN_GO="${GOBIN}/protoc-gen-go-v1.4.2" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8a74d790b..3d8cda77c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,7 +10,7 @@ jobs: image: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 - name: Login to image registry uses: docker/login-action@v2 @@ -20,14 +20,14 @@ jobs: password: ${{ secrets.QUAY_PASSWORD }} - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v2 - name: Cache for Docker's buildx - uses: actions/cache@v3 + uses: actions/cache@v5 with: path: .buildxcache/ key: ${{ runner.os }}-buildx-${{ hashFiles('**/*.go', 'Dockerfile', 'go.sum') }} diff --git a/.github/workflows/test-github-actions.yml b/.github/workflows/test-github-actions.yml new file mode 100644 index 000000000..4164a4206 --- /dev/null +++ b/.github/workflows/test-github-actions.yml @@ -0,0 +1,108 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + +permissions: + contents: read + +env: + GO_VERSION: '1.24.11' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Build + run: | + make build + git diff --exit-code + + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Install dependencies + run: sudo apt-get update && sudo apt-get install -y xz-utils + + - name: Lint + run: make lint --always-make + + test: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Run tests + run: make test --always-make + + test-e2e: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Build e2e test container + run: | + make container-test + # Verify the image was built successfully + docker images --format '{{.Repository}}:{{.Tag}}' | grep -q 'local_e2e_test' || (echo 'ERROR: Container image local_e2e_test not found' && exit 1) + echo "Container image successfully built:" + docker images | grep 'local_e2e_test' + + - name: Run e2e tests + run: | + # Run tests directly instead of via make to avoid rebuilding the container + # The make test-e2e target has a dependency on container-test which would rebuild + # Remove any existing test artifacts from previous runs + rm -rf test/e2e/e2e_* + CGO_ENABLED=1 GO111MODULE=on go test -v -race -short -tags integration ./test/e2e + + generate: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Install dependencies + run: sudo apt-get update && sudo apt-get install -y unzip + + - name: Generate and validate + run: | + make generate validate --always-make + make proto + git diff --exit-code diff --git a/Makefile b/Makefile index bad7fb67b..ecf04045a 100644 --- a/Makefile +++ b/Makefile @@ -71,13 +71,16 @@ tmp/help.txt: $(BIN_NAME) $(TMP_DIR) tmp/load_help.txt: $(TMP_DIR) -./test/load.sh -h > $(TMP_DIR)/load_help.txt 2&>1 -README.md: $(EMBEDMD) tmp/help.txt - $(EMBEDMD) -w README.md +README.md: $(MDOX) $(BIN_NAME) + $(MDOX) fmt $@ -benchmark.md: $(EMBEDMD) tmp/load_help.txt +.PHONY: docs/benchmark.md +docs/benchmark.md: $(MDOX) + $(MDOX) fmt $@ + +benchmark: -rm -rf ./docs/loadtests PATH=$$PATH:$(BIN_DIR):$(FIRST_GOPATH)/bin ./test/load.sh -r 300 -c 1000 -m 3 -q 10 -o gnuplot - $(EMBEDMD) -w docs/benchmark.md $(BIN_NAME): deps main.go rules/rules.go $(wildcard *.go) $(wildcard */*.go) CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) GO111MODULE=on GOPROXY=https://proxy.golang.org go build -a -ldflags '-s -w -X main.Version=$(VERSION) -X main.Branch=$(GIT_BRANCH) -X main.Revision=$(GIT_REVISION)' -o $(BIN_NAME) . @@ -297,19 +300,7 @@ rules/rules.go: $(OAPI_CODEGEN) rules/spec.yaml $(OAPI_CODEGEN) -generate types,client,chi-server -package rules rules/spec.yaml | sed 's|gopkg.in/yaml.v2|github.com/ghodss/yaml|g' | gofmt -s > $@ client/client.gen.go: $(OAPI_CODEGEN) client/spec.yaml - $(OAPI_CODEGEN) -generate types,client -import-mapping="./parameters/parameters.yaml:github.com/observatorium/api/client/parameters,./models/models.yaml:github.com/observatorium/api/client/models,./responses/responses.yaml:github.com/observatorium/api/client/responses" -package client client/spec.yaml | sed 's|gopkg.in/yaml.v2|github.com/ghodss/yaml|g' | gofmt -s > $@ - -client/parameters/parameters.gen.go: $(OAPI_CODEGEN) client/parameters/parameters.yaml - $(OAPI_CODEGEN) -generate types,skip-prune -package parameters client/parameters/parameters.yaml | sed 's|gopkg.in/yaml.v2|github.com/ghodss/yaml|g' | gofmt -s > $@ - -client/models/models.gen.go: $(OAPI_CODEGEN) client/models/models.yaml - $(OAPI_CODEGEN) -generate types,skip-prune -package models client/models/models.yaml | sed 's|gopkg.in/yaml.v2|github.com/ghodss/yaml|g' | gofmt -s > $@ - -client/responses/responses.gen.go: $(OAPI_CODEGEN) client/responses/responses.yaml - $(OAPI_CODEGEN) -generate types,skip-prune -import-mapping="../models/models.yaml:github.com/observatorium/api/client/models" -package responses client/responses/responses.yaml | sed 's|gopkg.in/yaml.v2|github.com/ghodss/yaml|g' | gofmt -s > $@ + $(OAPI_CODEGEN) -generate types,client -package client client/spec.yaml | sed 's|gopkg.in/yaml.v2|github.com/ghodss/yaml|g' | gofmt -s > $@ -gen-oapi-client: - $(MAKE) client/parameters/parameters.gen.go - $(MAKE) client/models/models.gen.go - $(MAKE) client/responses/responses.gen.go - $(MAKE) client/client.gen.go +.PHONY: gen-oapi-client +gen-oapi-client: client/client.gen.go diff --git a/README.md b/README.md index 39542a7b4..d89f5d90c 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,8 @@ # Observatorium -[![CircleCI](https://circleci.com/gh/observatorium/api.svg?style=svg)](https://circleci.com/gh/observatorium/api) -[![Go Doc](https://godoc.org/github.com/observatorium/api?status.svg)](http://godoc.org/github.com/observatorium/api) -[![Go Report Card](https://goreportcard.com/badge/github.com/observatorium/api)](https://goreportcard.com/report/github.com/observatorium/api) +[![CircleCI](https://circleci.com/gh/observatorium/api.svg?style=svg)](https://circleci.com/gh/observatorium/api) [![Go Doc](https://godoc.org/github.com/observatorium/api?status.svg)](http://godoc.org/github.com/observatorium/api) [![Go Report Card](https://goreportcard.com/badge/github.com/observatorium/api)](https://goreportcard.com/report/github.com/observatorium/api) -This project is an API server for Observatorium. -The API provides an authenticated and authorized, multi-tenant interface for writing and reading observability signals, i.e. metrics and logs. +This project is an API server for Observatorium. The API provides an authenticated and authorized, multi-tenant interface for writing and reading observability signals, i.e. metrics and logs. ## Getting started @@ -27,18 +24,15 @@ The Observatorium API server fulfills requests by proxying reads and writes to a ### Metrics -The Observatorium API server can serve read and write requests for Prometheus metrics. -In order to handle requests for metrics, a compatible backend must be configured. +The Observatorium API server can serve read and write requests for Prometheus metrics. In order to handle requests for metrics, a compatible backend must be configured. #### --metrics.read.endpoint -The backend from which to read metrics can be specified with the `--metrics.read.endpoint` flag. -Compatible backends must implement the Prometheus HTTP API, e.g. Prometheus, Thanos querier, Cortex, etc. +The backend from which to read metrics can be specified with the `--metrics.read.endpoint` flag. Compatible backends must implement the Prometheus HTTP API, e.g. Prometheus, Thanos querier, Cortex, etc. #### --metrics.write.endpoint -The backend to which to write metrics can be specified with the `--metrics.write.endpoint` flag. -Compatible backends must implement the Prometheus remote-write API, e.g. Thanos receiver, Cortex, etc. +The backend to which to write metrics can be specified with the `--metrics.write.endpoint` flag. Compatible backends must implement the Prometheus remote-write API, e.g. Thanos receiver, Cortex, etc. #### --metrics.rules.endpoint @@ -46,28 +40,23 @@ The rules backend to where rules can be stored can be specified with the `--metr ### Logs -The Observatorium API server can serve read and write requests for logs. -In order to handle requests for logs, a compatible backend must be configured. +The Observatorium API server can serve read and write requests for logs. In order to handle requests for logs, a compatible backend must be configured. #### --logs.read.endpoint -The backend from which to read logs can be specified with the `--logs.read.endpoint` flag. -Compatible backends must implement the Loki read API, e.g. Loki. +The backend from which to read logs can be specified with the `--logs.read.endpoint` flag. Compatible backends must implement the Loki read API, e.g. Loki. #### --logs.tail.endpoint -The backend from which to tail logs can be specified with the `--logs.tail.endpoint` flag. -Compatible backends must implement the Loki tail API, e.g. Loki. +The backend from which to tail logs can be specified with the `--logs.tail.endpoint` flag. Compatible backends must implement the Loki tail API, e.g. Loki. #### --logs.write.endpoint -The backend to which to write logs can be specified with the `--logs.write.endpoint` flag. -Compatible backends must implement the Loki write API, e.g. Loki. +The backend to which to write logs can be specified with the `--logs.write.endpoint` flag. Compatible backends must implement the Loki write API, e.g. Loki. ## Usage -[embedmd]:# (tmp/help.txt) -```txt +```txt mdox-exec="./observatorium-api -h" Usage of ./observatorium-api: -debug.block-profile-rate int The percentage of goroutine blocking events that are reported in the blocking profile. (default 10) diff --git a/api/logs/v1/http.go b/api/logs/v1/http.go index 23462db03..9db8eb3c4 100644 --- a/api/logs/v1/http.go +++ b/api/logs/v1/http.go @@ -15,6 +15,7 @@ import ( "github.com/observatorium/api/proxy" "github.com/observatorium/api/tls" + "github.com/observatorium/api/tracing" ) const ( @@ -34,6 +35,10 @@ const ( rulesPerGroupNameRoute = "/loki/api/v1/rules/{namespace}/{groupName}" volumeRoute = "/loki/api/v1/index/volume" volumeRangeRoute = "/loki/api/v1/index/volume_range" + patternsRoute = "/loki/api/v1/patterns" + detectedLabelsRoute = "/loki/api/v1/detected_labels" + detectedFieldRoute = "/loki/api/v1/detected_field" + detectedFieldsRoute = "/loki/api/v1/detected_fields" otlpRoute = "/otlp/v1/logs" pushRoute = "/loki/api/v1/push" @@ -57,7 +62,6 @@ type handlerConfiguration struct { logger log.Logger registry *prometheus.Registry instrument handlerInstrumenter - spanRoutePrefix string rulesLabelFilters map[string][]string readMiddlewares []func(http.Handler) http.Handler writeMiddlewares []func(http.Handler) http.Handler @@ -89,13 +93,6 @@ func WithHandlerInstrumenter(instrumenter handlerInstrumenter) HandlerOption { } } -// WithSpanRoutePrefix adds a prefix before the value of route tag in tracing spans. -func WithSpanRoutePrefix(spanRoutePrefix string) HandlerOption { - return func(h *handlerConfiguration) { - h.spanRoutePrefix = spanRoutePrefix - } -} - // WithReadMiddleware adds a middleware for all read operations. func WithReadMiddleware(m func(http.Handler) http.Handler) HandlerOption { return func(h *handlerConfiguration) { @@ -161,6 +158,7 @@ func NewHandler(read, tail, write, rules *url.URL, rulesReadOnly bool, tlsOption } r := chi.NewRouter() + r.Use(tracing.WithChiRoutePattern) if read != nil { var proxyRead http.Handler @@ -189,50 +187,66 @@ func NewHandler(read, tail, write, rules *url.URL, rulesReadOnly bool, tlsOption r.Use(c.readMiddlewares...) r.Handle(queryRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "query"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+queryRoute, proxyRead), + proxyRead, )) r.Handle(queryRangeRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "query_range"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+queryRangeRoute, proxyRead), + proxyRead, )) r.Handle(labelRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "label"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+labelRoute, proxyRead), + proxyRead, )) r.Handle(labelsRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "labels"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+labelsRoute, proxyRead), + proxyRead, )) r.Handle(volumeRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "volume"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+volumeRoute, proxyRead), + proxyRead, )) r.Handle(volumeRangeRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "volume_range"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+volumeRangeRoute, proxyRead), + proxyRead, )) r.Handle(labelValuesRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "label_values"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+labelValuesRoute, proxyRead), + proxyRead, )) r.Handle(seriesRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "series"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+seriesRoute, proxyRead), + proxyRead, )) r.Handle(promQueryRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "query"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+promQueryRoute, proxyRead), + proxyRead, )) r.Handle(promLabelRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "label"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+promLabelRoute, proxyRead), + proxyRead, )) r.Handle(promLabelValuesRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "label_values"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+promLabelValuesRoute, proxyRead), + proxyRead, )) r.Handle(promSeriesRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "series"}, + proxyRead, + )) + r.Handle(patternsRoute, c.instrument.NewHandler( + prometheus.Labels{"group": "logsv1", "handler": "patterns"}, + otelhttp.WithRouteTag(c.spanRoutePrefix+patternsRoute, proxyRead), + )) + r.Handle(detectedLabelsRoute, c.instrument.NewHandler( + prometheus.Labels{"group": "logsv1", "handler": "detected_labels"}, + otelhttp.WithRouteTag(c.spanRoutePrefix+promSeriesRoute, proxyRead), + )) + r.Handle(detectedFieldRoute, c.instrument.NewHandler( + prometheus.Labels{"group": "logsv1", "handler": "detected_field`"}, + otelhttp.WithRouteTag(c.spanRoutePrefix+promSeriesRoute, proxyRead), + )) + r.Handle(detectedFieldsRoute, c.instrument.NewHandler( + prometheus.Labels{"group": "logsv1", "handler": "detected_fields`"}, otelhttp.WithRouteTag(c.spanRoutePrefix+promSeriesRoute, proxyRead), )) }) @@ -275,35 +289,35 @@ func NewHandler(read, tail, write, rules *url.URL, rulesReadOnly bool, tlsOption r.Use(c.rulesReadMiddlewares...) r.Get(rulesRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+rulesRoute, proxyRules), + proxyRules, )) r.Get(rulesPerNamespaceRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+rulesPerNamespaceRoute, proxyRules), + proxyRules, )) r.Get(rulesPerGroupNameRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+rulesPerGroupNameRoute, proxyRules), + proxyRules, )) r.Get(prometheusRulesRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+prometheusRulesRoute, proxyPrometheusReadRules), + proxyPrometheusReadRules, )) r.Get(prometheusAlertsRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "alerts"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+prometheusAlertsRoute, proxyPrometheusReadRules), + proxyPrometheusReadRules, )) r.Get(promRulesRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+promRulesRoute, proxyRules), + proxyRules, )) r.Get(promRulesPerNamespaceRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+promRulesPerNamespaceRoute, proxyRules), + proxyRules, )) r.Get(promRulesPerGroupNameRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+promRulesPerGroupNameRoute, proxyRules), + proxyRules, )) }) @@ -313,28 +327,28 @@ func NewHandler(read, tail, write, rules *url.URL, rulesReadOnly bool, tlsOption r.Use(c.rulesWriteMiddlewares...) r.Post(rulesPerNamespaceRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+rulesPerNamespaceRoute, proxyRules), + proxyRules, )) r.Delete(rulesPerNamespaceRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+rulesPerNamespaceRoute, proxyRules), + proxyRules, )) r.Delete(rulesPerGroupNameRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+rulesPerGroupNameRoute, proxyRules), + proxyRules, )) r.Post(promRulesPerNamespaceRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+promRulesPerNamespaceRoute, proxyRules), + proxyRules, )) r.Delete(promRulesPerNamespaceRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+promRulesPerNamespaceRoute, proxyRules), + proxyRules, )) r.Delete(promRulesPerGroupNameRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "rules"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+promRulesPerGroupNameRoute, proxyRules), + proxyRules, )) }) } @@ -367,11 +381,11 @@ func NewHandler(read, tail, write, rules *url.URL, rulesReadOnly bool, tlsOption r.Use(c.readMiddlewares...) r.Handle(tailRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "tail"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+tailRoute, tailRead), + tailRead, )) r.Handle(promTailRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "prom_tail"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+promTailRoute, tailRead), + tailRead, )) }) } @@ -403,11 +417,11 @@ func NewHandler(read, tail, write, rules *url.URL, rulesReadOnly bool, tlsOption r.Use(c.writeMiddlewares...) r.Handle(otlpRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "otlp"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+otlpRoute, proxyWrite), + proxyWrite, )) r.Handle(pushRoute, c.instrument.NewHandler( prometheus.Labels{"group": "logsv1", "handler": "push"}, - otelhttp.WithRouteTag(c.spanRoutePrefix+pushRoute, proxyWrite), + proxyWrite, )) }) } diff --git a/api/metrics/legacy/http.go b/api/metrics/legacy/http.go index ecdd2f790..c2f50eb5d 100644 --- a/api/metrics/legacy/http.go +++ b/api/metrics/legacy/http.go @@ -15,6 +15,7 @@ import ( "github.com/observatorium/api/proxy" "github.com/observatorium/api/server" "github.com/observatorium/api/tls" + "github.com/observatorium/api/tracing" ) const ( @@ -28,7 +29,6 @@ type handlerConfiguration struct { logger log.Logger registry *prometheus.Registry instrument handlerInstrumenter - spanRoutePrefix string queryMiddlewares []func(http.Handler) http.Handler uiMiddlewares []func(http.Handler) http.Handler labelParser func(r *http.Request) prometheus.Labels @@ -54,13 +54,6 @@ func WithHandlerInstrumenter(instrumenter handlerInstrumenter) HandlerOption { } } -// WithSpanRoutePrefix adds a prefix before the value of route tag in tracing spans. -func WithSpanRoutePrefix(spanRoutePrefix string) HandlerOption { - return func(h *handlerConfiguration) { - h.spanRoutePrefix = spanRoutePrefix - } -} - // WithQueryMiddleware adds a middleware for all query operations. func WithQueryMiddleware(m func(http.Handler) http.Handler) HandlerOption { return func(h *handlerConfiguration) { @@ -113,6 +106,7 @@ func NewHandler(url *url.URL, tlsOptions *tls.UpstreamOptions, opts ...HandlerOp } r := chi.NewRouter() + r.Use(tracing.WithChiRoutePattern) r.Use(func(handler http.Handler) http.Handler { return c.instrument.NewHandler(nil, handler) }) @@ -147,12 +141,7 @@ func NewHandler(url *url.URL, tlsOptions *tls.UpstreamOptions, opts ...HandlerOp ) }) r.Use(c.queryMiddlewares...) - r.Handle(QueryRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+QueryRoute, - legacyProxy, - ), - ) + r.Handle(QueryRoute, legacyProxy) }) r.Group(func(r chi.Router) { r.Use(func(handler http.Handler) http.Handler { @@ -162,12 +151,7 @@ func NewHandler(url *url.URL, tlsOptions *tls.UpstreamOptions, opts ...HandlerOp ) }) r.Use(c.queryMiddlewares...) - r.Handle(QueryRangeRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+QueryRangeRoute, - legacyProxy, - ), - ) + r.Handle(QueryRangeRoute, legacyProxy) }) r.Group(func(r chi.Router) { diff --git a/api/metrics/v1/http.go b/api/metrics/v1/http.go index 04bbfa949..092935b92 100644 --- a/api/metrics/v1/http.go +++ b/api/metrics/v1/http.go @@ -17,6 +17,7 @@ import ( "github.com/observatorium/api/rules" "github.com/observatorium/api/server" "github.com/observatorium/api/tls" + "github.com/observatorium/api/tracing" ) const ( @@ -48,7 +49,6 @@ type handlerConfiguration struct { logger log.Logger registry *prometheus.Registry instrument handlerInstrumenter - spanRoutePrefix string tenantLabel string queryMiddlewares []func(http.Handler) http.Handler readMiddlewares []func(http.Handler) http.Handler @@ -81,13 +81,6 @@ func WithHandlerInstrumenter(instrumenter handlerInstrumenter) HandlerOption { } } -// WithSpanRoutePrefix adds a prefix before the value of route tag in tracing spans. -func WithSpanRoutePrefix(spanRoutePrefix string) HandlerOption { - return func(h *handlerConfiguration) { - h.spanRoutePrefix = spanRoutePrefix - } -} - // WithTenantLabel adds tenant label for the handler to use. func WithTenantLabel(tenantLabel string) HandlerOption { return func(h *handlerConfiguration) { @@ -185,6 +178,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha } r := chi.NewRouter() + r.Use(tracing.WithChiRoutePattern) r.Use(func(handler http.Handler) http.Handler { return c.instrument.NewHandler(nil, handler) }) @@ -220,12 +214,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha }) r.Use(c.queryMiddlewares...) r.Use(server.StripTenantPrefix("/api/metrics/v1")) - r.Handle(QueryRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+QueryRoute, - proxyQuery, - ), - ) + r.Handle(QueryRoute, proxyQuery) }) r.Group(func(r chi.Router) { r.Use(func(handler http.Handler) http.Handler { @@ -236,12 +225,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha }) r.Use(c.queryMiddlewares...) r.Use(server.StripTenantPrefix("/api/metrics/v1")) - r.Handle(QueryRangeRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+QueryRangeRoute, - proxyQuery, - ), - ) + r.Handle(QueryRangeRoute, proxyQuery) }) var proxyRead http.Handler @@ -275,12 +259,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha }) r.Use(c.readMiddlewares...) r.Use(server.StripTenantPrefix("/api/metrics/v1")) - r.Handle(SeriesRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+SeriesRoute, - proxyRead, - ), - ) + r.Handle(SeriesRoute, proxyRead) }) r.Group(func(r chi.Router) { r.Use(func(handler http.Handler) http.Handler { @@ -291,12 +270,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha }) r.Use(c.readMiddlewares...) r.Use(server.StripTenantPrefix("/api/metrics/v1")) - r.Handle(LabelNamesRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+LabelNamesRoute, - proxyRead, - ), - ) + r.Handle(LabelNamesRoute, proxyRead) }) r.Group(func(r chi.Router) { r.Use(func(handler http.Handler) http.Handler { @@ -307,12 +281,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha }) r.Use(c.readMiddlewares...) r.Use(server.StripTenantPrefix("/api/metrics/v1")) - r.Handle(LabelValuesRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+LabelValuesRoute, - proxyRead, - ), - ) + r.Handle(LabelValuesRoute, proxyRead) }) r.Group(func(r chi.Router) { @@ -326,12 +295,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha r.Use(server.StripTenantPrefix("/api/metrics/v1")) // Thanos Query Rules API supports matchers from v0.25 so the WithEnforceTenancyOnMatchers // middleware will not work here if prior versions are used. - r.Handle(RulesRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+RulesRoute, - proxyRead, - ), - ) + r.Handle(RulesRoute, proxyRead) }) var uiProxy http.Handler @@ -360,12 +324,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha }) r.Use(c.uiMiddlewares...) r.Use(server.StripTenantPrefix("/api/metrics/v1")) - r.Mount(UIRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+UIRoute, - uiProxy, - ), - ) + r.Mount(UIRoute, uiProxy) }) } @@ -401,12 +360,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha }) r.Use(c.writeMiddlewares...) r.Use(server.StripTenantPrefix("/api/metrics/v1")) - r.Handle(ReceiveRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+ReceiveRoute, - proxyWrite, - ), - ) + r.Handle(ReceiveRoute, proxyWrite) }) } @@ -428,12 +382,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha }) r.Use(c.uiMiddlewares...) r.Use(server.StripTenantPrefix("/api/metrics/v1")) - r.Method(http.MethodGet, RulesRawRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+RulesRawRoute, - http.HandlerFunc(rh.get), - ), - ) + r.Method(http.MethodGet, RulesRawRoute, http.HandlerFunc(rh.get)) }) r.Group(func(r chi.Router) { @@ -445,12 +394,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha }) r.Use(c.writeMiddlewares...) r.Use(server.StripTenantPrefix("/api/metrics/v1")) - r.Method(http.MethodPut, RulesRawRoute, - otelhttp.WithRouteTag( - c.spanRoutePrefix+RulesRawRoute, - http.HandlerFunc(rh.put), - ), - ) + r.Method(http.MethodPut, RulesRawRoute, http.HandlerFunc(rh.put)) }) } @@ -488,10 +432,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha r.Use(c.alertmanagerMiddleware.alertsReadMiddlewares...) r.Use(server.StripTenantPrefixWithSubRoute("/api/metrics/v1", "/am")) - r.Method(http.MethodGet, AlertmanagerAlertsRoute, otelhttp.WithRouteTag( - c.spanRoutePrefix+AlertmanagerAlertsRoute, - proxyAlertmanager, - )) + r.Method(http.MethodGet, AlertmanagerAlertsRoute, proxyAlertmanager) }) r.Group(func(r chi.Router) { @@ -504,10 +445,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha r.Use(c.alertmanagerMiddleware.silenceReadMiddlewares...) r.Use(server.StripTenantPrefixWithSubRoute("/api/metrics/v1", "/am")) - r.Method(http.MethodGet, AlertmanagerSilencesRoute, otelhttp.WithRouteTag( - c.spanRoutePrefix+AlertmanagerSilencesRoute, - proxyAlertmanager, - )) + r.Method(http.MethodGet, AlertmanagerSilencesRoute, proxyAlertmanager) }) r.Group(func(r chi.Router) { @@ -520,10 +458,7 @@ func NewHandler(endpoints Endpoints, tlsOptions *tls.UpstreamOptions, opts ...Ha r.Use(c.alertmanagerMiddleware.silenceWriteMiddlewares...) r.Use(server.StripTenantPrefixWithSubRoute("/api/metrics/v1", "/am")) - r.Method(http.MethodPost, AlertmanagerSilencesRoute, otelhttp.WithRouteTag( - c.spanRoutePrefix+AlertmanagerSilencesRoute, - proxyAlertmanager, - )) + r.Method(http.MethodPost, AlertmanagerSilencesRoute, proxyAlertmanager) }) } diff --git a/authentication/oidc.go b/authentication/oidc.go index 73da9363c..3cccc811c 100644 --- a/authentication/oidc.go +++ b/authentication/oidc.go @@ -21,7 +21,6 @@ import ( grpc_middleware_auth "github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/auth" "github.com/mitchellh/mapstructure" "github.com/prometheus/client_golang/prometheus" - "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" "golang.org/x/oauth2" "google.golang.org/grpc" "google.golang.org/grpc/codes" @@ -29,6 +28,7 @@ import ( "google.golang.org/grpc/status" "github.com/observatorium/api/httperr" + "github.com/observatorium/api/tracing" ) // OIDCAuthenticatorType represents the oidc authentication provider type. @@ -159,8 +159,9 @@ func newOIDCAuthenticator(c map[string]interface{}, tenant string, } r := chi.NewRouter() - r.Handle(loginRoute, otelhttp.WithRouteTag(handlerPrefix+loginRoute, oidcProvider.oidcLoginHandler(&oauth2Config))) - r.Handle(callbackRoute, otelhttp.WithRouteTag(handlerPrefix+callbackRoute, oidcProvider.oidcCallBackHandler())) + r.Use(tracing.WithChiRoutePattern) + r.Handle(loginRoute, oidcProvider.oidcLoginHandler(&oauth2Config)) + r.Handle(callbackRoute, oidcProvider.oidcCallBackHandler()) oidcProvider.handler = r return oidcProvider, nil diff --git a/authentication/openshift.go b/authentication/openshift.go index ba74c88eb..3944f3ac9 100644 --- a/authentication/openshift.go +++ b/authentication/openshift.go @@ -21,7 +21,6 @@ import ( "github.com/mitchellh/mapstructure" "github.com/pkg/errors" "github.com/prometheus/client_golang/prometheus" - "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" "golang.org/x/oauth2" "google.golang.org/grpc" "google.golang.org/grpc/codes" @@ -34,6 +33,7 @@ import ( "github.com/observatorium/api/authentication/openshift" "github.com/observatorium/api/httperr" + "github.com/observatorium/api/tracing" ) const OpenShiftAuthenticatorType = "openshift" @@ -239,8 +239,9 @@ func newOpenshiftAuthenticator(c map[string]interface{}, tenant string, } r := chi.NewRouter() - r.Handle(loginRoute, otelhttp.WithRouteTag(handlerPrefix+loginRoute, osAuthenticator.openshiftLoginHandler())) - r.Handle(callbackRoute, otelhttp.WithRouteTag(handlerPrefix+callbackRoute, osAuthenticator.openshiftCallbackHandler())) + r.Use(tracing.WithChiRoutePattern) + r.Handle(loginRoute, osAuthenticator.openshiftLoginHandler()) + r.Handle(callbackRoute, osAuthenticator.openshiftCallbackHandler()) osAuthenticator.handler = r return osAuthenticator, nil diff --git a/authentication/openshift/cookie.go b/authentication/openshift/cookie.go index 9ef6ae4a5..a7b6e7515 100644 --- a/authentication/openshift/cookie.go +++ b/authentication/openshift/cookie.go @@ -38,7 +38,7 @@ func (c *Cipher) Encrypt(value string) (string, error) { return "", errors.Wrap(err, "failed to create initialization vector") } - stream := cipher.NewCFBEncrypter(c.Block, iv) + stream := cipher.NewCTR(c.Block, iv) stream.XORKeyStream(ciphertext[aes.BlockSize:], []byte(value)) return base64.StdEncoding.EncodeToString(ciphertext), nil @@ -59,7 +59,7 @@ func (c *Cipher) Decrypt(s string) (string, error) { iv := encrypted[:aes.BlockSize] encrypted = encrypted[aes.BlockSize:] - stream := cipher.NewCFBDecrypter(c.Block, iv) + stream := cipher.NewCTR(c.Block, iv) stream.XORKeyStream(encrypted, encrypted) return string(encrypted), nil diff --git a/client/client.gen.go b/client/client.gen.go index 055b4f14a..bcd4e8b95 100644 --- a/client/client.gen.go +++ b/client/client.gen.go @@ -12,40 +12,559 @@ import ( "net/http" "net/url" "strings" + "time" "github.com/ghodss/yaml" "github.com/oapi-codegen/runtime" - externalRef0 "github.com/observatorium/api/client/models" - externalRef1 "github.com/observatorium/api/client/parameters" - externalRef2 "github.com/observatorium/api/client/responses" + openapi_types "github.com/oapi-codegen/runtime/types" ) +// Defines values for AlertStatusState. +const ( + AlertStatusStateActive AlertStatusState = "active" + AlertStatusStateSuppressed AlertStatusState = "suppressed" + AlertStatusStateUnprocessed AlertStatusState = "unprocessed" +) + +// Defines values for AlertingRuleEvaluatedType. +const ( + Alerting AlertingRuleEvaluatedType = "alerting" +) + +// Defines values for LogInstantQueryResponseResultType. +const ( + LogInstantQueryResponseResultTypeMatrix LogInstantQueryResponseResultType = "matrix" + LogInstantQueryResponseResultTypeScalar LogInstantQueryResponseResultType = "scalar" + LogInstantQueryResponseResultTypeStreams LogInstantQueryResponseResultType = "streams" + LogInstantQueryResponseResultTypeString LogInstantQueryResponseResultType = "string" + LogInstantQueryResponseResultTypeVector LogInstantQueryResponseResultType = "vector" +) + +// Defines values for LogRangeQueryResponseResultType. +const ( + LogRangeQueryResponseResultTypeMatrix LogRangeQueryResponseResultType = "matrix" +) + +// Defines values for MetricInstantQueryResponseResultType. +const ( + MetricInstantQueryResponseResultTypeMatrix MetricInstantQueryResponseResultType = "matrix" + MetricInstantQueryResponseResultTypeScalar MetricInstantQueryResponseResultType = "scalar" + MetricInstantQueryResponseResultTypeStreams MetricInstantQueryResponseResultType = "streams" + MetricInstantQueryResponseResultTypeString MetricInstantQueryResponseResultType = "string" + MetricInstantQueryResponseResultTypeVector MetricInstantQueryResponseResultType = "vector" +) + +// Defines values for MetricRangeQueryResponseResultType. +const ( + MetricRangeQueryResponseResultTypeMatrix MetricRangeQueryResponseResultType = "matrix" +) + +// Defines values for RecordingRuleEvaluatedType. +const ( + Recording RecordingRuleEvaluatedType = "recording" +) + +// Defines values for SilenceStatusState. +const ( + SilenceStatusStateActive SilenceStatusState = "active" + SilenceStatusStateExpired SilenceStatusState = "expired" + SilenceStatusStatePending SilenceStatusState = "pending" +) + +// ActiveAlert defines model for ActiveAlert. +type ActiveAlert struct { + ActiveAt string `json:"activeAt"` + Annotations *map[string]string `json:"annotations,omitempty"` + Labels *map[string]string `json:"labels,omitempty"` + State string `json:"state"` + Value string `json:"value"` +} + +// Alert defines model for Alert. +type Alert struct { + GeneratorURL *string `json:"generatorURL,omitempty"` + Labels LabelSet `json:"labels"` +} + +// AlertStatus defines model for AlertStatus. +type AlertStatus struct { + InhibitedBy []string `json:"inhibitedBy"` + MutedBy []string `json:"mutedBy"` + SilencedBy []string `json:"silencedBy"` + State AlertStatusState `json:"state"` +} + +// AlertStatusState defines model for AlertStatus.State. +type AlertStatusState string + +// AlertingRule defines model for AlertingRule. +type AlertingRule struct { + Alert string `json:"alert"` + Annotations *map[string]string `json:"annotations,omitempty"` + Expr string `json:"expr"` + For *string `json:"for,omitempty"` + Labels *map[string]string `json:"labels,omitempty"` +} + +// AlertingRuleEvaluated defines model for AlertingRuleEvaluated. +type AlertingRuleEvaluated struct { + Alerts *[]ActiveAlert `json:"alerts,omitempty"` + Annotations *map[string]string `json:"annotations,omitempty"` + Duration *float32 `json:"duration,omitempty"` + EvaluationTime *float32 `json:"evaluationTime,omitempty"` + Health *string `json:"health,omitempty"` + Labels *map[string]string `json:"labels,omitempty"` + LastError *string `json:"lastError,omitempty"` + LastEvaluation *string `json:"lastEvaluation,omitempty"` + Name string `json:"name"` + Query string `json:"query"` + Type *AlertingRuleEvaluatedType `json:"type,omitempty"` +} + +// AlertingRuleEvaluatedType defines model for AlertingRuleEvaluated.Type. +type AlertingRuleEvaluatedType string + +// AllLogRulesResponse defines model for AllLogRulesResponse. +type AllLogRulesResponse = map[string]interface{} + +// GettableAlert defines model for GettableAlert. +type GettableAlert struct { + Annotations LabelSet `json:"annotations"` + EndsAt time.Time `json:"endsAt"` + Fingerprint string `json:"fingerprint"` + GeneratorURL *string `json:"generatorURL,omitempty"` + Labels LabelSet `json:"labels"` + Receivers []Receiver `json:"receivers"` + StartsAt time.Time `json:"startsAt"` + Status AlertStatus `json:"status"` + UpdatedAt time.Time `json:"updatedAt"` +} + +// GettableAlerts defines model for GettableAlerts. +type GettableAlerts = []GettableAlert + +// GettableSilence defines model for GettableSilence. +type GettableSilence struct { + Comment string `json:"comment"` + CreatedBy string `json:"createdBy"` + EndsAt time.Time `json:"endsAt"` + Id string `json:"id"` + Matchers Matchers `json:"matchers"` + StartsAt time.Time `json:"startsAt"` + Status SilenceStatus `json:"status"` + UpdatedAt time.Time `json:"updatedAt"` +} + +// GettableSilences defines model for GettableSilences. +type GettableSilences = []GettableSilence + +// InstantVectors defines model for InstantVectors. +type InstantVectors struct { + Metric map[string]string `json:"metric"` + Values []ScalarOrString `json:"values"` +} + +// LabelSet defines model for LabelSet. +type LabelSet map[string]string + +// LogInstantQueryResponse defines model for LogInstantQueryResponse. +type LogInstantQueryResponse struct { + Result []LogInstantQueryResponse_Result_Item `json:"result"` + ResultType LogInstantQueryResponseResultType `json:"resultType"` +} + +// LogInstantQueryResponse_Result_Item defines model for LogInstantQueryResponse.result.Item. +type LogInstantQueryResponse_Result_Item struct { + union json.RawMessage +} + +// LogInstantQueryResponseResultType defines model for LogInstantQueryResponse.ResultType. +type LogInstantQueryResponseResultType string + +// LogLabelValuesResponse defines model for LogLabelValuesResponse. +type LogLabelValuesResponse struct { + Data []string `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// LogLabelsResponse defines model for LogLabelsResponse. +type LogLabelsResponse struct { + Data []string `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// LogQueryRangeResponse defines model for LogQueryRangeResponse. +type LogQueryRangeResponse struct { + Data LogRangeQueryResponse `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// LogQueryResponse defines model for LogQueryResponse. +type LogQueryResponse struct { + Data LogInstantQueryResponse `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// LogRangeQueryResponse defines model for LogRangeQueryResponse. +type LogRangeQueryResponse struct { + Result []LogRangeQueryResponse_Result_Item `json:"result"` + ResultType LogRangeQueryResponseResultType `json:"resultType"` +} + +// LogRangeQueryResponse_Result_Item defines model for LogRangeQueryResponse.result.Item. +type LogRangeQueryResponse_Result_Item struct { + union json.RawMessage +} + +// LogRangeQueryResponseResultType defines model for LogRangeQueryResponse.ResultType. +type LogRangeQueryResponseResultType string + +// LogReadResponse defines model for LogReadResponse. +type LogReadResponse struct { + DroppedEntries *[]TailLogs `json:"dropped_entries,omitempty"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Streams []PushLogs `json:"streams"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// LogRulesGroupResponse defines model for LogRulesGroupResponse. +type LogRulesGroupResponse struct { + Interval *string `json:"interval,omitempty"` + Name string `json:"name"` + Rules []RulesRaw `json:"rules"` +} + +// LogRulesNamespaceResponse defines model for LogRulesNamespaceResponse. +type LogRulesNamespaceResponse struct { + Groups []RuleGroup `json:"groups"` +} + +// LogRulesPrometheusResponse defines model for LogRulesPrometheusResponse. +type LogRulesPrometheusResponse struct { + Data Rules `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// LogSeriesResponse defines model for LogSeriesResponse. +type LogSeriesResponse struct { + Data []map[string]string `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// Matcher defines model for Matcher. +type Matcher struct { + IsEqual *bool `json:"isEqual,omitempty"` + IsRegex bool `json:"isRegex"` + Name string `json:"name"` + Value string `json:"value"` +} + +// Matchers defines model for Matchers. +type Matchers = []Matcher + +// MetricInstantQueryResponse defines model for MetricInstantQueryResponse. +type MetricInstantQueryResponse struct { + Result []MetricInstantQueryResponse_Result_Item `json:"result"` + ResultType MetricInstantQueryResponseResultType `json:"resultType"` +} + +// MetricInstantQueryResponse_Result_Item defines model for MetricInstantQueryResponse.result.Item. +type MetricInstantQueryResponse_Result_Item struct { + union json.RawMessage +} + +// MetricInstantQueryResponseResultType defines model for MetricInstantQueryResponse.ResultType. +type MetricInstantQueryResponseResultType string + +// MetricLabelValuesResponse defines model for MetricLabelValuesResponse. +type MetricLabelValuesResponse struct { + Data []string `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// MetricLabelsResponse defines model for MetricLabelsResponse. +type MetricLabelsResponse struct { + Data []string `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// MetricQueryRangeResponse defines model for MetricQueryRangeResponse. +type MetricQueryRangeResponse struct { + Data MetricRangeQueryResponse `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// MetricQueryResponse defines model for MetricQueryResponse. +type MetricQueryResponse struct { + Data MetricInstantQueryResponse `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// MetricRangeQueryResponse defines model for MetricRangeQueryResponse. +type MetricRangeQueryResponse struct { + Result []MetricRangeQueryResponse_Result_Item `json:"result"` + ResultType MetricRangeQueryResponseResultType `json:"resultType"` +} + +// MetricRangeQueryResponse_Result_Item defines model for MetricRangeQueryResponse.result.Item. +type MetricRangeQueryResponse_Result_Item struct { + union json.RawMessage +} + +// MetricRangeQueryResponseResultType defines model for MetricRangeQueryResponse.ResultType. +type MetricRangeQueryResponseResultType string + +// MetricRulesResponse defines model for MetricRulesResponse. +type MetricRulesResponse struct { + Data Rules `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// MetricSeriesResponse defines model for MetricSeriesResponse. +type MetricSeriesResponse struct { + Data []map[string]string `json:"data"` + Error *string `json:"error,omitempty"` + ErrorType *string `json:"errorType,omitempty"` + Status string `json:"status"` + Warnings *[]string `json:"warnings,omitempty"` +} + +// PostableSilence defines model for PostableSilence. +type PostableSilence struct { + Comment string `json:"comment"` + CreatedBy string `json:"createdBy"` + EndsAt time.Time `json:"endsAt"` + Id *string `json:"id,omitempty"` + Matchers Matchers `json:"matchers"` + StartsAt time.Time `json:"startsAt"` +} + +// PostableSilenceResponse defines model for PostableSilenceResponse. +type PostableSilenceResponse struct { + SilenceID *string `json:"silenceID,omitempty"` +} + +// PushLogs defines model for PushLogs. +type PushLogs struct { + Stream map[string]string `json:"stream"` + Values []ScalarOrString `json:"values"` +} + +// RangeVectors defines model for RangeVectors. +type RangeVectors struct { + Metric map[string]string `json:"metric"` + Values []ScalarOrString `json:"values"` +} + +// Receiver defines model for Receiver. +type Receiver struct { + Name string `json:"name"` +} + +// RecordingRule defines model for RecordingRule. +type RecordingRule struct { + Expr string `json:"expr"` + Labels *map[string]string `json:"labels,omitempty"` + Record string `json:"record"` +} + +// RecordingRuleEvaluated defines model for RecordingRuleEvaluated. +type RecordingRuleEvaluated struct { + EvaluationTime *float32 `json:"evaluationTime,omitempty"` + Health *string `json:"health,omitempty"` + Labels *map[string]string `json:"labels,omitempty"` + LastError *string `json:"lastError,omitempty"` + LastEvaluation *string `json:"lastEvaluation,omitempty"` + Name string `json:"name"` + Query string `json:"query"` + Type *RecordingRuleEvaluatedType `json:"type,omitempty"` +} + +// RecordingRuleEvaluatedType defines model for RecordingRuleEvaluated.Type. +type RecordingRuleEvaluatedType string + +// RuleGroup defines model for RuleGroup. +type RuleGroup struct { + Interval *float32 `json:"interval,omitempty"` + Name string `json:"name"` + Rules []RuleGroup_Rules_Item `json:"rules"` +} + +// RuleGroup_Rules_Item defines model for RuleGroup.rules.Item. +type RuleGroup_Rules_Item struct { + union json.RawMessage +} + +// RuleGroupEvaluated defines model for RuleGroupEvaluated. +type RuleGroupEvaluated struct { + EvaluationTime *float32 `json:"evaluationTime,omitempty"` + File *string `json:"file,omitempty"` + Interval *float32 `json:"interval,omitempty"` + LastEvaluation *string `json:"lastEvaluation,omitempty"` + Limit *float32 `json:"limit,omitempty"` + Name string `json:"name"` + PartialResponseStrategy *string `json:"partialResponseStrategy,omitempty"` + Rules []RuleGroupEvaluated_Rules_Item `json:"rules"` +} + +// RuleGroupEvaluated_Rules_Item defines model for RuleGroupEvaluated.rules.Item. +type RuleGroupEvaluated_Rules_Item struct { + union json.RawMessage +} + +// Rules defines model for Rules. +type Rules struct { + Groups []RuleGroupEvaluated `json:"groups"` +} + +// RulesRaw defines model for RulesRaw. +type RulesRaw struct { + Groups []RuleGroup `json:"groups"` +} + +// ScalarOrString defines model for ScalarOrString. +type ScalarOrString = []ScalarOrString_Item + +// ScalarOrString0 defines model for . +type ScalarOrString0 = string + +// ScalarOrString1 defines model for . +type ScalarOrString1 = string + +// ScalarOrString_Item defines model for ScalarOrString.Item. +type ScalarOrString_Item struct { + union json.RawMessage +} + +// Silence defines model for Silence. +type Silence struct { + Comment string `json:"comment"` + CreatedBy string `json:"createdBy"` + EndsAt time.Time `json:"endsAt"` + Matchers Matchers `json:"matchers"` + StartsAt time.Time `json:"startsAt"` +} + +// SilenceStatus defines model for SilenceStatus. +type SilenceStatus struct { + State SilenceStatusState `json:"state"` +} + +// SilenceStatusState defines model for SilenceStatus.State. +type SilenceStatusState string + +// StreamValues defines model for StreamValues. +type StreamValues struct { + Stream map[string]string `json:"stream"` + Values []ScalarOrString `json:"values"` +} + +// TailLogs defines model for TailLogs. +type TailLogs struct { + Labels map[string]string `json:"labels"` + Timestamp string `json:"timestamp"` +} + +// EndTS defines model for endTS. +type EndTS = string + +// Limit defines model for limit. +type Limit = float32 + +// LogRulesGroup defines model for logRulesGroup. +type LogRulesGroup = string + +// LogRulesNamespace defines model for logRulesNamespace. +type LogRulesNamespace = string + +// LogqlQuery defines model for logqlQuery. +type LogqlQuery = string + +// OptionalSeriesMatcher defines model for optionalSeriesMatcher. +type OptionalSeriesMatcher = []string + +// PromqlQuery defines model for promqlQuery. +type PromqlQuery = string + +// QueryDedup defines model for queryDedup. +type QueryDedup = bool + +// QueryPartialResponse defines model for queryPartialResponse. +type QueryPartialResponse = bool + +// QueryTimeout defines model for queryTimeout. +type QueryTimeout = string + +// SeriesMatcher defines model for seriesMatcher. +type SeriesMatcher = []string + +// StartTS defines model for startTS. +type StartTS = string + +// Tenant defines model for tenant. +type Tenant = string + // GetLogLabelValuesParams defines parameters for GetLogLabelValues. type GetLogLabelValuesParams struct { // Start Start timestamp - Start *externalRef1.StartTS `form:"start,omitempty" json:"start,omitempty"` + Start *StartTS `form:"start,omitempty" json:"start,omitempty"` // End End timestamp - End *externalRef1.EndTS `form:"end,omitempty" json:"end,omitempty"` + End *EndTS `form:"end,omitempty" json:"end,omitempty"` } // GetLogLabelsParams defines parameters for GetLogLabels. type GetLogLabelsParams struct { // Start Start timestamp - Start *externalRef1.StartTS `form:"start,omitempty" json:"start,omitempty"` + Start *StartTS `form:"start,omitempty" json:"start,omitempty"` // End End timestamp - End *externalRef1.EndTS `form:"end,omitempty" json:"end,omitempty"` + End *EndTS `form:"end,omitempty" json:"end,omitempty"` } // GetLogInstantQueryParams defines parameters for GetLogInstantQuery. type GetLogInstantQueryParams struct { // Query LogQL query to fetch result for logs - Query *externalRef1.LogqlQuery `form:"query,omitempty" json:"query,omitempty"` + Query *LogqlQuery `form:"query,omitempty" json:"query,omitempty"` // Limit Max number of entries - Limit *externalRef1.Limit `form:"limit,omitempty" json:"limit,omitempty"` + Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Time Evaluation timestamp Time *string `form:"time,omitempty" json:"time,omitempty"` @@ -57,16 +576,16 @@ type GetLogInstantQueryParams struct { // GetLogRangeQueryParams defines parameters for GetLogRangeQuery. type GetLogRangeQueryParams struct { // Query LogQL query to fetch result for logs - Query *externalRef1.LogqlQuery `form:"query,omitempty" json:"query,omitempty"` + Query *LogqlQuery `form:"query,omitempty" json:"query,omitempty"` // Start Start timestamp - Start *externalRef1.StartTS `form:"start,omitempty" json:"start,omitempty"` + Start *StartTS `form:"start,omitempty" json:"start,omitempty"` // End End timestamp - End *externalRef1.EndTS `form:"end,omitempty" json:"end,omitempty"` + End *EndTS `form:"end,omitempty" json:"end,omitempty"` // Limit Max number of entries - Limit *externalRef1.Limit `form:"limit,omitempty" json:"limit,omitempty"` + Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Step Query resolution step width Step *string `form:"step,omitempty" json:"step,omitempty"` @@ -81,13 +600,13 @@ type GetLogRangeQueryParams struct { // GetLogSeriesParams defines parameters for GetLogSeries. type GetLogSeriesParams struct { // Match Repeated series selector argument - Match externalRef1.SeriesMatcher `form:"match[]" json:"match[]"` + Match SeriesMatcher `form:"match[]" json:"match[]"` // Start Start timestamp - Start *externalRef1.StartTS `form:"start,omitempty" json:"start,omitempty"` + Start *StartTS `form:"start,omitempty" json:"start,omitempty"` // End End timestamp - End *externalRef1.EndTS `form:"end,omitempty" json:"end,omitempty"` + End *EndTS `form:"end,omitempty" json:"end,omitempty"` } // PostLogSeriesFormdataBody defines parameters for PostLogSeries. @@ -100,64 +619,97 @@ type PostLogSeriesFormdataBody struct { // PostLogSeriesParams defines parameters for PostLogSeries. type PostLogSeriesParams struct { // Match Repeated series selector argument - Match externalRef1.SeriesMatcher `form:"match[]" json:"match[]"` + Match SeriesMatcher `form:"match[]" json:"match[]"` // Start Start timestamp - Start *externalRef1.StartTS `form:"start,omitempty" json:"start,omitempty"` + Start *StartTS `form:"start,omitempty" json:"start,omitempty"` // End End timestamp - End *externalRef1.EndTS `form:"end,omitempty" json:"end,omitempty"` + End *EndTS `form:"end,omitempty" json:"end,omitempty"` } // GetLogsParams defines parameters for GetLogs. type GetLogsParams struct { // Start Start timestamp - Start *externalRef1.StartTS `form:"start,omitempty" json:"start,omitempty"` + Start *StartTS `form:"start,omitempty" json:"start,omitempty"` // Query LogQL query to fetch result for logs - Query *externalRef1.LogqlQuery `form:"query,omitempty" json:"query,omitempty"` + Query *LogqlQuery `form:"query,omitempty" json:"query,omitempty"` // Delay delay retrieving logs Delay *int `form:"delay,omitempty" json:"delay,omitempty"` } +// GetAlertsParams defines parameters for GetAlerts. +type GetAlertsParams struct { + // Active Include active alerts in results. If false, excludes active alerts and returns only suppressed (silenced or inhibited) alerts. + Active *bool `form:"active,omitempty" json:"active,omitempty"` + + // Silenced Include silenced alerts in results. If false, excludes silenced alerts. Note that true (default) shows both silenced and non-silenced alerts. + Silenced *bool `form:"silenced,omitempty" json:"silenced,omitempty"` + + // Inhibited Include inhibited alerts in results. If false, excludes inhibited alerts. Note that true (default) shows both inhibited and non-inhibited alerts. + Inhibited *bool `form:"inhibited,omitempty" json:"inhibited,omitempty"` + + // Unprocessed Include unprocessed alerts in results. If false, excludes unprocessed alerts. Note that true (default) shows both processed and unprocessed alerts. + Unprocessed *bool `form:"unprocessed,omitempty" json:"unprocessed,omitempty"` + + // Receiver A regex matching receivers to filter alerts by + Receiver *string `form:"receiver,omitempty" json:"receiver,omitempty"` + + // Filter A matcher expression to filter alerts. For example `alertname="MyAlert"`. It can be repeated to apply multiple matchers. + Filter *[]string `form:"filter,omitempty" json:"filter,omitempty"` +} + +// GetSilencesParams defines parameters for GetSilences. +type GetSilencesParams struct { + // Filter A matcher expression to filter silences. For example `alertname="MyAlert"`. It can be repeated to apply multiple matchers. + Filter *[]string `form:"filter,omitempty" json:"filter,omitempty"` +} + +// PostSilenceParams defines parameters for PostSilence. +type PostSilenceParams struct { + // Filter A matcher expression to filter silences. For example `alertname="MyAlert"`. It can be repeated to apply multiple matchers. + Filter *[]string `form:"filter,omitempty" json:"filter,omitempty"` +} + // GetLabelValuesParams defines parameters for GetLabelValues. type GetLabelValuesParams struct { // Match Repeated series selector argument - Match *externalRef1.OptionalSeriesMatcher `form:"match[],omitempty" json:"match[],omitempty"` + Match *OptionalSeriesMatcher `form:"match[],omitempty" json:"match[],omitempty"` // Start Start timestamp - Start *externalRef1.StartTS `form:"start,omitempty" json:"start,omitempty"` + Start *StartTS `form:"start,omitempty" json:"start,omitempty"` // End End timestamp - End *externalRef1.EndTS `form:"end,omitempty" json:"end,omitempty"` + End *EndTS `form:"end,omitempty" json:"end,omitempty"` } // GetLabelsParams defines parameters for GetLabels. type GetLabelsParams struct { // Match Repeated series selector argument - Match *externalRef1.OptionalSeriesMatcher `form:"match[],omitempty" json:"match[],omitempty"` + Match *OptionalSeriesMatcher `form:"match[],omitempty" json:"match[],omitempty"` // Start Start timestamp - Start *externalRef1.StartTS `form:"start,omitempty" json:"start,omitempty"` + Start *StartTS `form:"start,omitempty" json:"start,omitempty"` // End End timestamp - End *externalRef1.EndTS `form:"end,omitempty" json:"end,omitempty"` + End *EndTS `form:"end,omitempty" json:"end,omitempty"` } // GetInstantQueryParams defines parameters for GetInstantQuery. type GetInstantQueryParams struct { // Query PromQL query to fetch result for metrics - Query *externalRef1.PromqlQuery `form:"query,omitempty" json:"query,omitempty"` + Query *PromqlQuery `form:"query,omitempty" json:"query,omitempty"` // Timeout Evaluation timeout - Timeout *externalRef1.QueryTimeout `form:"timeout,omitempty" json:"timeout,omitempty"` + Timeout *QueryTimeout `form:"timeout,omitempty" json:"timeout,omitempty"` // Dedup Query deduplication (Thanos) - Dedup *externalRef1.QueryDedup `form:"dedup,omitempty" json:"dedup,omitempty"` + Dedup *QueryDedup `form:"dedup,omitempty" json:"dedup,omitempty"` // PartialResponse Query partial response (Thanos) - PartialResponse *externalRef1.QueryPartialResponse `form:"partial_response,omitempty" json:"partial_response,omitempty"` + PartialResponse *QueryPartialResponse `form:"partial_response,omitempty" json:"partial_response,omitempty"` // Time Evaluation timestamp Time *string `form:"time,omitempty" json:"time,omitempty"` @@ -166,22 +718,22 @@ type GetInstantQueryParams struct { // GetRangeQueryParams defines parameters for GetRangeQuery. type GetRangeQueryParams struct { // Query PromQL query to fetch result for metrics - Query *externalRef1.PromqlQuery `form:"query,omitempty" json:"query,omitempty"` + Query *PromqlQuery `form:"query,omitempty" json:"query,omitempty"` // Start Start timestamp - Start *externalRef1.StartTS `form:"start,omitempty" json:"start,omitempty"` + Start *StartTS `form:"start,omitempty" json:"start,omitempty"` // End End timestamp - End *externalRef1.EndTS `form:"end,omitempty" json:"end,omitempty"` + End *EndTS `form:"end,omitempty" json:"end,omitempty"` // Timeout Evaluation timeout - Timeout *externalRef1.QueryTimeout `form:"timeout,omitempty" json:"timeout,omitempty"` + Timeout *QueryTimeout `form:"timeout,omitempty" json:"timeout,omitempty"` // Dedup Query deduplication (Thanos) - Dedup *externalRef1.QueryDedup `form:"dedup,omitempty" json:"dedup,omitempty"` + Dedup *QueryDedup `form:"dedup,omitempty" json:"dedup,omitempty"` // PartialResponse Query partial response (Thanos) - PartialResponse *externalRef1.QueryPartialResponse `form:"partial_response,omitempty" json:"partial_response,omitempty"` + PartialResponse *QueryPartialResponse `form:"partial_response,omitempty" json:"partial_response,omitempty"` // Step Query resolution step width Step *string `form:"step,omitempty" json:"step,omitempty"` @@ -199,172 +751,678 @@ type GetRulesParams struct { // GetSeriesParams defines parameters for GetSeries. type GetSeriesParams struct { // Match Repeated series selector argument - Match externalRef1.SeriesMatcher `form:"match[]" json:"match[]"` + Match SeriesMatcher `form:"match[]" json:"match[]"` // Start Start timestamp - Start *externalRef1.StartTS `form:"start,omitempty" json:"start,omitempty"` + Start *StartTS `form:"start,omitempty" json:"start,omitempty"` // End End timestamp - End *externalRef1.EndTS `form:"end,omitempty" json:"end,omitempty"` + End *EndTS `form:"end,omitempty" json:"end,omitempty"` } // PostlogEntriesJSONRequestBody defines body for PostlogEntries for application/json ContentType. -type PostlogEntriesJSONRequestBody = externalRef0.PushLogs +type PostlogEntriesJSONRequestBody = PushLogs // PostLogSeriesFormdataRequestBody defines body for PostLogSeries for application/x-www-form-urlencoded ContentType. type PostLogSeriesFormdataRequestBody PostLogSeriesFormdataBody -// RequestEditorFn is the function signature for the RequestEditor callback function -type RequestEditorFn func(ctx context.Context, req *http.Request) error +// PostSilenceJSONRequestBody defines body for PostSilence for application/json ContentType. +type PostSilenceJSONRequestBody = PostableSilence -// Doer performs HTTP requests. -// -// The standard http.Client implements this interface. -type HttpRequestDoer interface { - Do(req *http.Request) (*http.Response, error) +// AsRangeVectors returns the union data inside the LogInstantQueryResponse_Result_Item as a RangeVectors +func (t LogInstantQueryResponse_Result_Item) AsRangeVectors() (RangeVectors, error) { + var body RangeVectors + err := json.Unmarshal(t.union, &body) + return body, err } -// Client which conforms to the OpenAPI3 specification for this service. -type Client struct { - // The endpoint of the server conforming to this interface, with scheme, - // https://api.deepmap.com for example. This can contain a path relative - // to the server, such as https://api.deepmap.com/dev-test, and all the - // paths in the swagger spec will be appended to the server. - Server string +// FromRangeVectors overwrites any union data inside the LogInstantQueryResponse_Result_Item as the provided RangeVectors +func (t *LogInstantQueryResponse_Result_Item) FromRangeVectors(v RangeVectors) error { + b, err := json.Marshal(v) + t.union = b + return err +} - // Doer for performing requests, typically a *http.Client with any - // customized settings, such as certificate chains. - Client HttpRequestDoer +// MergeRangeVectors performs a merge with any union data inside the LogInstantQueryResponse_Result_Item, using the provided RangeVectors +func (t *LogInstantQueryResponse_Result_Item) MergeRangeVectors(v RangeVectors) error { + b, err := json.Marshal(v) + if err != nil { + return err + } - // A list of callbacks for modifying requests which are generated before sending over - // the network. - RequestEditors []RequestEditorFn + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err } -// ClientOption allows setting custom parameters during construction -type ClientOption func(*Client) error +// AsInstantVectors returns the union data inside the LogInstantQueryResponse_Result_Item as a InstantVectors +func (t LogInstantQueryResponse_Result_Item) AsInstantVectors() (InstantVectors, error) { + var body InstantVectors + err := json.Unmarshal(t.union, &body) + return body, err +} -// Creates a new Client, with reasonable defaults -func NewClient(server string, opts ...ClientOption) (*Client, error) { - // create a client with sane default values - client := Client{ - Server: server, - } - // mutate client and add all optional params - for _, o := range opts { - if err := o(&client); err != nil { - return nil, err - } - } - // ensure the server URL always has a trailing slash - if !strings.HasSuffix(client.Server, "/") { - client.Server += "/" - } - // create httpClient, if not already present - if client.Client == nil { - client.Client = &http.Client{} - } - return &client, nil +// FromInstantVectors overwrites any union data inside the LogInstantQueryResponse_Result_Item as the provided InstantVectors +func (t *LogInstantQueryResponse_Result_Item) FromInstantVectors(v InstantVectors) error { + b, err := json.Marshal(v) + t.union = b + return err } -// WithHTTPClient allows overriding the default Doer, which is -// automatically created using http.Client. This is useful for tests. -func WithHTTPClient(doer HttpRequestDoer) ClientOption { - return func(c *Client) error { - c.Client = doer - return nil +// MergeInstantVectors performs a merge with any union data inside the LogInstantQueryResponse_Result_Item, using the provided InstantVectors +func (t *LogInstantQueryResponse_Result_Item) MergeInstantVectors(v InstantVectors) error { + b, err := json.Marshal(v) + if err != nil { + return err } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err } -// WithRequestEditorFn allows setting up a callback function, which will be -// called right before sending the request. This can be used to mutate the request. -func WithRequestEditorFn(fn RequestEditorFn) ClientOption { - return func(c *Client) error { - c.RequestEditors = append(c.RequestEditors, fn) - return nil - } +// AsScalarOrString returns the union data inside the LogInstantQueryResponse_Result_Item as a ScalarOrString +func (t LogInstantQueryResponse_Result_Item) AsScalarOrString() (ScalarOrString, error) { + var body ScalarOrString + err := json.Unmarshal(t.union, &body) + return body, err } -// The interface specification for the client above. -type ClientInterface interface { - // GetLogLabelValues request - GetLogLabelValues(ctx context.Context, tenant externalRef1.Tenant, name string, params *GetLogLabelValuesParams, reqEditors ...RequestEditorFn) (*http.Response, error) +// FromScalarOrString overwrites any union data inside the LogInstantQueryResponse_Result_Item as the provided ScalarOrString +func (t *LogInstantQueryResponse_Result_Item) FromScalarOrString(v ScalarOrString) error { + b, err := json.Marshal(v) + t.union = b + return err +} - // GetLogLabels request - GetLogLabels(ctx context.Context, tenant externalRef1.Tenant, params *GetLogLabelsParams, reqEditors ...RequestEditorFn) (*http.Response, error) +// MergeScalarOrString performs a merge with any union data inside the LogInstantQueryResponse_Result_Item, using the provided ScalarOrString +func (t *LogInstantQueryResponse_Result_Item) MergeScalarOrString(v ScalarOrString) error { + b, err := json.Marshal(v) + if err != nil { + return err + } - // PostlogEntriesWithBody request with any body - PostlogEntriesWithBody(ctx context.Context, tenant externalRef1.Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} - PostlogEntries(ctx context.Context, tenant externalRef1.Tenant, body PostlogEntriesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) +// AsStreamValues returns the union data inside the LogInstantQueryResponse_Result_Item as a StreamValues +func (t LogInstantQueryResponse_Result_Item) AsStreamValues() (StreamValues, error) { + var body StreamValues + err := json.Unmarshal(t.union, &body) + return body, err +} - // GetLogInstantQuery request - GetLogInstantQuery(ctx context.Context, tenant externalRef1.Tenant, params *GetLogInstantQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) +// FromStreamValues overwrites any union data inside the LogInstantQueryResponse_Result_Item as the provided StreamValues +func (t *LogInstantQueryResponse_Result_Item) FromStreamValues(v StreamValues) error { + b, err := json.Marshal(v) + t.union = b + return err +} - // GetLogRangeQuery request - GetLogRangeQuery(ctx context.Context, tenant externalRef1.Tenant, params *GetLogRangeQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) +// MergeStreamValues performs a merge with any union data inside the LogInstantQueryResponse_Result_Item, using the provided StreamValues +func (t *LogInstantQueryResponse_Result_Item) MergeStreamValues(v StreamValues) error { + b, err := json.Marshal(v) + if err != nil { + return err + } - // GetAllLogsRules request - GetAllLogsRules(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} - // DeleteLogsRules request - DeleteLogsRules(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, reqEditors ...RequestEditorFn) (*http.Response, error) +func (t LogInstantQueryResponse_Result_Item) MarshalJSON() ([]byte, error) { + b, err := t.union.MarshalJSON() + return b, err +} - // GetLogsRules request - GetLogsRules(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, reqEditors ...RequestEditorFn) (*http.Response, error) +func (t *LogInstantQueryResponse_Result_Item) UnmarshalJSON(b []byte) error { + err := t.union.UnmarshalJSON(b) + return err +} - // SetLogsRulesWithBody request with any body - SetLogsRulesWithBody(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) +// AsRangeVectors returns the union data inside the LogRangeQueryResponse_Result_Item as a RangeVectors +func (t LogRangeQueryResponse_Result_Item) AsRangeVectors() (RangeVectors, error) { + var body RangeVectors + err := json.Unmarshal(t.union, &body) + return body, err +} - // DeleteLogsRulesGroup request - DeleteLogsRulesGroup(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, group externalRef1.LogRulesGroup, reqEditors ...RequestEditorFn) (*http.Response, error) +// FromRangeVectors overwrites any union data inside the LogRangeQueryResponse_Result_Item as the provided RangeVectors +func (t *LogRangeQueryResponse_Result_Item) FromRangeVectors(v RangeVectors) error { + b, err := json.Marshal(v) + t.union = b + return err +} - // GetLogsRulesGroup request - GetLogsRulesGroup(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, group externalRef1.LogRulesGroup, reqEditors ...RequestEditorFn) (*http.Response, error) +// MergeRangeVectors performs a merge with any union data inside the LogRangeQueryResponse_Result_Item, using the provided RangeVectors +func (t *LogRangeQueryResponse_Result_Item) MergeRangeVectors(v RangeVectors) error { + b, err := json.Marshal(v) + if err != nil { + return err + } - // GetLogSeries request - GetLogSeries(ctx context.Context, tenant externalRef1.Tenant, params *GetLogSeriesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} - // PostLogSeriesWithBody request with any body - PostLogSeriesWithBody(ctx context.Context, tenant externalRef1.Tenant, params *PostLogSeriesParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) +func (t LogRangeQueryResponse_Result_Item) MarshalJSON() ([]byte, error) { + b, err := t.union.MarshalJSON() + return b, err +} - PostLogSeriesWithFormdataBody(ctx context.Context, tenant externalRef1.Tenant, params *PostLogSeriesParams, body PostLogSeriesFormdataRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) +func (t *LogRangeQueryResponse_Result_Item) UnmarshalJSON(b []byte) error { + err := t.union.UnmarshalJSON(b) + return err +} - // GetLogs request - GetLogs(ctx context.Context, tenant externalRef1.Tenant, params *GetLogsParams, reqEditors ...RequestEditorFn) (*http.Response, error) +// AsRangeVectors returns the union data inside the MetricInstantQueryResponse_Result_Item as a RangeVectors +func (t MetricInstantQueryResponse_Result_Item) AsRangeVectors() (RangeVectors, error) { + var body RangeVectors + err := json.Unmarshal(t.union, &body) + return body, err +} - // GetLogsPromAlerts request - GetLogsPromAlerts(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) +// FromRangeVectors overwrites any union data inside the MetricInstantQueryResponse_Result_Item as the provided RangeVectors +func (t *MetricInstantQueryResponse_Result_Item) FromRangeVectors(v RangeVectors) error { + b, err := json.Marshal(v) + t.union = b + return err +} - // GetLogsPromRules request - GetLogsPromRules(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) +// MergeRangeVectors performs a merge with any union data inside the MetricInstantQueryResponse_Result_Item, using the provided RangeVectors +func (t *MetricInstantQueryResponse_Result_Item) MergeRangeVectors(v RangeVectors) error { + b, err := json.Marshal(v) + if err != nil { + return err + } - // GetLabelValues request - GetLabelValues(ctx context.Context, tenant externalRef1.Tenant, labelName string, params *GetLabelValuesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} - // GetLabels request - GetLabels(ctx context.Context, tenant externalRef1.Tenant, params *GetLabelsParams, reqEditors ...RequestEditorFn) (*http.Response, error) +// AsInstantVectors returns the union data inside the MetricInstantQueryResponse_Result_Item as a InstantVectors +func (t MetricInstantQueryResponse_Result_Item) AsInstantVectors() (InstantVectors, error) { + var body InstantVectors + err := json.Unmarshal(t.union, &body) + return body, err +} - // GetInstantQuery request - GetInstantQuery(ctx context.Context, tenant externalRef1.Tenant, params *GetInstantQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) +// FromInstantVectors overwrites any union data inside the MetricInstantQueryResponse_Result_Item as the provided InstantVectors +func (t *MetricInstantQueryResponse_Result_Item) FromInstantVectors(v InstantVectors) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeInstantVectors performs a merge with any union data inside the MetricInstantQueryResponse_Result_Item, using the provided InstantVectors +func (t *MetricInstantQueryResponse_Result_Item) MergeInstantVectors(v InstantVectors) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +// AsScalarOrString returns the union data inside the MetricInstantQueryResponse_Result_Item as a ScalarOrString +func (t MetricInstantQueryResponse_Result_Item) AsScalarOrString() (ScalarOrString, error) { + var body ScalarOrString + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromScalarOrString overwrites any union data inside the MetricInstantQueryResponse_Result_Item as the provided ScalarOrString +func (t *MetricInstantQueryResponse_Result_Item) FromScalarOrString(v ScalarOrString) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeScalarOrString performs a merge with any union data inside the MetricInstantQueryResponse_Result_Item, using the provided ScalarOrString +func (t *MetricInstantQueryResponse_Result_Item) MergeScalarOrString(v ScalarOrString) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +// AsStreamValues returns the union data inside the MetricInstantQueryResponse_Result_Item as a StreamValues +func (t MetricInstantQueryResponse_Result_Item) AsStreamValues() (StreamValues, error) { + var body StreamValues + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromStreamValues overwrites any union data inside the MetricInstantQueryResponse_Result_Item as the provided StreamValues +func (t *MetricInstantQueryResponse_Result_Item) FromStreamValues(v StreamValues) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeStreamValues performs a merge with any union data inside the MetricInstantQueryResponse_Result_Item, using the provided StreamValues +func (t *MetricInstantQueryResponse_Result_Item) MergeStreamValues(v StreamValues) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +func (t MetricInstantQueryResponse_Result_Item) MarshalJSON() ([]byte, error) { + b, err := t.union.MarshalJSON() + return b, err +} + +func (t *MetricInstantQueryResponse_Result_Item) UnmarshalJSON(b []byte) error { + err := t.union.UnmarshalJSON(b) + return err +} + +// AsRangeVectors returns the union data inside the MetricRangeQueryResponse_Result_Item as a RangeVectors +func (t MetricRangeQueryResponse_Result_Item) AsRangeVectors() (RangeVectors, error) { + var body RangeVectors + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromRangeVectors overwrites any union data inside the MetricRangeQueryResponse_Result_Item as the provided RangeVectors +func (t *MetricRangeQueryResponse_Result_Item) FromRangeVectors(v RangeVectors) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeRangeVectors performs a merge with any union data inside the MetricRangeQueryResponse_Result_Item, using the provided RangeVectors +func (t *MetricRangeQueryResponse_Result_Item) MergeRangeVectors(v RangeVectors) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +func (t MetricRangeQueryResponse_Result_Item) MarshalJSON() ([]byte, error) { + b, err := t.union.MarshalJSON() + return b, err +} + +func (t *MetricRangeQueryResponse_Result_Item) UnmarshalJSON(b []byte) error { + err := t.union.UnmarshalJSON(b) + return err +} + +// AsRecordingRule returns the union data inside the RuleGroup_Rules_Item as a RecordingRule +func (t RuleGroup_Rules_Item) AsRecordingRule() (RecordingRule, error) { + var body RecordingRule + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromRecordingRule overwrites any union data inside the RuleGroup_Rules_Item as the provided RecordingRule +func (t *RuleGroup_Rules_Item) FromRecordingRule(v RecordingRule) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeRecordingRule performs a merge with any union data inside the RuleGroup_Rules_Item, using the provided RecordingRule +func (t *RuleGroup_Rules_Item) MergeRecordingRule(v RecordingRule) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +// AsAlertingRule returns the union data inside the RuleGroup_Rules_Item as a AlertingRule +func (t RuleGroup_Rules_Item) AsAlertingRule() (AlertingRule, error) { + var body AlertingRule + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromAlertingRule overwrites any union data inside the RuleGroup_Rules_Item as the provided AlertingRule +func (t *RuleGroup_Rules_Item) FromAlertingRule(v AlertingRule) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeAlertingRule performs a merge with any union data inside the RuleGroup_Rules_Item, using the provided AlertingRule +func (t *RuleGroup_Rules_Item) MergeAlertingRule(v AlertingRule) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +func (t RuleGroup_Rules_Item) MarshalJSON() ([]byte, error) { + b, err := t.union.MarshalJSON() + return b, err +} + +func (t *RuleGroup_Rules_Item) UnmarshalJSON(b []byte) error { + err := t.union.UnmarshalJSON(b) + return err +} + +// AsRecordingRuleEvaluated returns the union data inside the RuleGroupEvaluated_Rules_Item as a RecordingRuleEvaluated +func (t RuleGroupEvaluated_Rules_Item) AsRecordingRuleEvaluated() (RecordingRuleEvaluated, error) { + var body RecordingRuleEvaluated + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromRecordingRuleEvaluated overwrites any union data inside the RuleGroupEvaluated_Rules_Item as the provided RecordingRuleEvaluated +func (t *RuleGroupEvaluated_Rules_Item) FromRecordingRuleEvaluated(v RecordingRuleEvaluated) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeRecordingRuleEvaluated performs a merge with any union data inside the RuleGroupEvaluated_Rules_Item, using the provided RecordingRuleEvaluated +func (t *RuleGroupEvaluated_Rules_Item) MergeRecordingRuleEvaluated(v RecordingRuleEvaluated) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +// AsAlertingRuleEvaluated returns the union data inside the RuleGroupEvaluated_Rules_Item as a AlertingRuleEvaluated +func (t RuleGroupEvaluated_Rules_Item) AsAlertingRuleEvaluated() (AlertingRuleEvaluated, error) { + var body AlertingRuleEvaluated + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromAlertingRuleEvaluated overwrites any union data inside the RuleGroupEvaluated_Rules_Item as the provided AlertingRuleEvaluated +func (t *RuleGroupEvaluated_Rules_Item) FromAlertingRuleEvaluated(v AlertingRuleEvaluated) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeAlertingRuleEvaluated performs a merge with any union data inside the RuleGroupEvaluated_Rules_Item, using the provided AlertingRuleEvaluated +func (t *RuleGroupEvaluated_Rules_Item) MergeAlertingRuleEvaluated(v AlertingRuleEvaluated) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +func (t RuleGroupEvaluated_Rules_Item) MarshalJSON() ([]byte, error) { + b, err := t.union.MarshalJSON() + return b, err +} + +func (t *RuleGroupEvaluated_Rules_Item) UnmarshalJSON(b []byte) error { + err := t.union.UnmarshalJSON(b) + return err +} + +// AsScalarOrString0 returns the union data inside the ScalarOrString_Item as a ScalarOrString0 +func (t ScalarOrString_Item) AsScalarOrString0() (ScalarOrString0, error) { + var body ScalarOrString0 + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromScalarOrString0 overwrites any union data inside the ScalarOrString_Item as the provided ScalarOrString0 +func (t *ScalarOrString_Item) FromScalarOrString0(v ScalarOrString0) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeScalarOrString0 performs a merge with any union data inside the ScalarOrString_Item, using the provided ScalarOrString0 +func (t *ScalarOrString_Item) MergeScalarOrString0(v ScalarOrString0) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +// AsScalarOrString1 returns the union data inside the ScalarOrString_Item as a ScalarOrString1 +func (t ScalarOrString_Item) AsScalarOrString1() (ScalarOrString1, error) { + var body ScalarOrString1 + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromScalarOrString1 overwrites any union data inside the ScalarOrString_Item as the provided ScalarOrString1 +func (t *ScalarOrString_Item) FromScalarOrString1(v ScalarOrString1) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeScalarOrString1 performs a merge with any union data inside the ScalarOrString_Item, using the provided ScalarOrString1 +func (t *ScalarOrString_Item) MergeScalarOrString1(v ScalarOrString1) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +func (t ScalarOrString_Item) MarshalJSON() ([]byte, error) { + b, err := t.union.MarshalJSON() + return b, err +} + +func (t *ScalarOrString_Item) UnmarshalJSON(b []byte) error { + err := t.union.UnmarshalJSON(b) + return err +} + +// RequestEditorFn is the function signature for the RequestEditor callback function +type RequestEditorFn func(ctx context.Context, req *http.Request) error + +// Doer performs HTTP requests. +// +// The standard http.Client implements this interface. +type HttpRequestDoer interface { + Do(req *http.Request) (*http.Response, error) +} + +// Client which conforms to the OpenAPI3 specification for this service. +type Client struct { + // The endpoint of the server conforming to this interface, with scheme, + // https://api.deepmap.com for example. This can contain a path relative + // to the server, such as https://api.deepmap.com/dev-test, and all the + // paths in the swagger spec will be appended to the server. + Server string + + // Doer for performing requests, typically a *http.Client with any + // customized settings, such as certificate chains. + Client HttpRequestDoer + + // A list of callbacks for modifying requests which are generated before sending over + // the network. + RequestEditors []RequestEditorFn +} + +// ClientOption allows setting custom parameters during construction +type ClientOption func(*Client) error + +// Creates a new Client, with reasonable defaults +func NewClient(server string, opts ...ClientOption) (*Client, error) { + // create a client with sane default values + client := Client{ + Server: server, + } + // mutate client and add all optional params + for _, o := range opts { + if err := o(&client); err != nil { + return nil, err + } + } + // ensure the server URL always has a trailing slash + if !strings.HasSuffix(client.Server, "/") { + client.Server += "/" + } + // create httpClient, if not already present + if client.Client == nil { + client.Client = &http.Client{} + } + return &client, nil +} + +// WithHTTPClient allows overriding the default Doer, which is +// automatically created using http.Client. This is useful for tests. +func WithHTTPClient(doer HttpRequestDoer) ClientOption { + return func(c *Client) error { + c.Client = doer + return nil + } +} + +// WithRequestEditorFn allows setting up a callback function, which will be +// called right before sending the request. This can be used to mutate the request. +func WithRequestEditorFn(fn RequestEditorFn) ClientOption { + return func(c *Client) error { + c.RequestEditors = append(c.RequestEditors, fn) + return nil + } +} + +// The interface specification for the client above. +type ClientInterface interface { + // GetLogLabelValues request + GetLogLabelValues(ctx context.Context, tenant Tenant, name string, params *GetLogLabelValuesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetLogLabels request + GetLogLabels(ctx context.Context, tenant Tenant, params *GetLogLabelsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostlogEntriesWithBody request with any body + PostlogEntriesWithBody(ctx context.Context, tenant Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PostlogEntries(ctx context.Context, tenant Tenant, body PostlogEntriesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetLogInstantQuery request + GetLogInstantQuery(ctx context.Context, tenant Tenant, params *GetLogInstantQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetLogRangeQuery request + GetLogRangeQuery(ctx context.Context, tenant Tenant, params *GetLogRangeQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetAllLogsRules request + GetAllLogsRules(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteLogsRules request + DeleteLogsRules(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetLogsRules request + GetLogsRules(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, reqEditors ...RequestEditorFn) (*http.Response, error) + + // SetLogsRulesWithBody request with any body + SetLogsRulesWithBody(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteLogsRulesGroup request + DeleteLogsRulesGroup(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, group LogRulesGroup, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetLogsRulesGroup request + GetLogsRulesGroup(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, group LogRulesGroup, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetLogSeries request + GetLogSeries(ctx context.Context, tenant Tenant, params *GetLogSeriesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostLogSeriesWithBody request with any body + PostLogSeriesWithBody(ctx context.Context, tenant Tenant, params *PostLogSeriesParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PostLogSeriesWithFormdataBody(ctx context.Context, tenant Tenant, params *PostLogSeriesParams, body PostLogSeriesFormdataRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetLogs request + GetLogs(ctx context.Context, tenant Tenant, params *GetLogsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetLogsPromAlerts request + GetLogsPromAlerts(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetLogsPromRules request + GetLogsPromRules(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetAlerts request + GetAlerts(ctx context.Context, tenant Tenant, params *GetAlertsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteSilence request + DeleteSilence(ctx context.Context, tenant Tenant, silenceID openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetSilence request + GetSilence(ctx context.Context, tenant Tenant, silenceID openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetSilences request + GetSilences(ctx context.Context, tenant Tenant, params *GetSilencesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostSilenceWithBody request with any body + PostSilenceWithBody(ctx context.Context, tenant Tenant, params *PostSilenceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PostSilence(ctx context.Context, tenant Tenant, params *PostSilenceParams, body PostSilenceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetLabelValues request + GetLabelValues(ctx context.Context, tenant Tenant, labelName string, params *GetLabelValuesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetLabels request + GetLabels(ctx context.Context, tenant Tenant, params *GetLabelsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetInstantQuery request + GetInstantQuery(ctx context.Context, tenant Tenant, params *GetInstantQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) // GetRangeQuery request - GetRangeQuery(ctx context.Context, tenant externalRef1.Tenant, params *GetRangeQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) + GetRangeQuery(ctx context.Context, tenant Tenant, params *GetRangeQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) // GetRules request - GetRules(ctx context.Context, tenant externalRef1.Tenant, params *GetRulesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + GetRules(ctx context.Context, tenant Tenant, params *GetRulesParams, reqEditors ...RequestEditorFn) (*http.Response, error) // GetRawRules request - GetRawRules(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) + GetRawRules(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) // SetRawRulesWithBody request with any body - SetRawRulesWithBody(ctx context.Context, tenant externalRef1.Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + SetRawRulesWithBody(ctx context.Context, tenant Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) // GetSeries request - GetSeries(ctx context.Context, tenant externalRef1.Tenant, params *GetSeriesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + GetSeries(ctx context.Context, tenant Tenant, params *GetSeriesParams, reqEditors ...RequestEditorFn) (*http.Response, error) } -func (c *Client) GetLogLabelValues(ctx context.Context, tenant externalRef1.Tenant, name string, params *GetLogLabelValuesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) GetLogLabelValues(ctx context.Context, tenant Tenant, name string, params *GetLogLabelValuesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetLogLabelValuesRequest(c.Server, tenant, name, params) if err != nil { return nil, err @@ -376,7 +1434,7 @@ func (c *Client) GetLogLabelValues(ctx context.Context, tenant externalRef1.Tena return c.Client.Do(req) } -func (c *Client) GetLogLabels(ctx context.Context, tenant externalRef1.Tenant, params *GetLogLabelsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) GetLogLabels(ctx context.Context, tenant Tenant, params *GetLogLabelsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetLogLabelsRequest(c.Server, tenant, params) if err != nil { return nil, err @@ -388,7 +1446,7 @@ func (c *Client) GetLogLabels(ctx context.Context, tenant externalRef1.Tenant, p return c.Client.Do(req) } -func (c *Client) PostlogEntriesWithBody(ctx context.Context, tenant externalRef1.Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) PostlogEntriesWithBody(ctx context.Context, tenant Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewPostlogEntriesRequestWithBody(c.Server, tenant, contentType, body) if err != nil { return nil, err @@ -400,7 +1458,7 @@ func (c *Client) PostlogEntriesWithBody(ctx context.Context, tenant externalRef1 return c.Client.Do(req) } -func (c *Client) PostlogEntries(ctx context.Context, tenant externalRef1.Tenant, body PostlogEntriesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) PostlogEntries(ctx context.Context, tenant Tenant, body PostlogEntriesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewPostlogEntriesRequest(c.Server, tenant, body) if err != nil { return nil, err @@ -412,7 +1470,7 @@ func (c *Client) PostlogEntries(ctx context.Context, tenant externalRef1.Tenant, return c.Client.Do(req) } -func (c *Client) GetLogInstantQuery(ctx context.Context, tenant externalRef1.Tenant, params *GetLogInstantQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) GetLogInstantQuery(ctx context.Context, tenant Tenant, params *GetLogInstantQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetLogInstantQueryRequest(c.Server, tenant, params) if err != nil { return nil, err @@ -424,7 +1482,7 @@ func (c *Client) GetLogInstantQuery(ctx context.Context, tenant externalRef1.Ten return c.Client.Do(req) } -func (c *Client) GetLogRangeQuery(ctx context.Context, tenant externalRef1.Tenant, params *GetLogRangeQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) GetLogRangeQuery(ctx context.Context, tenant Tenant, params *GetLogRangeQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetLogRangeQueryRequest(c.Server, tenant, params) if err != nil { return nil, err @@ -436,7 +1494,7 @@ func (c *Client) GetLogRangeQuery(ctx context.Context, tenant externalRef1.Tenan return c.Client.Do(req) } -func (c *Client) GetAllLogsRules(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) GetAllLogsRules(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetAllLogsRulesRequest(c.Server, tenant) if err != nil { return nil, err @@ -448,7 +1506,7 @@ func (c *Client) GetAllLogsRules(ctx context.Context, tenant externalRef1.Tenant return c.Client.Do(req) } -func (c *Client) DeleteLogsRules(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) DeleteLogsRules(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewDeleteLogsRulesRequest(c.Server, tenant, namespace) if err != nil { return nil, err @@ -460,7 +1518,7 @@ func (c *Client) DeleteLogsRules(ctx context.Context, tenant externalRef1.Tenant return c.Client.Do(req) } -func (c *Client) GetLogsRules(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) GetLogsRules(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetLogsRulesRequest(c.Server, tenant, namespace) if err != nil { return nil, err @@ -472,7 +1530,7 @@ func (c *Client) GetLogsRules(ctx context.Context, tenant externalRef1.Tenant, n return c.Client.Do(req) } -func (c *Client) SetLogsRulesWithBody(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) SetLogsRulesWithBody(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewSetLogsRulesRequestWithBody(c.Server, tenant, namespace, contentType, body) if err != nil { return nil, err @@ -484,7 +1542,7 @@ func (c *Client) SetLogsRulesWithBody(ctx context.Context, tenant externalRef1.T return c.Client.Do(req) } -func (c *Client) DeleteLogsRulesGroup(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, group externalRef1.LogRulesGroup, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) DeleteLogsRulesGroup(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, group LogRulesGroup, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewDeleteLogsRulesGroupRequest(c.Server, tenant, namespace, group) if err != nil { return nil, err @@ -496,7 +1554,7 @@ func (c *Client) DeleteLogsRulesGroup(ctx context.Context, tenant externalRef1.T return c.Client.Do(req) } -func (c *Client) GetLogsRulesGroup(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, group externalRef1.LogRulesGroup, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) GetLogsRulesGroup(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, group LogRulesGroup, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetLogsRulesGroupRequest(c.Server, tenant, namespace, group) if err != nil { return nil, err @@ -508,7 +1566,7 @@ func (c *Client) GetLogsRulesGroup(ctx context.Context, tenant externalRef1.Tena return c.Client.Do(req) } -func (c *Client) GetLogSeries(ctx context.Context, tenant externalRef1.Tenant, params *GetLogSeriesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) GetLogSeries(ctx context.Context, tenant Tenant, params *GetLogSeriesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetLogSeriesRequest(c.Server, tenant, params) if err != nil { return nil, err @@ -520,7 +1578,7 @@ func (c *Client) GetLogSeries(ctx context.Context, tenant externalRef1.Tenant, p return c.Client.Do(req) } -func (c *Client) PostLogSeriesWithBody(ctx context.Context, tenant externalRef1.Tenant, params *PostLogSeriesParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) PostLogSeriesWithBody(ctx context.Context, tenant Tenant, params *PostLogSeriesParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewPostLogSeriesRequestWithBody(c.Server, tenant, params, contentType, body) if err != nil { return nil, err @@ -532,7 +1590,7 @@ func (c *Client) PostLogSeriesWithBody(ctx context.Context, tenant externalRef1. return c.Client.Do(req) } -func (c *Client) PostLogSeriesWithFormdataBody(ctx context.Context, tenant externalRef1.Tenant, params *PostLogSeriesParams, body PostLogSeriesFormdataRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) PostLogSeriesWithFormdataBody(ctx context.Context, tenant Tenant, params *PostLogSeriesParams, body PostLogSeriesFormdataRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewPostLogSeriesRequestWithFormdataBody(c.Server, tenant, params, body) if err != nil { return nil, err @@ -544,7 +1602,7 @@ func (c *Client) PostLogSeriesWithFormdataBody(ctx context.Context, tenant exter return c.Client.Do(req) } -func (c *Client) GetLogs(ctx context.Context, tenant externalRef1.Tenant, params *GetLogsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) GetLogs(ctx context.Context, tenant Tenant, params *GetLogsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetLogsRequest(c.Server, tenant, params) if err != nil { return nil, err @@ -556,7 +1614,7 @@ func (c *Client) GetLogs(ctx context.Context, tenant externalRef1.Tenant, params return c.Client.Do(req) } -func (c *Client) GetLogsPromAlerts(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) GetLogsPromAlerts(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetLogsPromAlertsRequest(c.Server, tenant) if err != nil { return nil, err @@ -568,7 +1626,7 @@ func (c *Client) GetLogsPromAlerts(ctx context.Context, tenant externalRef1.Tena return c.Client.Do(req) } -func (c *Client) GetLogsPromRules(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) { +func (c *Client) GetLogsPromRules(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetLogsPromRulesRequest(c.Server, tenant) if err != nil { return nil, err @@ -580,8 +1638,8 @@ func (c *Client) GetLogsPromRules(ctx context.Context, tenant externalRef1.Tenan return c.Client.Do(req) } -func (c *Client) GetLabelValues(ctx context.Context, tenant externalRef1.Tenant, labelName string, params *GetLabelValuesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewGetLabelValuesRequest(c.Server, tenant, labelName, params) +func (c *Client) GetAlerts(ctx context.Context, tenant Tenant, params *GetAlertsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetAlertsRequest(c.Server, tenant, params) if err != nil { return nil, err } @@ -592,8 +1650,8 @@ func (c *Client) GetLabelValues(ctx context.Context, tenant externalRef1.Tenant, return c.Client.Do(req) } -func (c *Client) GetLabels(ctx context.Context, tenant externalRef1.Tenant, params *GetLabelsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewGetLabelsRequest(c.Server, tenant, params) +func (c *Client) DeleteSilence(ctx context.Context, tenant Tenant, silenceID openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteSilenceRequest(c.Server, tenant, silenceID) if err != nil { return nil, err } @@ -604,8 +1662,8 @@ func (c *Client) GetLabels(ctx context.Context, tenant externalRef1.Tenant, para return c.Client.Do(req) } -func (c *Client) GetInstantQuery(ctx context.Context, tenant externalRef1.Tenant, params *GetInstantQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewGetInstantQueryRequest(c.Server, tenant, params) +func (c *Client) GetSilence(ctx context.Context, tenant Tenant, silenceID openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetSilenceRequest(c.Server, tenant, silenceID) if err != nil { return nil, err } @@ -616,8 +1674,8 @@ func (c *Client) GetInstantQuery(ctx context.Context, tenant externalRef1.Tenant return c.Client.Do(req) } -func (c *Client) GetRangeQuery(ctx context.Context, tenant externalRef1.Tenant, params *GetRangeQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewGetRangeQueryRequest(c.Server, tenant, params) +func (c *Client) GetSilences(ctx context.Context, tenant Tenant, params *GetSilencesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetSilencesRequest(c.Server, tenant, params) if err != nil { return nil, err } @@ -628,8 +1686,8 @@ func (c *Client) GetRangeQuery(ctx context.Context, tenant externalRef1.Tenant, return c.Client.Do(req) } -func (c *Client) GetRules(ctx context.Context, tenant externalRef1.Tenant, params *GetRulesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewGetRulesRequest(c.Server, tenant, params) +func (c *Client) PostSilenceWithBody(ctx context.Context, tenant Tenant, params *PostSilenceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostSilenceRequestWithBody(c.Server, tenant, params, contentType, body) if err != nil { return nil, err } @@ -640,8 +1698,8 @@ func (c *Client) GetRules(ctx context.Context, tenant externalRef1.Tenant, param return c.Client.Do(req) } -func (c *Client) GetRawRules(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewGetRawRulesRequest(c.Server, tenant) +func (c *Client) PostSilence(ctx context.Context, tenant Tenant, params *PostSilenceParams, body PostSilenceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostSilenceRequest(c.Server, tenant, params, body) if err != nil { return nil, err } @@ -652,8 +1710,8 @@ func (c *Client) GetRawRules(ctx context.Context, tenant externalRef1.Tenant, re return c.Client.Do(req) } -func (c *Client) SetRawRulesWithBody(ctx context.Context, tenant externalRef1.Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewSetRawRulesRequestWithBody(c.Server, tenant, contentType, body) +func (c *Client) GetLabelValues(ctx context.Context, tenant Tenant, labelName string, params *GetLabelValuesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetLabelValuesRequest(c.Server, tenant, labelName, params) if err != nil { return nil, err } @@ -664,8 +1722,8 @@ func (c *Client) SetRawRulesWithBody(ctx context.Context, tenant externalRef1.Te return c.Client.Do(req) } -func (c *Client) GetSeries(ctx context.Context, tenant externalRef1.Tenant, params *GetSeriesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewGetSeriesRequest(c.Server, tenant, params) +func (c *Client) GetLabels(ctx context.Context, tenant Tenant, params *GetLabelsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetLabelsRequest(c.Server, tenant, params) if err != nil { return nil, err } @@ -676,31 +1734,103 @@ func (c *Client) GetSeries(ctx context.Context, tenant externalRef1.Tenant, para return c.Client.Do(req) } -// NewGetLogLabelValuesRequest generates requests for GetLogLabelValues -func NewGetLogLabelValuesRequest(server string, tenant externalRef1.Tenant, name string, params *GetLogLabelValuesParams) (*http.Request, error) { - var err error - - var pathParam0 string - - pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tenant", runtime.ParamLocationPath, tenant) +func (c *Client) GetInstantQuery(ctx context.Context, tenant Tenant, params *GetInstantQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetInstantQueryRequest(c.Server, tenant, params) if err != nil { return nil, err } - - var pathParam1 string - - pathParam1, err = runtime.StyleParamWithLocation("simple", false, "name", runtime.ParamLocationPath, name) - if err != nil { + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { return nil, err } + return c.Client.Do(req) +} - serverURL, err := url.Parse(server) +func (c *Client) GetRangeQuery(ctx context.Context, tenant Tenant, params *GetRangeQueryParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetRangeQueryRequest(c.Server, tenant, params) if err != nil { return nil, err } - - operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/label/%s/values", pathParam0, pathParam1) - if operationPath[0] == '/' { + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetRules(ctx context.Context, tenant Tenant, params *GetRulesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetRulesRequest(c.Server, tenant, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetRawRules(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetRawRulesRequest(c.Server, tenant) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SetRawRulesWithBody(ctx context.Context, tenant Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSetRawRulesRequestWithBody(c.Server, tenant, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetSeries(ctx context.Context, tenant Tenant, params *GetSeriesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetSeriesRequest(c.Server, tenant, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +// NewGetLogLabelValuesRequest generates requests for GetLogLabelValues +func NewGetLogLabelValuesRequest(server string, tenant Tenant, name string, params *GetLogLabelValuesParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tenant", runtime.ParamLocationPath, tenant) + if err != nil { + return nil, err + } + + var pathParam1 string + + pathParam1, err = runtime.StyleParamWithLocation("simple", false, "name", runtime.ParamLocationPath, name) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/label/%s/values", pathParam0, pathParam1) + if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -756,7 +1886,7 @@ func NewGetLogLabelValuesRequest(server string, tenant externalRef1.Tenant, name } // NewGetLogLabelsRequest generates requests for GetLogLabels -func NewGetLogLabelsRequest(server string, tenant externalRef1.Tenant, params *GetLogLabelsParams) (*http.Request, error) { +func NewGetLogLabelsRequest(server string, tenant Tenant, params *GetLogLabelsParams) (*http.Request, error) { var err error var pathParam0 string @@ -828,7 +1958,7 @@ func NewGetLogLabelsRequest(server string, tenant externalRef1.Tenant, params *G } // NewPostlogEntriesRequest calls the generic PostlogEntries builder with application/json body -func NewPostlogEntriesRequest(server string, tenant externalRef1.Tenant, body PostlogEntriesJSONRequestBody) (*http.Request, error) { +func NewPostlogEntriesRequest(server string, tenant Tenant, body PostlogEntriesJSONRequestBody) (*http.Request, error) { var bodyReader io.Reader buf, err := json.Marshal(body) if err != nil { @@ -839,7 +1969,7 @@ func NewPostlogEntriesRequest(server string, tenant externalRef1.Tenant, body Po } // NewPostlogEntriesRequestWithBody generates requests for PostlogEntries with any type of body -func NewPostlogEntriesRequestWithBody(server string, tenant externalRef1.Tenant, contentType string, body io.Reader) (*http.Request, error) { +func NewPostlogEntriesRequestWithBody(server string, tenant Tenant, contentType string, body io.Reader) (*http.Request, error) { var err error var pathParam0 string @@ -875,7 +2005,7 @@ func NewPostlogEntriesRequestWithBody(server string, tenant externalRef1.Tenant, } // NewGetLogInstantQueryRequest generates requests for GetLogInstantQuery -func NewGetLogInstantQueryRequest(server string, tenant externalRef1.Tenant, params *GetLogInstantQueryParams) (*http.Request, error) { +func NewGetLogInstantQueryRequest(server string, tenant Tenant, params *GetLogInstantQueryParams) (*http.Request, error) { var err error var pathParam0 string @@ -979,7 +2109,7 @@ func NewGetLogInstantQueryRequest(server string, tenant externalRef1.Tenant, par } // NewGetLogRangeQueryRequest generates requests for GetLogRangeQuery -func NewGetLogRangeQueryRequest(server string, tenant externalRef1.Tenant, params *GetLogRangeQueryParams) (*http.Request, error) { +func NewGetLogRangeQueryRequest(server string, tenant Tenant, params *GetLogRangeQueryParams) (*http.Request, error) { var err error var pathParam0 string @@ -1131,7 +2261,7 @@ func NewGetLogRangeQueryRequest(server string, tenant externalRef1.Tenant, param } // NewGetAllLogsRulesRequest generates requests for GetAllLogsRules -func NewGetAllLogsRulesRequest(server string, tenant externalRef1.Tenant) (*http.Request, error) { +func NewGetAllLogsRulesRequest(server string, tenant Tenant) (*http.Request, error) { var err error var pathParam0 string @@ -1165,7 +2295,7 @@ func NewGetAllLogsRulesRequest(server string, tenant externalRef1.Tenant) (*http } // NewDeleteLogsRulesRequest generates requests for DeleteLogsRules -func NewDeleteLogsRulesRequest(server string, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace) (*http.Request, error) { +func NewDeleteLogsRulesRequest(server string, tenant Tenant, namespace LogRulesNamespace) (*http.Request, error) { var err error var pathParam0 string @@ -1206,7 +2336,7 @@ func NewDeleteLogsRulesRequest(server string, tenant externalRef1.Tenant, namesp } // NewGetLogsRulesRequest generates requests for GetLogsRules -func NewGetLogsRulesRequest(server string, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace) (*http.Request, error) { +func NewGetLogsRulesRequest(server string, tenant Tenant, namespace LogRulesNamespace) (*http.Request, error) { var err error var pathParam0 string @@ -1247,7 +2377,7 @@ func NewGetLogsRulesRequest(server string, tenant externalRef1.Tenant, namespace } // NewSetLogsRulesRequestWithBody generates requests for SetLogsRules with any type of body -func NewSetLogsRulesRequestWithBody(server string, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, contentType string, body io.Reader) (*http.Request, error) { +func NewSetLogsRulesRequestWithBody(server string, tenant Tenant, namespace LogRulesNamespace, contentType string, body io.Reader) (*http.Request, error) { var err error var pathParam0 string @@ -1269,28 +2399,393 @@ func NewSetLogsRulesRequestWithBody(server string, tenant externalRef1.Tenant, n return nil, err } - operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/rules/%s", pathParam0, pathParam1) - if operationPath[0] == '/' { - operationPath = "." + operationPath - } + operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/rules/%s", pathParam0, pathParam1) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewDeleteLogsRulesGroupRequest generates requests for DeleteLogsRulesGroup +func NewDeleteLogsRulesGroupRequest(server string, tenant Tenant, namespace LogRulesNamespace, group LogRulesGroup) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tenant", runtime.ParamLocationPath, tenant) + if err != nil { + return nil, err + } + + var pathParam1 string + + pathParam1, err = runtime.StyleParamWithLocation("simple", false, "namespace", runtime.ParamLocationPath, namespace) + if err != nil { + return nil, err + } + + var pathParam2 string + + pathParam2, err = runtime.StyleParamWithLocation("simple", false, "group", runtime.ParamLocationPath, group) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/rules/%s/%s", pathParam0, pathParam1, pathParam2) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetLogsRulesGroupRequest generates requests for GetLogsRulesGroup +func NewGetLogsRulesGroupRequest(server string, tenant Tenant, namespace LogRulesNamespace, group LogRulesGroup) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tenant", runtime.ParamLocationPath, tenant) + if err != nil { + return nil, err + } + + var pathParam1 string + + pathParam1, err = runtime.StyleParamWithLocation("simple", false, "namespace", runtime.ParamLocationPath, namespace) + if err != nil { + return nil, err + } + + var pathParam2 string + + pathParam2, err = runtime.StyleParamWithLocation("simple", false, "group", runtime.ParamLocationPath, group) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/rules/%s/%s", pathParam0, pathParam1, pathParam2) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetLogSeriesRequest generates requests for GetLogSeries +func NewGetLogSeriesRequest(server string, tenant Tenant, params *GetLogSeriesParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tenant", runtime.ParamLocationPath, tenant) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/series", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + if params != nil { + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "match[]", runtime.ParamLocationQuery, params.Match); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if params.Start != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "start", runtime.ParamLocationQuery, *params.Start); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.End != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "end", runtime.ParamLocationQuery, *params.End); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostLogSeriesRequestWithFormdataBody calls the generic PostLogSeries builder with application/x-www-form-urlencoded body +func NewPostLogSeriesRequestWithFormdataBody(server string, tenant Tenant, params *PostLogSeriesParams, body PostLogSeriesFormdataRequestBody) (*http.Request, error) { + var bodyReader io.Reader + bodyStr, err := runtime.MarshalForm(body, nil) + if err != nil { + return nil, err + } + bodyReader = strings.NewReader(bodyStr.Encode()) + return NewPostLogSeriesRequestWithBody(server, tenant, params, "application/x-www-form-urlencoded", bodyReader) +} + +// NewPostLogSeriesRequestWithBody generates requests for PostLogSeries with any type of body +func NewPostLogSeriesRequestWithBody(server string, tenant Tenant, params *PostLogSeriesParams, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tenant", runtime.ParamLocationPath, tenant) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/series", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + if params != nil { + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "match[]", runtime.ParamLocationQuery, params.Match); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if params.Start != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "start", runtime.ParamLocationQuery, *params.Start); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.End != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "end", runtime.ParamLocationQuery, *params.End); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewGetLogsRequest generates requests for GetLogs +func NewGetLogsRequest(server string, tenant Tenant, params *GetLogsParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tenant", runtime.ParamLocationPath, tenant) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/tail", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + if params != nil { + queryValues := queryURL.Query() + + if params.Start != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "start", runtime.ParamLocationQuery, *params.Start); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Query != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "query", runtime.ParamLocationQuery, *params.Query); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Delay != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "delay", runtime.ParamLocationQuery, *params.Delay); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err + queryURL.RawQuery = queryValues.Encode() } - req, err := http.NewRequest("POST", queryURL.String(), body) + req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err } - req.Header.Add("Content-Type", contentType) - return req, nil } -// NewDeleteLogsRulesGroupRequest generates requests for DeleteLogsRulesGroup -func NewDeleteLogsRulesGroupRequest(server string, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, group externalRef1.LogRulesGroup) (*http.Request, error) { +// NewGetLogsPromAlertsRequest generates requests for GetLogsPromAlerts +func NewGetLogsPromAlertsRequest(server string, tenant Tenant) (*http.Request, error) { var err error var pathParam0 string @@ -1300,26 +2795,12 @@ func NewDeleteLogsRulesGroupRequest(server string, tenant externalRef1.Tenant, n return nil, err } - var pathParam1 string - - pathParam1, err = runtime.StyleParamWithLocation("simple", false, "namespace", runtime.ParamLocationPath, namespace) - if err != nil { - return nil, err - } - - var pathParam2 string - - pathParam2, err = runtime.StyleParamWithLocation("simple", false, "group", runtime.ParamLocationPath, group) - if err != nil { - return nil, err - } - serverURL, err := url.Parse(server) if err != nil { return nil, err } - operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/rules/%s/%s", pathParam0, pathParam1, pathParam2) + operationPath := fmt.Sprintf("/api/logs/v1/%s/prometheus/api/v1/alerts", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1329,7 +2810,7 @@ func NewDeleteLogsRulesGroupRequest(server string, tenant externalRef1.Tenant, n return nil, err } - req, err := http.NewRequest("DELETE", queryURL.String(), nil) + req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err } @@ -1337,8 +2818,8 @@ func NewDeleteLogsRulesGroupRequest(server string, tenant externalRef1.Tenant, n return req, nil } -// NewGetLogsRulesGroupRequest generates requests for GetLogsRulesGroup -func NewGetLogsRulesGroupRequest(server string, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, group externalRef1.LogRulesGroup) (*http.Request, error) { +// NewGetLogsPromRulesRequest generates requests for GetLogsPromRules +func NewGetLogsPromRulesRequest(server string, tenant Tenant) (*http.Request, error) { var err error var pathParam0 string @@ -1348,26 +2829,12 @@ func NewGetLogsRulesGroupRequest(server string, tenant externalRef1.Tenant, name return nil, err } - var pathParam1 string - - pathParam1, err = runtime.StyleParamWithLocation("simple", false, "namespace", runtime.ParamLocationPath, namespace) - if err != nil { - return nil, err - } - - var pathParam2 string - - pathParam2, err = runtime.StyleParamWithLocation("simple", false, "group", runtime.ParamLocationPath, group) - if err != nil { - return nil, err - } - serverURL, err := url.Parse(server) if err != nil { return nil, err } - operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/rules/%s/%s", pathParam0, pathParam1, pathParam2) + operationPath := fmt.Sprintf("/api/logs/v1/%s/prometheus/api/v1/rules", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1385,8 +2852,8 @@ func NewGetLogsRulesGroupRequest(server string, tenant externalRef1.Tenant, name return req, nil } -// NewGetLogSeriesRequest generates requests for GetLogSeries -func NewGetLogSeriesRequest(server string, tenant externalRef1.Tenant, params *GetLogSeriesParams) (*http.Request, error) { +// NewGetAlertsRequest generates requests for GetAlerts +func NewGetAlertsRequest(server string, tenant Tenant, params *GetAlertsParams) (*http.Request, error) { var err error var pathParam0 string @@ -1401,7 +2868,7 @@ func NewGetLogSeriesRequest(server string, tenant externalRef1.Tenant, params *G return nil, err } - operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/series", pathParam0) + operationPath := fmt.Sprintf("/api/metrics/v1/%s/am/api/v2/alerts", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1414,21 +2881,25 @@ func NewGetLogSeriesRequest(server string, tenant externalRef1.Tenant, params *G if params != nil { queryValues := queryURL.Query() - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "match[]", runtime.ParamLocationQuery, params.Match); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.Active != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "active", runtime.ParamLocationQuery, *params.Active); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } - if params.Start != nil { + if params.Silenced != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "start", runtime.ParamLocationQuery, *params.Start); err != nil { + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "silenced", runtime.ParamLocationQuery, *params.Silenced); err != nil { return nil, err } else if parsed, err := url.ParseQuery(queryFrag); err != nil { return nil, err @@ -1442,9 +2913,9 @@ func NewGetLogSeriesRequest(server string, tenant externalRef1.Tenant, params *G } - if params.End != nil { + if params.Inhibited != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "end", runtime.ParamLocationQuery, *params.End); err != nil { + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "inhibited", runtime.ParamLocationQuery, *params.Inhibited); err != nil { return nil, err } else if parsed, err := url.ParseQuery(queryFrag); err != nil { return nil, err @@ -1458,72 +2929,25 @@ func NewGetLogSeriesRequest(server string, tenant externalRef1.Tenant, params *G } - queryURL.RawQuery = queryValues.Encode() - } - - req, err := http.NewRequest("GET", queryURL.String(), nil) - if err != nil { - return nil, err - } - - return req, nil -} - -// NewPostLogSeriesRequestWithFormdataBody calls the generic PostLogSeries builder with application/x-www-form-urlencoded body -func NewPostLogSeriesRequestWithFormdataBody(server string, tenant externalRef1.Tenant, params *PostLogSeriesParams, body PostLogSeriesFormdataRequestBody) (*http.Request, error) { - var bodyReader io.Reader - bodyStr, err := runtime.MarshalForm(body, nil) - if err != nil { - return nil, err - } - bodyReader = strings.NewReader(bodyStr.Encode()) - return NewPostLogSeriesRequestWithBody(server, tenant, params, "application/x-www-form-urlencoded", bodyReader) -} - -// NewPostLogSeriesRequestWithBody generates requests for PostLogSeries with any type of body -func NewPostLogSeriesRequestWithBody(server string, tenant externalRef1.Tenant, params *PostLogSeriesParams, contentType string, body io.Reader) (*http.Request, error) { - var err error - - var pathParam0 string - - pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tenant", runtime.ParamLocationPath, tenant) - if err != nil { - return nil, err - } - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/series", pathParam0) - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } + if params.Unprocessed != nil { - if params != nil { - queryValues := queryURL.Query() - - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "match[]", runtime.ParamLocationQuery, params.Match); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "unprocessed", runtime.ParamLocationQuery, *params.Unprocessed); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } - if params.Start != nil { + if params.Receiver != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "start", runtime.ParamLocationQuery, *params.Start); err != nil { + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "receiver", runtime.ParamLocationQuery, *params.Receiver); err != nil { return nil, err } else if parsed, err := url.ParseQuery(queryFrag); err != nil { return nil, err @@ -1537,9 +2961,9 @@ func NewPostLogSeriesRequestWithBody(server string, tenant externalRef1.Tenant, } - if params.End != nil { + if params.Filter != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "end", runtime.ParamLocationQuery, *params.End); err != nil { + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "filter", runtime.ParamLocationQuery, *params.Filter); err != nil { return nil, err } else if parsed, err := url.ParseQuery(queryFrag); err != nil { return nil, err @@ -1556,18 +2980,16 @@ func NewPostLogSeriesRequestWithBody(server string, tenant externalRef1.Tenant, queryURL.RawQuery = queryValues.Encode() } - req, err := http.NewRequest("POST", queryURL.String(), body) + req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err } - req.Header.Add("Content-Type", contentType) - return req, nil } -// NewGetLogsRequest generates requests for GetLogs -func NewGetLogsRequest(server string, tenant externalRef1.Tenant, params *GetLogsParams) (*http.Request, error) { +// NewDeleteSilenceRequest generates requests for DeleteSilence +func NewDeleteSilenceRequest(server string, tenant Tenant, silenceID openapi_types.UUID) (*http.Request, error) { var err error var pathParam0 string @@ -1577,12 +2999,19 @@ func NewGetLogsRequest(server string, tenant externalRef1.Tenant, params *GetLog return nil, err } + var pathParam1 string + + pathParam1, err = runtime.StyleParamWithLocation("simple", false, "silenceID", runtime.ParamLocationPath, silenceID) + if err != nil { + return nil, err + } + serverURL, err := url.Parse(server) if err != nil { return nil, err } - operationPath := fmt.Sprintf("/api/logs/v1/%s/loki/api/v1/tail", pathParam0) + operationPath := fmt.Sprintf("/api/metrics/v1/%s/am/api/v2/silence/%s", pathParam0, pathParam1) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1592,58 +3021,45 @@ func NewGetLogsRequest(server string, tenant externalRef1.Tenant, params *GetLog return nil, err } - if params != nil { - queryValues := queryURL.Query() - - if params.Start != nil { + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "start", runtime.ParamLocationQuery, *params.Start); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) - } - } - } + return req, nil +} - } +// NewGetSilenceRequest generates requests for GetSilence +func NewGetSilenceRequest(server string, tenant Tenant, silenceID openapi_types.UUID) (*http.Request, error) { + var err error - if params.Query != nil { + var pathParam0 string - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "query", runtime.ParamLocationQuery, *params.Query); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) - } - } - } + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tenant", runtime.ParamLocationPath, tenant) + if err != nil { + return nil, err + } - } + var pathParam1 string - if params.Delay != nil { + pathParam1, err = runtime.StyleParamWithLocation("simple", false, "silenceID", runtime.ParamLocationPath, silenceID) + if err != nil { + return nil, err + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "delay", runtime.ParamLocationQuery, *params.Delay); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) - } - } - } + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } - } + operationPath := fmt.Sprintf("/api/metrics/v1/%s/am/api/v2/silence/%s", pathParam0, pathParam1) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } - queryURL.RawQuery = queryValues.Encode() + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err } req, err := http.NewRequest("GET", queryURL.String(), nil) @@ -1654,8 +3070,8 @@ func NewGetLogsRequest(server string, tenant externalRef1.Tenant, params *GetLog return req, nil } -// NewGetLogsPromAlertsRequest generates requests for GetLogsPromAlerts -func NewGetLogsPromAlertsRequest(server string, tenant externalRef1.Tenant) (*http.Request, error) { +// NewGetSilencesRequest generates requests for GetSilences +func NewGetSilencesRequest(server string, tenant Tenant, params *GetSilencesParams) (*http.Request, error) { var err error var pathParam0 string @@ -1670,7 +3086,7 @@ func NewGetLogsPromAlertsRequest(server string, tenant externalRef1.Tenant) (*ht return nil, err } - operationPath := fmt.Sprintf("/api/logs/v1/%s/prometheus/api/v1/alerts", pathParam0) + operationPath := fmt.Sprintf("/api/metrics/v1/%s/am/api/v2/silences", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1680,16 +3096,49 @@ func NewGetLogsPromAlertsRequest(server string, tenant externalRef1.Tenant) (*ht return nil, err } + if params != nil { + queryValues := queryURL.Query() + + if params.Filter != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "filter", runtime.ParamLocationQuery, *params.Filter); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + } + req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err } - - return req, nil + + return req, nil +} + +// NewPostSilenceRequest calls the generic PostSilence builder with application/json body +func NewPostSilenceRequest(server string, tenant Tenant, params *PostSilenceParams, body PostSilenceJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPostSilenceRequestWithBody(server, tenant, params, "application/json", bodyReader) } -// NewGetLogsPromRulesRequest generates requests for GetLogsPromRules -func NewGetLogsPromRulesRequest(server string, tenant externalRef1.Tenant) (*http.Request, error) { +// NewPostSilenceRequestWithBody generates requests for PostSilence with any type of body +func NewPostSilenceRequestWithBody(server string, tenant Tenant, params *PostSilenceParams, contentType string, body io.Reader) (*http.Request, error) { var err error var pathParam0 string @@ -1704,7 +3153,7 @@ func NewGetLogsPromRulesRequest(server string, tenant externalRef1.Tenant) (*htt return nil, err } - operationPath := fmt.Sprintf("/api/logs/v1/%s/prometheus/api/v1/rules", pathParam0) + operationPath := fmt.Sprintf("/api/metrics/v1/%s/am/api/v2/silences", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1714,16 +3163,40 @@ func NewGetLogsPromRulesRequest(server string, tenant externalRef1.Tenant) (*htt return nil, err } - req, err := http.NewRequest("GET", queryURL.String(), nil) + if params != nil { + queryValues := queryURL.Query() + + if params.Filter != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "filter", runtime.ParamLocationQuery, *params.Filter); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + } + + req, err := http.NewRequest("POST", queryURL.String(), body) if err != nil { return nil, err } + req.Header.Add("Content-Type", contentType) + return req, nil } // NewGetLabelValuesRequest generates requests for GetLabelValues -func NewGetLabelValuesRequest(server string, tenant externalRef1.Tenant, labelName string, params *GetLabelValuesParams) (*http.Request, error) { +func NewGetLabelValuesRequest(server string, tenant Tenant, labelName string, params *GetLabelValuesParams) (*http.Request, error) { var err error var pathParam0 string @@ -1818,7 +3291,7 @@ func NewGetLabelValuesRequest(server string, tenant externalRef1.Tenant, labelNa } // NewGetLabelsRequest generates requests for GetLabels -func NewGetLabelsRequest(server string, tenant externalRef1.Tenant, params *GetLabelsParams) (*http.Request, error) { +func NewGetLabelsRequest(server string, tenant Tenant, params *GetLabelsParams) (*http.Request, error) { var err error var pathParam0 string @@ -1906,7 +3379,7 @@ func NewGetLabelsRequest(server string, tenant externalRef1.Tenant, params *GetL } // NewGetInstantQueryRequest generates requests for GetInstantQuery -func NewGetInstantQueryRequest(server string, tenant externalRef1.Tenant, params *GetInstantQueryParams) (*http.Request, error) { +func NewGetInstantQueryRequest(server string, tenant Tenant, params *GetInstantQueryParams) (*http.Request, error) { var err error var pathParam0 string @@ -2026,7 +3499,7 @@ func NewGetInstantQueryRequest(server string, tenant externalRef1.Tenant, params } // NewGetRangeQueryRequest generates requests for GetRangeQuery -func NewGetRangeQueryRequest(server string, tenant externalRef1.Tenant, params *GetRangeQueryParams) (*http.Request, error) { +func NewGetRangeQueryRequest(server string, tenant Tenant, params *GetRangeQueryParams) (*http.Request, error) { var err error var pathParam0 string @@ -2178,7 +3651,7 @@ func NewGetRangeQueryRequest(server string, tenant externalRef1.Tenant, params * } // NewGetRulesRequest generates requests for GetRules -func NewGetRulesRequest(server string, tenant externalRef1.Tenant, params *GetRulesParams) (*http.Request, error) { +func NewGetRulesRequest(server string, tenant Tenant, params *GetRulesParams) (*http.Request, error) { var err error var pathParam0 string @@ -2250,7 +3723,7 @@ func NewGetRulesRequest(server string, tenant externalRef1.Tenant, params *GetRu } // NewGetRawRulesRequest generates requests for GetRawRules -func NewGetRawRulesRequest(server string, tenant externalRef1.Tenant) (*http.Request, error) { +func NewGetRawRulesRequest(server string, tenant Tenant) (*http.Request, error) { var err error var pathParam0 string @@ -2284,7 +3757,7 @@ func NewGetRawRulesRequest(server string, tenant externalRef1.Tenant) (*http.Req } // NewSetRawRulesRequestWithBody generates requests for SetRawRules with any type of body -func NewSetRawRulesRequestWithBody(server string, tenant externalRef1.Tenant, contentType string, body io.Reader) (*http.Request, error) { +func NewSetRawRulesRequestWithBody(server string, tenant Tenant, contentType string, body io.Reader) (*http.Request, error) { var err error var pathParam0 string @@ -2320,7 +3793,7 @@ func NewSetRawRulesRequestWithBody(server string, tenant externalRef1.Tenant, co } // NewGetSeriesRequest generates requests for GetSeries -func NewGetSeriesRequest(server string, tenant externalRef1.Tenant, params *GetSeriesParams) (*http.Request, error) { +func NewGetSeriesRequest(server string, tenant Tenant, params *GetSeriesParams) (*http.Request, error) { var err error var pathParam0 string @@ -2447,86 +3920,103 @@ func WithBaseURL(baseURL string) ClientOption { // ClientWithResponsesInterface is the interface specification for the client with responses above. type ClientWithResponsesInterface interface { // GetLogLabelValuesWithResponse request - GetLogLabelValuesWithResponse(ctx context.Context, tenant externalRef1.Tenant, name string, params *GetLogLabelValuesParams, reqEditors ...RequestEditorFn) (*GetLogLabelValuesResponse, error) + GetLogLabelValuesWithResponse(ctx context.Context, tenant Tenant, name string, params *GetLogLabelValuesParams, reqEditors ...RequestEditorFn) (*GetLogLabelValuesResponse, error) // GetLogLabelsWithResponse request - GetLogLabelsWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLogLabelsParams, reqEditors ...RequestEditorFn) (*GetLogLabelsResponse, error) + GetLogLabelsWithResponse(ctx context.Context, tenant Tenant, params *GetLogLabelsParams, reqEditors ...RequestEditorFn) (*GetLogLabelsResponse, error) // PostlogEntriesWithBodyWithResponse request with any body - PostlogEntriesWithBodyWithResponse(ctx context.Context, tenant externalRef1.Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostlogEntriesResponse, error) + PostlogEntriesWithBodyWithResponse(ctx context.Context, tenant Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostlogEntriesResponse, error) - PostlogEntriesWithResponse(ctx context.Context, tenant externalRef1.Tenant, body PostlogEntriesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostlogEntriesResponse, error) + PostlogEntriesWithResponse(ctx context.Context, tenant Tenant, body PostlogEntriesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostlogEntriesResponse, error) // GetLogInstantQueryWithResponse request - GetLogInstantQueryWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLogInstantQueryParams, reqEditors ...RequestEditorFn) (*GetLogInstantQueryResponse, error) + GetLogInstantQueryWithResponse(ctx context.Context, tenant Tenant, params *GetLogInstantQueryParams, reqEditors ...RequestEditorFn) (*GetLogInstantQueryResponse, error) // GetLogRangeQueryWithResponse request - GetLogRangeQueryWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLogRangeQueryParams, reqEditors ...RequestEditorFn) (*GetLogRangeQueryResponse, error) + GetLogRangeQueryWithResponse(ctx context.Context, tenant Tenant, params *GetLogRangeQueryParams, reqEditors ...RequestEditorFn) (*GetLogRangeQueryResponse, error) // GetAllLogsRulesWithResponse request - GetAllLogsRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*GetAllLogsRulesResponse, error) + GetAllLogsRulesWithResponse(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*GetAllLogsRulesResponse, error) // DeleteLogsRulesWithResponse request - DeleteLogsRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, reqEditors ...RequestEditorFn) (*DeleteLogsRulesResponse, error) + DeleteLogsRulesWithResponse(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, reqEditors ...RequestEditorFn) (*DeleteLogsRulesResponse, error) // GetLogsRulesWithResponse request - GetLogsRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, reqEditors ...RequestEditorFn) (*GetLogsRulesResponse, error) + GetLogsRulesWithResponse(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, reqEditors ...RequestEditorFn) (*GetLogsRulesResponse, error) // SetLogsRulesWithBodyWithResponse request with any body - SetLogsRulesWithBodyWithResponse(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetLogsRulesResponse, error) + SetLogsRulesWithBodyWithResponse(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetLogsRulesResponse, error) // DeleteLogsRulesGroupWithResponse request - DeleteLogsRulesGroupWithResponse(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, group externalRef1.LogRulesGroup, reqEditors ...RequestEditorFn) (*DeleteLogsRulesGroupResponse, error) + DeleteLogsRulesGroupWithResponse(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, group LogRulesGroup, reqEditors ...RequestEditorFn) (*DeleteLogsRulesGroupResponse, error) // GetLogsRulesGroupWithResponse request - GetLogsRulesGroupWithResponse(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, group externalRef1.LogRulesGroup, reqEditors ...RequestEditorFn) (*GetLogsRulesGroupResponse, error) + GetLogsRulesGroupWithResponse(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, group LogRulesGroup, reqEditors ...RequestEditorFn) (*GetLogsRulesGroupResponse, error) // GetLogSeriesWithResponse request - GetLogSeriesWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLogSeriesParams, reqEditors ...RequestEditorFn) (*GetLogSeriesResponse, error) + GetLogSeriesWithResponse(ctx context.Context, tenant Tenant, params *GetLogSeriesParams, reqEditors ...RequestEditorFn) (*GetLogSeriesResponse, error) // PostLogSeriesWithBodyWithResponse request with any body - PostLogSeriesWithBodyWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *PostLogSeriesParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostLogSeriesResponse, error) + PostLogSeriesWithBodyWithResponse(ctx context.Context, tenant Tenant, params *PostLogSeriesParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostLogSeriesResponse, error) - PostLogSeriesWithFormdataBodyWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *PostLogSeriesParams, body PostLogSeriesFormdataRequestBody, reqEditors ...RequestEditorFn) (*PostLogSeriesResponse, error) + PostLogSeriesWithFormdataBodyWithResponse(ctx context.Context, tenant Tenant, params *PostLogSeriesParams, body PostLogSeriesFormdataRequestBody, reqEditors ...RequestEditorFn) (*PostLogSeriesResponse, error) // GetLogsWithResponse request - GetLogsWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLogsParams, reqEditors ...RequestEditorFn) (*GetLogsResponse, error) + GetLogsWithResponse(ctx context.Context, tenant Tenant, params *GetLogsParams, reqEditors ...RequestEditorFn) (*GetLogsResponse, error) // GetLogsPromAlertsWithResponse request - GetLogsPromAlertsWithResponse(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*GetLogsPromAlertsResponse, error) + GetLogsPromAlertsWithResponse(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*GetLogsPromAlertsResponse, error) // GetLogsPromRulesWithResponse request - GetLogsPromRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*GetLogsPromRulesResponse, error) + GetLogsPromRulesWithResponse(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*GetLogsPromRulesResponse, error) + + // GetAlertsWithResponse request + GetAlertsWithResponse(ctx context.Context, tenant Tenant, params *GetAlertsParams, reqEditors ...RequestEditorFn) (*GetAlertsResponse, error) + + // DeleteSilenceWithResponse request + DeleteSilenceWithResponse(ctx context.Context, tenant Tenant, silenceID openapi_types.UUID, reqEditors ...RequestEditorFn) (*DeleteSilenceResponse, error) + + // GetSilenceWithResponse request + GetSilenceWithResponse(ctx context.Context, tenant Tenant, silenceID openapi_types.UUID, reqEditors ...RequestEditorFn) (*GetSilenceResponse, error) + + // GetSilencesWithResponse request + GetSilencesWithResponse(ctx context.Context, tenant Tenant, params *GetSilencesParams, reqEditors ...RequestEditorFn) (*GetSilencesResponse, error) + + // PostSilenceWithBodyWithResponse request with any body + PostSilenceWithBodyWithResponse(ctx context.Context, tenant Tenant, params *PostSilenceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSilenceResponse, error) + + PostSilenceWithResponse(ctx context.Context, tenant Tenant, params *PostSilenceParams, body PostSilenceJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSilenceResponse, error) // GetLabelValuesWithResponse request - GetLabelValuesWithResponse(ctx context.Context, tenant externalRef1.Tenant, labelName string, params *GetLabelValuesParams, reqEditors ...RequestEditorFn) (*GetLabelValuesResponse, error) + GetLabelValuesWithResponse(ctx context.Context, tenant Tenant, labelName string, params *GetLabelValuesParams, reqEditors ...RequestEditorFn) (*GetLabelValuesResponse, error) // GetLabelsWithResponse request - GetLabelsWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLabelsParams, reqEditors ...RequestEditorFn) (*GetLabelsResponse, error) + GetLabelsWithResponse(ctx context.Context, tenant Tenant, params *GetLabelsParams, reqEditors ...RequestEditorFn) (*GetLabelsResponse, error) // GetInstantQueryWithResponse request - GetInstantQueryWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetInstantQueryParams, reqEditors ...RequestEditorFn) (*GetInstantQueryResponse, error) + GetInstantQueryWithResponse(ctx context.Context, tenant Tenant, params *GetInstantQueryParams, reqEditors ...RequestEditorFn) (*GetInstantQueryResponse, error) // GetRangeQueryWithResponse request - GetRangeQueryWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetRangeQueryParams, reqEditors ...RequestEditorFn) (*GetRangeQueryResponse, error) + GetRangeQueryWithResponse(ctx context.Context, tenant Tenant, params *GetRangeQueryParams, reqEditors ...RequestEditorFn) (*GetRangeQueryResponse, error) // GetRulesWithResponse request - GetRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetRulesParams, reqEditors ...RequestEditorFn) (*GetRulesResponse, error) + GetRulesWithResponse(ctx context.Context, tenant Tenant, params *GetRulesParams, reqEditors ...RequestEditorFn) (*GetRulesResponse, error) // GetRawRulesWithResponse request - GetRawRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*GetRawRulesResponse, error) + GetRawRulesWithResponse(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*GetRawRulesResponse, error) // SetRawRulesWithBodyWithResponse request with any body - SetRawRulesWithBodyWithResponse(ctx context.Context, tenant externalRef1.Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetRawRulesResponse, error) + SetRawRulesWithBodyWithResponse(ctx context.Context, tenant Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetRawRulesResponse, error) // GetSeriesWithResponse request - GetSeriesWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetSeriesParams, reqEditors ...RequestEditorFn) (*GetSeriesResponse, error) + GetSeriesWithResponse(ctx context.Context, tenant Tenant, params *GetSeriesParams, reqEditors ...RequestEditorFn) (*GetSeriesResponse, error) } type GetLogLabelValuesResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.LogLabelValuesResponse + JSON2XX *LogLabelValuesResponse } // Status returns HTTPResponse.Status @@ -2548,7 +4038,7 @@ func (r GetLogLabelValuesResponse) StatusCode() int { type GetLogLabelsResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.LogLabelsResponse + JSON2XX *LogLabelsResponse } // Status returns HTTPResponse.Status @@ -2591,7 +4081,7 @@ func (r PostlogEntriesResponse) StatusCode() int { type GetLogInstantQueryResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.LogQueryResponse + JSON2XX *LogQueryResponse } // Status returns HTTPResponse.Status @@ -2613,7 +4103,7 @@ func (r GetLogInstantQueryResponse) StatusCode() int { type GetLogRangeQueryResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.LogQueryRangeResponse + JSON2XX *LogQueryRangeResponse } // Status returns HTTPResponse.Status @@ -2635,7 +4125,7 @@ func (r GetLogRangeQueryResponse) StatusCode() int { type GetAllLogsRulesResponse struct { Body []byte HTTPResponse *http.Response - YAML2XX *externalRef2.AllLogRulesResponse + YAML2XX *AllLogRulesResponse } // Status returns HTTPResponse.Status @@ -2678,7 +4168,7 @@ func (r DeleteLogsRulesResponse) StatusCode() int { type GetLogsRulesResponse struct { Body []byte HTTPResponse *http.Response - YAML2XX *externalRef2.LogRulesNamespaceResponse + YAML2XX *LogRulesNamespaceResponse } // Status returns HTTPResponse.Status @@ -2742,7 +4232,7 @@ func (r DeleteLogsRulesGroupResponse) StatusCode() int { type GetLogsRulesGroupResponse struct { Body []byte HTTPResponse *http.Response - YAML2XX *externalRef2.LogRulesGroupResponse + YAML2XX *LogRulesGroupResponse } // Status returns HTTPResponse.Status @@ -2764,7 +4254,7 @@ func (r GetLogsRulesGroupResponse) StatusCode() int { type GetLogSeriesResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.LogSeriesResponse + JSON2XX *LogSeriesResponse } // Status returns HTTPResponse.Status @@ -2807,7 +4297,7 @@ func (r PostLogSeriesResponse) StatusCode() int { type GetLogsResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.LogReadResponse + JSON2XX *LogReadResponse } // Status returns HTTPResponse.Status @@ -2829,7 +4319,7 @@ func (r GetLogsResponse) StatusCode() int { type GetLogsPromAlertsResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.LogRulesPrometheusResponse + JSON2XX *LogRulesPrometheusResponse } // Status returns HTTPResponse.Status @@ -2851,7 +4341,7 @@ func (r GetLogsPromAlertsResponse) StatusCode() int { type GetLogsPromRulesResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.LogRulesPrometheusResponse + JSON2XX *LogRulesPrometheusResponse } // Status returns HTTPResponse.Status @@ -2870,10 +4360,119 @@ func (r GetLogsPromRulesResponse) StatusCode() int { return 0 } +type GetAlertsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON2XX *GettableAlerts +} + +// Status returns HTTPResponse.Status +func (r GetAlertsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetAlertsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteSilenceResponse struct { + Body []byte + HTTPResponse *http.Response +} + +// Status returns HTTPResponse.Status +func (r DeleteSilenceResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteSilenceResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetSilenceResponse struct { + Body []byte + HTTPResponse *http.Response + JSON2XX *GettableSilence +} + +// Status returns HTTPResponse.Status +func (r GetSilenceResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetSilenceResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetSilencesResponse struct { + Body []byte + HTTPResponse *http.Response + JSON2XX *GettableSilences +} + +// Status returns HTTPResponse.Status +func (r GetSilencesResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetSilencesResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostSilenceResponse struct { + Body []byte + HTTPResponse *http.Response + JSON2XX *PostableSilenceResponse +} + +// Status returns HTTPResponse.Status +func (r PostSilenceResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostSilenceResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + type GetLabelValuesResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.MetricLabelValuesResponse + JSON2XX *MetricLabelValuesResponse } // Status returns HTTPResponse.Status @@ -2895,7 +4494,7 @@ func (r GetLabelValuesResponse) StatusCode() int { type GetLabelsResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.MetricLabelsResponse + JSON2XX *MetricLabelsResponse } // Status returns HTTPResponse.Status @@ -2917,7 +4516,7 @@ func (r GetLabelsResponse) StatusCode() int { type GetInstantQueryResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.MetricQueryResponse + JSON2XX *MetricQueryResponse } // Status returns HTTPResponse.Status @@ -2939,7 +4538,7 @@ func (r GetInstantQueryResponse) StatusCode() int { type GetRangeQueryResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.MetricQueryRangeResponse + JSON2XX *MetricQueryRangeResponse } // Status returns HTTPResponse.Status @@ -2961,7 +4560,7 @@ func (r GetRangeQueryResponse) StatusCode() int { type GetRulesResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.MetricRulesResponse + JSON2XX *MetricRulesResponse } // Status returns HTTPResponse.Status @@ -2983,7 +4582,7 @@ func (r GetRulesResponse) StatusCode() int { type GetRawRulesResponse struct { Body []byte HTTPResponse *http.Response - YAML200 *externalRef0.RulesRaw + YAML200 *RulesRaw } // Status returns HTTPResponse.Status @@ -3026,7 +4625,7 @@ func (r SetRawRulesResponse) StatusCode() int { type GetSeriesResponse struct { Body []byte HTTPResponse *http.Response - JSON2XX *externalRef2.MetricSeriesResponse + JSON2XX *MetricSeriesResponse } // Status returns HTTPResponse.Status @@ -3046,7 +4645,7 @@ func (r GetSeriesResponse) StatusCode() int { } // GetLogLabelValuesWithResponse request returning *GetLogLabelValuesResponse -func (c *ClientWithResponses) GetLogLabelValuesWithResponse(ctx context.Context, tenant externalRef1.Tenant, name string, params *GetLogLabelValuesParams, reqEditors ...RequestEditorFn) (*GetLogLabelValuesResponse, error) { +func (c *ClientWithResponses) GetLogLabelValuesWithResponse(ctx context.Context, tenant Tenant, name string, params *GetLogLabelValuesParams, reqEditors ...RequestEditorFn) (*GetLogLabelValuesResponse, error) { rsp, err := c.GetLogLabelValues(ctx, tenant, name, params, reqEditors...) if err != nil { return nil, err @@ -3055,7 +4654,7 @@ func (c *ClientWithResponses) GetLogLabelValuesWithResponse(ctx context.Context, } // GetLogLabelsWithResponse request returning *GetLogLabelsResponse -func (c *ClientWithResponses) GetLogLabelsWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLogLabelsParams, reqEditors ...RequestEditorFn) (*GetLogLabelsResponse, error) { +func (c *ClientWithResponses) GetLogLabelsWithResponse(ctx context.Context, tenant Tenant, params *GetLogLabelsParams, reqEditors ...RequestEditorFn) (*GetLogLabelsResponse, error) { rsp, err := c.GetLogLabels(ctx, tenant, params, reqEditors...) if err != nil { return nil, err @@ -3064,7 +4663,7 @@ func (c *ClientWithResponses) GetLogLabelsWithResponse(ctx context.Context, tena } // PostlogEntriesWithBodyWithResponse request with arbitrary body returning *PostlogEntriesResponse -func (c *ClientWithResponses) PostlogEntriesWithBodyWithResponse(ctx context.Context, tenant externalRef1.Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostlogEntriesResponse, error) { +func (c *ClientWithResponses) PostlogEntriesWithBodyWithResponse(ctx context.Context, tenant Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostlogEntriesResponse, error) { rsp, err := c.PostlogEntriesWithBody(ctx, tenant, contentType, body, reqEditors...) if err != nil { return nil, err @@ -3072,7 +4671,7 @@ func (c *ClientWithResponses) PostlogEntriesWithBodyWithResponse(ctx context.Con return ParsePostlogEntriesResponse(rsp) } -func (c *ClientWithResponses) PostlogEntriesWithResponse(ctx context.Context, tenant externalRef1.Tenant, body PostlogEntriesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostlogEntriesResponse, error) { +func (c *ClientWithResponses) PostlogEntriesWithResponse(ctx context.Context, tenant Tenant, body PostlogEntriesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostlogEntriesResponse, error) { rsp, err := c.PostlogEntries(ctx, tenant, body, reqEditors...) if err != nil { return nil, err @@ -3081,7 +4680,7 @@ func (c *ClientWithResponses) PostlogEntriesWithResponse(ctx context.Context, te } // GetLogInstantQueryWithResponse request returning *GetLogInstantQueryResponse -func (c *ClientWithResponses) GetLogInstantQueryWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLogInstantQueryParams, reqEditors ...RequestEditorFn) (*GetLogInstantQueryResponse, error) { +func (c *ClientWithResponses) GetLogInstantQueryWithResponse(ctx context.Context, tenant Tenant, params *GetLogInstantQueryParams, reqEditors ...RequestEditorFn) (*GetLogInstantQueryResponse, error) { rsp, err := c.GetLogInstantQuery(ctx, tenant, params, reqEditors...) if err != nil { return nil, err @@ -3090,7 +4689,7 @@ func (c *ClientWithResponses) GetLogInstantQueryWithResponse(ctx context.Context } // GetLogRangeQueryWithResponse request returning *GetLogRangeQueryResponse -func (c *ClientWithResponses) GetLogRangeQueryWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLogRangeQueryParams, reqEditors ...RequestEditorFn) (*GetLogRangeQueryResponse, error) { +func (c *ClientWithResponses) GetLogRangeQueryWithResponse(ctx context.Context, tenant Tenant, params *GetLogRangeQueryParams, reqEditors ...RequestEditorFn) (*GetLogRangeQueryResponse, error) { rsp, err := c.GetLogRangeQuery(ctx, tenant, params, reqEditors...) if err != nil { return nil, err @@ -3099,7 +4698,7 @@ func (c *ClientWithResponses) GetLogRangeQueryWithResponse(ctx context.Context, } // GetAllLogsRulesWithResponse request returning *GetAllLogsRulesResponse -func (c *ClientWithResponses) GetAllLogsRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*GetAllLogsRulesResponse, error) { +func (c *ClientWithResponses) GetAllLogsRulesWithResponse(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*GetAllLogsRulesResponse, error) { rsp, err := c.GetAllLogsRules(ctx, tenant, reqEditors...) if err != nil { return nil, err @@ -3108,7 +4707,7 @@ func (c *ClientWithResponses) GetAllLogsRulesWithResponse(ctx context.Context, t } // DeleteLogsRulesWithResponse request returning *DeleteLogsRulesResponse -func (c *ClientWithResponses) DeleteLogsRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, reqEditors ...RequestEditorFn) (*DeleteLogsRulesResponse, error) { +func (c *ClientWithResponses) DeleteLogsRulesWithResponse(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, reqEditors ...RequestEditorFn) (*DeleteLogsRulesResponse, error) { rsp, err := c.DeleteLogsRules(ctx, tenant, namespace, reqEditors...) if err != nil { return nil, err @@ -3117,7 +4716,7 @@ func (c *ClientWithResponses) DeleteLogsRulesWithResponse(ctx context.Context, t } // GetLogsRulesWithResponse request returning *GetLogsRulesResponse -func (c *ClientWithResponses) GetLogsRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, reqEditors ...RequestEditorFn) (*GetLogsRulesResponse, error) { +func (c *ClientWithResponses) GetLogsRulesWithResponse(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, reqEditors ...RequestEditorFn) (*GetLogsRulesResponse, error) { rsp, err := c.GetLogsRules(ctx, tenant, namespace, reqEditors...) if err != nil { return nil, err @@ -3126,7 +4725,7 @@ func (c *ClientWithResponses) GetLogsRulesWithResponse(ctx context.Context, tena } // SetLogsRulesWithBodyWithResponse request with arbitrary body returning *SetLogsRulesResponse -func (c *ClientWithResponses) SetLogsRulesWithBodyWithResponse(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetLogsRulesResponse, error) { +func (c *ClientWithResponses) SetLogsRulesWithBodyWithResponse(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetLogsRulesResponse, error) { rsp, err := c.SetLogsRulesWithBody(ctx, tenant, namespace, contentType, body, reqEditors...) if err != nil { return nil, err @@ -3135,7 +4734,7 @@ func (c *ClientWithResponses) SetLogsRulesWithBodyWithResponse(ctx context.Conte } // DeleteLogsRulesGroupWithResponse request returning *DeleteLogsRulesGroupResponse -func (c *ClientWithResponses) DeleteLogsRulesGroupWithResponse(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, group externalRef1.LogRulesGroup, reqEditors ...RequestEditorFn) (*DeleteLogsRulesGroupResponse, error) { +func (c *ClientWithResponses) DeleteLogsRulesGroupWithResponse(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, group LogRulesGroup, reqEditors ...RequestEditorFn) (*DeleteLogsRulesGroupResponse, error) { rsp, err := c.DeleteLogsRulesGroup(ctx, tenant, namespace, group, reqEditors...) if err != nil { return nil, err @@ -3144,7 +4743,7 @@ func (c *ClientWithResponses) DeleteLogsRulesGroupWithResponse(ctx context.Conte } // GetLogsRulesGroupWithResponse request returning *GetLogsRulesGroupResponse -func (c *ClientWithResponses) GetLogsRulesGroupWithResponse(ctx context.Context, tenant externalRef1.Tenant, namespace externalRef1.LogRulesNamespace, group externalRef1.LogRulesGroup, reqEditors ...RequestEditorFn) (*GetLogsRulesGroupResponse, error) { +func (c *ClientWithResponses) GetLogsRulesGroupWithResponse(ctx context.Context, tenant Tenant, namespace LogRulesNamespace, group LogRulesGroup, reqEditors ...RequestEditorFn) (*GetLogsRulesGroupResponse, error) { rsp, err := c.GetLogsRulesGroup(ctx, tenant, namespace, group, reqEditors...) if err != nil { return nil, err @@ -3153,7 +4752,7 @@ func (c *ClientWithResponses) GetLogsRulesGroupWithResponse(ctx context.Context, } // GetLogSeriesWithResponse request returning *GetLogSeriesResponse -func (c *ClientWithResponses) GetLogSeriesWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLogSeriesParams, reqEditors ...RequestEditorFn) (*GetLogSeriesResponse, error) { +func (c *ClientWithResponses) GetLogSeriesWithResponse(ctx context.Context, tenant Tenant, params *GetLogSeriesParams, reqEditors ...RequestEditorFn) (*GetLogSeriesResponse, error) { rsp, err := c.GetLogSeries(ctx, tenant, params, reqEditors...) if err != nil { return nil, err @@ -3162,7 +4761,7 @@ func (c *ClientWithResponses) GetLogSeriesWithResponse(ctx context.Context, tena } // PostLogSeriesWithBodyWithResponse request with arbitrary body returning *PostLogSeriesResponse -func (c *ClientWithResponses) PostLogSeriesWithBodyWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *PostLogSeriesParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostLogSeriesResponse, error) { +func (c *ClientWithResponses) PostLogSeriesWithBodyWithResponse(ctx context.Context, tenant Tenant, params *PostLogSeriesParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostLogSeriesResponse, error) { rsp, err := c.PostLogSeriesWithBody(ctx, tenant, params, contentType, body, reqEditors...) if err != nil { return nil, err @@ -3170,7 +4769,7 @@ func (c *ClientWithResponses) PostLogSeriesWithBodyWithResponse(ctx context.Cont return ParsePostLogSeriesResponse(rsp) } -func (c *ClientWithResponses) PostLogSeriesWithFormdataBodyWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *PostLogSeriesParams, body PostLogSeriesFormdataRequestBody, reqEditors ...RequestEditorFn) (*PostLogSeriesResponse, error) { +func (c *ClientWithResponses) PostLogSeriesWithFormdataBodyWithResponse(ctx context.Context, tenant Tenant, params *PostLogSeriesParams, body PostLogSeriesFormdataRequestBody, reqEditors ...RequestEditorFn) (*PostLogSeriesResponse, error) { rsp, err := c.PostLogSeriesWithFormdataBody(ctx, tenant, params, body, reqEditors...) if err != nil { return nil, err @@ -3179,7 +4778,7 @@ func (c *ClientWithResponses) PostLogSeriesWithFormdataBodyWithResponse(ctx cont } // GetLogsWithResponse request returning *GetLogsResponse -func (c *ClientWithResponses) GetLogsWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLogsParams, reqEditors ...RequestEditorFn) (*GetLogsResponse, error) { +func (c *ClientWithResponses) GetLogsWithResponse(ctx context.Context, tenant Tenant, params *GetLogsParams, reqEditors ...RequestEditorFn) (*GetLogsResponse, error) { rsp, err := c.GetLogs(ctx, tenant, params, reqEditors...) if err != nil { return nil, err @@ -3188,7 +4787,7 @@ func (c *ClientWithResponses) GetLogsWithResponse(ctx context.Context, tenant ex } // GetLogsPromAlertsWithResponse request returning *GetLogsPromAlertsResponse -func (c *ClientWithResponses) GetLogsPromAlertsWithResponse(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*GetLogsPromAlertsResponse, error) { +func (c *ClientWithResponses) GetLogsPromAlertsWithResponse(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*GetLogsPromAlertsResponse, error) { rsp, err := c.GetLogsPromAlerts(ctx, tenant, reqEditors...) if err != nil { return nil, err @@ -3197,7 +4796,7 @@ func (c *ClientWithResponses) GetLogsPromAlertsWithResponse(ctx context.Context, } // GetLogsPromRulesWithResponse request returning *GetLogsPromRulesResponse -func (c *ClientWithResponses) GetLogsPromRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*GetLogsPromRulesResponse, error) { +func (c *ClientWithResponses) GetLogsPromRulesWithResponse(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*GetLogsPromRulesResponse, error) { rsp, err := c.GetLogsPromRules(ctx, tenant, reqEditors...) if err != nil { return nil, err @@ -3205,8 +4804,61 @@ func (c *ClientWithResponses) GetLogsPromRulesWithResponse(ctx context.Context, return ParseGetLogsPromRulesResponse(rsp) } +// GetAlertsWithResponse request returning *GetAlertsResponse +func (c *ClientWithResponses) GetAlertsWithResponse(ctx context.Context, tenant Tenant, params *GetAlertsParams, reqEditors ...RequestEditorFn) (*GetAlertsResponse, error) { + rsp, err := c.GetAlerts(ctx, tenant, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetAlertsResponse(rsp) +} + +// DeleteSilenceWithResponse request returning *DeleteSilenceResponse +func (c *ClientWithResponses) DeleteSilenceWithResponse(ctx context.Context, tenant Tenant, silenceID openapi_types.UUID, reqEditors ...RequestEditorFn) (*DeleteSilenceResponse, error) { + rsp, err := c.DeleteSilence(ctx, tenant, silenceID, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteSilenceResponse(rsp) +} + +// GetSilenceWithResponse request returning *GetSilenceResponse +func (c *ClientWithResponses) GetSilenceWithResponse(ctx context.Context, tenant Tenant, silenceID openapi_types.UUID, reqEditors ...RequestEditorFn) (*GetSilenceResponse, error) { + rsp, err := c.GetSilence(ctx, tenant, silenceID, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetSilenceResponse(rsp) +} + +// GetSilencesWithResponse request returning *GetSilencesResponse +func (c *ClientWithResponses) GetSilencesWithResponse(ctx context.Context, tenant Tenant, params *GetSilencesParams, reqEditors ...RequestEditorFn) (*GetSilencesResponse, error) { + rsp, err := c.GetSilences(ctx, tenant, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetSilencesResponse(rsp) +} + +// PostSilenceWithBodyWithResponse request with arbitrary body returning *PostSilenceResponse +func (c *ClientWithResponses) PostSilenceWithBodyWithResponse(ctx context.Context, tenant Tenant, params *PostSilenceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSilenceResponse, error) { + rsp, err := c.PostSilenceWithBody(ctx, tenant, params, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostSilenceResponse(rsp) +} + +func (c *ClientWithResponses) PostSilenceWithResponse(ctx context.Context, tenant Tenant, params *PostSilenceParams, body PostSilenceJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSilenceResponse, error) { + rsp, err := c.PostSilence(ctx, tenant, params, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostSilenceResponse(rsp) +} + // GetLabelValuesWithResponse request returning *GetLabelValuesResponse -func (c *ClientWithResponses) GetLabelValuesWithResponse(ctx context.Context, tenant externalRef1.Tenant, labelName string, params *GetLabelValuesParams, reqEditors ...RequestEditorFn) (*GetLabelValuesResponse, error) { +func (c *ClientWithResponses) GetLabelValuesWithResponse(ctx context.Context, tenant Tenant, labelName string, params *GetLabelValuesParams, reqEditors ...RequestEditorFn) (*GetLabelValuesResponse, error) { rsp, err := c.GetLabelValues(ctx, tenant, labelName, params, reqEditors...) if err != nil { return nil, err @@ -3215,7 +4867,7 @@ func (c *ClientWithResponses) GetLabelValuesWithResponse(ctx context.Context, te } // GetLabelsWithResponse request returning *GetLabelsResponse -func (c *ClientWithResponses) GetLabelsWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetLabelsParams, reqEditors ...RequestEditorFn) (*GetLabelsResponse, error) { +func (c *ClientWithResponses) GetLabelsWithResponse(ctx context.Context, tenant Tenant, params *GetLabelsParams, reqEditors ...RequestEditorFn) (*GetLabelsResponse, error) { rsp, err := c.GetLabels(ctx, tenant, params, reqEditors...) if err != nil { return nil, err @@ -3224,7 +4876,7 @@ func (c *ClientWithResponses) GetLabelsWithResponse(ctx context.Context, tenant } // GetInstantQueryWithResponse request returning *GetInstantQueryResponse -func (c *ClientWithResponses) GetInstantQueryWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetInstantQueryParams, reqEditors ...RequestEditorFn) (*GetInstantQueryResponse, error) { +func (c *ClientWithResponses) GetInstantQueryWithResponse(ctx context.Context, tenant Tenant, params *GetInstantQueryParams, reqEditors ...RequestEditorFn) (*GetInstantQueryResponse, error) { rsp, err := c.GetInstantQuery(ctx, tenant, params, reqEditors...) if err != nil { return nil, err @@ -3233,7 +4885,7 @@ func (c *ClientWithResponses) GetInstantQueryWithResponse(ctx context.Context, t } // GetRangeQueryWithResponse request returning *GetRangeQueryResponse -func (c *ClientWithResponses) GetRangeQueryWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetRangeQueryParams, reqEditors ...RequestEditorFn) (*GetRangeQueryResponse, error) { +func (c *ClientWithResponses) GetRangeQueryWithResponse(ctx context.Context, tenant Tenant, params *GetRangeQueryParams, reqEditors ...RequestEditorFn) (*GetRangeQueryResponse, error) { rsp, err := c.GetRangeQuery(ctx, tenant, params, reqEditors...) if err != nil { return nil, err @@ -3242,7 +4894,7 @@ func (c *ClientWithResponses) GetRangeQueryWithResponse(ctx context.Context, ten } // GetRulesWithResponse request returning *GetRulesResponse -func (c *ClientWithResponses) GetRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetRulesParams, reqEditors ...RequestEditorFn) (*GetRulesResponse, error) { +func (c *ClientWithResponses) GetRulesWithResponse(ctx context.Context, tenant Tenant, params *GetRulesParams, reqEditors ...RequestEditorFn) (*GetRulesResponse, error) { rsp, err := c.GetRules(ctx, tenant, params, reqEditors...) if err != nil { return nil, err @@ -3251,7 +4903,7 @@ func (c *ClientWithResponses) GetRulesWithResponse(ctx context.Context, tenant e } // GetRawRulesWithResponse request returning *GetRawRulesResponse -func (c *ClientWithResponses) GetRawRulesWithResponse(ctx context.Context, tenant externalRef1.Tenant, reqEditors ...RequestEditorFn) (*GetRawRulesResponse, error) { +func (c *ClientWithResponses) GetRawRulesWithResponse(ctx context.Context, tenant Tenant, reqEditors ...RequestEditorFn) (*GetRawRulesResponse, error) { rsp, err := c.GetRawRules(ctx, tenant, reqEditors...) if err != nil { return nil, err @@ -3260,7 +4912,7 @@ func (c *ClientWithResponses) GetRawRulesWithResponse(ctx context.Context, tenan } // SetRawRulesWithBodyWithResponse request with arbitrary body returning *SetRawRulesResponse -func (c *ClientWithResponses) SetRawRulesWithBodyWithResponse(ctx context.Context, tenant externalRef1.Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetRawRulesResponse, error) { +func (c *ClientWithResponses) SetRawRulesWithBodyWithResponse(ctx context.Context, tenant Tenant, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetRawRulesResponse, error) { rsp, err := c.SetRawRulesWithBody(ctx, tenant, contentType, body, reqEditors...) if err != nil { return nil, err @@ -3269,7 +4921,7 @@ func (c *ClientWithResponses) SetRawRulesWithBodyWithResponse(ctx context.Contex } // GetSeriesWithResponse request returning *GetSeriesResponse -func (c *ClientWithResponses) GetSeriesWithResponse(ctx context.Context, tenant externalRef1.Tenant, params *GetSeriesParams, reqEditors ...RequestEditorFn) (*GetSeriesResponse, error) { +func (c *ClientWithResponses) GetSeriesWithResponse(ctx context.Context, tenant Tenant, params *GetSeriesParams, reqEditors ...RequestEditorFn) (*GetSeriesResponse, error) { rsp, err := c.GetSeries(ctx, tenant, params, reqEditors...) if err != nil { return nil, err @@ -3292,7 +4944,7 @@ func ParseGetLogLabelValuesResponse(rsp *http.Response) (*GetLogLabelValuesRespo switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.LogLabelValuesResponse + var dest LogLabelValuesResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3318,7 +4970,7 @@ func ParseGetLogLabelsResponse(rsp *http.Response) (*GetLogLabelsResponse, error switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.LogLabelsResponse + var dest LogLabelsResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3360,7 +5012,7 @@ func ParseGetLogInstantQueryResponse(rsp *http.Response) (*GetLogInstantQueryRes switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.LogQueryResponse + var dest LogQueryResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3386,7 +5038,7 @@ func ParseGetLogRangeQueryResponse(rsp *http.Response) (*GetLogRangeQueryRespons switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.LogQueryRangeResponse + var dest LogQueryRangeResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3412,7 +5064,7 @@ func ParseGetAllLogsRulesResponse(rsp *http.Response) (*GetAllLogsRulesResponse, switch { case strings.Contains(rsp.Header.Get("Content-Type"), "yaml") && rsp.StatusCode/100 == 2: - var dest externalRef2.AllLogRulesResponse + var dest AllLogRulesResponse if err := yaml.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3454,7 +5106,7 @@ func ParseGetLogsRulesResponse(rsp *http.Response) (*GetLogsRulesResponse, error switch { case strings.Contains(rsp.Header.Get("Content-Type"), "yaml") && rsp.StatusCode/100 == 2: - var dest externalRef2.LogRulesNamespaceResponse + var dest LogRulesNamespaceResponse if err := yaml.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3512,7 +5164,7 @@ func ParseGetLogsRulesGroupResponse(rsp *http.Response) (*GetLogsRulesGroupRespo switch { case strings.Contains(rsp.Header.Get("Content-Type"), "yaml") && rsp.StatusCode/100 == 2: - var dest externalRef2.LogRulesGroupResponse + var dest LogRulesGroupResponse if err := yaml.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3538,7 +5190,7 @@ func ParseGetLogSeriesResponse(rsp *http.Response) (*GetLogSeriesResponse, error switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.LogSeriesResponse + var dest LogSeriesResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3580,7 +5232,7 @@ func ParseGetLogsResponse(rsp *http.Response) (*GetLogsResponse, error) { switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.LogReadResponse + var dest LogReadResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3606,7 +5258,7 @@ func ParseGetLogsPromAlertsResponse(rsp *http.Response) (*GetLogsPromAlertsRespo switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.LogRulesPrometheusResponse + var dest LogRulesPrometheusResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3632,7 +5284,127 @@ func ParseGetLogsPromRulesResponse(rsp *http.Response) (*GetLogsPromRulesRespons switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.LogRulesPrometheusResponse + var dest LogRulesPrometheusResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON2XX = &dest + + } + + return response, nil +} + +// ParseGetAlertsResponse parses an HTTP response from a GetAlertsWithResponse call +func ParseGetAlertsResponse(rsp *http.Response) (*GetAlertsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetAlertsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: + var dest GettableAlerts + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON2XX = &dest + + } + + return response, nil +} + +// ParseDeleteSilenceResponse parses an HTTP response from a DeleteSilenceWithResponse call +func ParseDeleteSilenceResponse(rsp *http.Response) (*DeleteSilenceResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteSilenceResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + return response, nil +} + +// ParseGetSilenceResponse parses an HTTP response from a GetSilenceWithResponse call +func ParseGetSilenceResponse(rsp *http.Response) (*GetSilenceResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetSilenceResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: + var dest GettableSilence + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON2XX = &dest + + } + + return response, nil +} + +// ParseGetSilencesResponse parses an HTTP response from a GetSilencesWithResponse call +func ParseGetSilencesResponse(rsp *http.Response) (*GetSilencesResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetSilencesResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: + var dest GettableSilences + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON2XX = &dest + + } + + return response, nil +} + +// ParsePostSilenceResponse parses an HTTP response from a PostSilenceWithResponse call +func ParsePostSilenceResponse(rsp *http.Response) (*PostSilenceResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostSilenceResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: + var dest PostableSilenceResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3658,7 +5430,7 @@ func ParseGetLabelValuesResponse(rsp *http.Response) (*GetLabelValuesResponse, e switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.MetricLabelValuesResponse + var dest MetricLabelValuesResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3684,7 +5456,7 @@ func ParseGetLabelsResponse(rsp *http.Response) (*GetLabelsResponse, error) { switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.MetricLabelsResponse + var dest MetricLabelsResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3710,7 +5482,7 @@ func ParseGetInstantQueryResponse(rsp *http.Response) (*GetInstantQueryResponse, switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.MetricQueryResponse + var dest MetricQueryResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3736,7 +5508,7 @@ func ParseGetRangeQueryResponse(rsp *http.Response) (*GetRangeQueryResponse, err switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.MetricQueryRangeResponse + var dest MetricQueryRangeResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3762,7 +5534,7 @@ func ParseGetRulesResponse(rsp *http.Response) (*GetRulesResponse, error) { switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.MetricRulesResponse + var dest MetricRulesResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3788,7 +5560,7 @@ func ParseGetRawRulesResponse(rsp *http.Response) (*GetRawRulesResponse, error) switch { case strings.Contains(rsp.Header.Get("Content-Type"), "yaml") && rsp.StatusCode == 200: - var dest externalRef0.RulesRaw + var dest RulesRaw if err := yaml.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -3830,7 +5602,7 @@ func ParseGetSeriesResponse(rsp *http.Response) (*GetSeriesResponse, error) { switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 2: - var dest externalRef2.MetricSeriesResponse + var dest MetricSeriesResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } diff --git a/client/embed.go b/client/embed.go new file mode 100644 index 000000000..44844a357 --- /dev/null +++ b/client/embed.go @@ -0,0 +1,10 @@ +package client + +import ( + _ "embed" +) + +// OpenAPISpecification is the Observatorium's OpenAPI specificiation in YAML format. +// +//go:embed spec.yaml +var OpenAPISpecification []byte diff --git a/client/models/models.gen.go b/client/models/models.gen.go deleted file mode 100644 index beb78f918..000000000 --- a/client/models/models.gen.go +++ /dev/null @@ -1,738 +0,0 @@ -// Package models provides primitives to interact with the openapi HTTP API. -// -// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.1 DO NOT EDIT. -package models - -import ( - "encoding/json" - - "github.com/oapi-codegen/runtime" -) - -// Defines values for AlertingRuleEvaluatedType. -const ( - Alerting AlertingRuleEvaluatedType = "alerting" -) - -// Defines values for LogInstantQueryResponseResultType. -const ( - LogInstantQueryResponseResultTypeMatrix LogInstantQueryResponseResultType = "matrix" - LogInstantQueryResponseResultTypeScalar LogInstantQueryResponseResultType = "scalar" - LogInstantQueryResponseResultTypeStreams LogInstantQueryResponseResultType = "streams" - LogInstantQueryResponseResultTypeString LogInstantQueryResponseResultType = "string" - LogInstantQueryResponseResultTypeVector LogInstantQueryResponseResultType = "vector" -) - -// Defines values for LogRangeQueryResponseResultType. -const ( - LogRangeQueryResponseResultTypeMatrix LogRangeQueryResponseResultType = "matrix" -) - -// Defines values for MetricInstantQueryResponseResultType. -const ( - MetricInstantQueryResponseResultTypeMatrix MetricInstantQueryResponseResultType = "matrix" - MetricInstantQueryResponseResultTypeScalar MetricInstantQueryResponseResultType = "scalar" - MetricInstantQueryResponseResultTypeStreams MetricInstantQueryResponseResultType = "streams" - MetricInstantQueryResponseResultTypeString MetricInstantQueryResponseResultType = "string" - MetricInstantQueryResponseResultTypeVector MetricInstantQueryResponseResultType = "vector" -) - -// Defines values for MetricRangeQueryResponseResultType. -const ( - MetricRangeQueryResponseResultTypeMatrix MetricRangeQueryResponseResultType = "matrix" -) - -// Defines values for RecordingRuleEvaluatedType. -const ( - Recording RecordingRuleEvaluatedType = "recording" -) - -// ActiveAlert defines model for ActiveAlert. -type ActiveAlert struct { - ActiveAt string `json:"activeAt"` - Annotations *map[string]string `json:"annotations,omitempty"` - Labels *map[string]string `json:"labels,omitempty"` - State string `json:"state"` - Value string `json:"value"` -} - -// AlertingRule defines model for AlertingRule. -type AlertingRule struct { - Alert string `json:"alert"` - Annotations *map[string]string `json:"annotations,omitempty"` - Expr string `json:"expr"` - For *string `json:"for,omitempty"` - Labels *map[string]string `json:"labels,omitempty"` -} - -// AlertingRuleEvaluated defines model for AlertingRuleEvaluated. -type AlertingRuleEvaluated struct { - Alerts *[]ActiveAlert `json:"alerts,omitempty"` - Annotations *map[string]string `json:"annotations,omitempty"` - Duration *float32 `json:"duration,omitempty"` - EvaluationTime *float32 `json:"evaluationTime,omitempty"` - Health *string `json:"health,omitempty"` - Labels *map[string]string `json:"labels,omitempty"` - LastError *string `json:"lastError,omitempty"` - LastEvaluation *string `json:"lastEvaluation,omitempty"` - Name string `json:"name"` - Query string `json:"query"` - Type *AlertingRuleEvaluatedType `json:"type,omitempty"` -} - -// AlertingRuleEvaluatedType defines model for AlertingRuleEvaluated.Type. -type AlertingRuleEvaluatedType string - -// InstantVectors defines model for InstantVectors. -type InstantVectors struct { - Metric map[string]string `json:"metric"` - Values []ScalarOrString `json:"values"` -} - -// LogInstantQueryResponse defines model for LogInstantQueryResponse. -type LogInstantQueryResponse struct { - Result []LogInstantQueryResponse_Result_Item `json:"result"` - ResultType LogInstantQueryResponseResultType `json:"resultType"` -} - -// LogInstantQueryResponse_Result_Item defines model for LogInstantQueryResponse.result.Item. -type LogInstantQueryResponse_Result_Item struct { - union json.RawMessage -} - -// LogInstantQueryResponseResultType defines model for LogInstantQueryResponse.ResultType. -type LogInstantQueryResponseResultType string - -// LogRangeQueryResponse defines model for LogRangeQueryResponse. -type LogRangeQueryResponse struct { - Result []LogRangeQueryResponse_Result_Item `json:"result"` - ResultType LogRangeQueryResponseResultType `json:"resultType"` -} - -// LogRangeQueryResponse_Result_Item defines model for LogRangeQueryResponse.result.Item. -type LogRangeQueryResponse_Result_Item struct { - union json.RawMessage -} - -// LogRangeQueryResponseResultType defines model for LogRangeQueryResponse.ResultType. -type LogRangeQueryResponseResultType string - -// LogSeriesRequest defines model for LogSeriesRequest. -type LogSeriesRequest struct { - End *string `json:"end,omitempty"` - Match []string `json:"match[]"` - Start *string `json:"start,omitempty"` -} - -// MetricInstantQueryResponse defines model for MetricInstantQueryResponse. -type MetricInstantQueryResponse struct { - Result []MetricInstantQueryResponse_Result_Item `json:"result"` - ResultType MetricInstantQueryResponseResultType `json:"resultType"` -} - -// MetricInstantQueryResponse_Result_Item defines model for MetricInstantQueryResponse.result.Item. -type MetricInstantQueryResponse_Result_Item struct { - union json.RawMessage -} - -// MetricInstantQueryResponseResultType defines model for MetricInstantQueryResponse.ResultType. -type MetricInstantQueryResponseResultType string - -// MetricRangeQueryResponse defines model for MetricRangeQueryResponse. -type MetricRangeQueryResponse struct { - Result []MetricRangeQueryResponse_Result_Item `json:"result"` - ResultType MetricRangeQueryResponseResultType `json:"resultType"` -} - -// MetricRangeQueryResponse_Result_Item defines model for MetricRangeQueryResponse.result.Item. -type MetricRangeQueryResponse_Result_Item struct { - union json.RawMessage -} - -// MetricRangeQueryResponseResultType defines model for MetricRangeQueryResponse.ResultType. -type MetricRangeQueryResponseResultType string - -// PushLogs defines model for PushLogs. -type PushLogs struct { - Stream map[string]string `json:"stream"` - Values []ScalarOrString `json:"values"` -} - -// RangeVectors defines model for RangeVectors. -type RangeVectors struct { - Metric map[string]string `json:"metric"` - Values []ScalarOrString `json:"values"` -} - -// RecordingRule defines model for RecordingRule. -type RecordingRule struct { - Expr string `json:"expr"` - Labels *map[string]string `json:"labels,omitempty"` - Record string `json:"record"` -} - -// RecordingRuleEvaluated defines model for RecordingRuleEvaluated. -type RecordingRuleEvaluated struct { - EvaluationTime *float32 `json:"evaluationTime,omitempty"` - Health *string `json:"health,omitempty"` - Labels *map[string]string `json:"labels,omitempty"` - LastError *string `json:"lastError,omitempty"` - LastEvaluation *string `json:"lastEvaluation,omitempty"` - Name string `json:"name"` - Query string `json:"query"` - Type *RecordingRuleEvaluatedType `json:"type,omitempty"` -} - -// RecordingRuleEvaluatedType defines model for RecordingRuleEvaluated.Type. -type RecordingRuleEvaluatedType string - -// RuleGroup defines model for RuleGroup. -type RuleGroup struct { - Interval *float32 `json:"interval,omitempty"` - Name string `json:"name"` - Rules []RuleGroup_Rules_Item `json:"rules"` -} - -// RuleGroup_Rules_Item defines model for RuleGroup.rules.Item. -type RuleGroup_Rules_Item struct { - union json.RawMessage -} - -// RuleGroupEvaluated defines model for RuleGroupEvaluated. -type RuleGroupEvaluated struct { - EvaluationTime *float32 `json:"evaluationTime,omitempty"` - File *string `json:"file,omitempty"` - Interval *float32 `json:"interval,omitempty"` - LastEvaluation *string `json:"lastEvaluation,omitempty"` - Limit *float32 `json:"limit,omitempty"` - Name string `json:"name"` - PartialResponseStrategy *string `json:"partialResponseStrategy,omitempty"` - Rules []RuleGroupEvaluated_Rules_Item `json:"rules"` -} - -// RuleGroupEvaluated_Rules_Item defines model for RuleGroupEvaluated.rules.Item. -type RuleGroupEvaluated_Rules_Item struct { - union json.RawMessage -} - -// Rules defines model for Rules. -type Rules struct { - Groups []RuleGroupEvaluated `json:"groups"` -} - -// RulesRaw defines model for RulesRaw. -type RulesRaw struct { - Groups []RuleGroup `json:"groups"` -} - -// ScalarOrString defines model for ScalarOrString. -type ScalarOrString = []ScalarOrString_Item - -// ScalarOrString0 defines model for . -type ScalarOrString0 = string - -// ScalarOrString1 defines model for . -type ScalarOrString1 = string - -// ScalarOrString_Item defines model for ScalarOrString.Item. -type ScalarOrString_Item struct { - union json.RawMessage -} - -// StreamValues defines model for StreamValues. -type StreamValues struct { - Stream map[string]string `json:"stream"` - Values []ScalarOrString `json:"values"` -} - -// TailLogs defines model for TailLogs. -type TailLogs struct { - Labels map[string]string `json:"labels"` - Timestamp string `json:"timestamp"` -} - -// AsRangeVectors returns the union data inside the LogInstantQueryResponse_Result_Item as a RangeVectors -func (t LogInstantQueryResponse_Result_Item) AsRangeVectors() (RangeVectors, error) { - var body RangeVectors - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromRangeVectors overwrites any union data inside the LogInstantQueryResponse_Result_Item as the provided RangeVectors -func (t *LogInstantQueryResponse_Result_Item) FromRangeVectors(v RangeVectors) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeRangeVectors performs a merge with any union data inside the LogInstantQueryResponse_Result_Item, using the provided RangeVectors -func (t *LogInstantQueryResponse_Result_Item) MergeRangeVectors(v RangeVectors) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsInstantVectors returns the union data inside the LogInstantQueryResponse_Result_Item as a InstantVectors -func (t LogInstantQueryResponse_Result_Item) AsInstantVectors() (InstantVectors, error) { - var body InstantVectors - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromInstantVectors overwrites any union data inside the LogInstantQueryResponse_Result_Item as the provided InstantVectors -func (t *LogInstantQueryResponse_Result_Item) FromInstantVectors(v InstantVectors) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeInstantVectors performs a merge with any union data inside the LogInstantQueryResponse_Result_Item, using the provided InstantVectors -func (t *LogInstantQueryResponse_Result_Item) MergeInstantVectors(v InstantVectors) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsScalarOrString returns the union data inside the LogInstantQueryResponse_Result_Item as a ScalarOrString -func (t LogInstantQueryResponse_Result_Item) AsScalarOrString() (ScalarOrString, error) { - var body ScalarOrString - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromScalarOrString overwrites any union data inside the LogInstantQueryResponse_Result_Item as the provided ScalarOrString -func (t *LogInstantQueryResponse_Result_Item) FromScalarOrString(v ScalarOrString) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeScalarOrString performs a merge with any union data inside the LogInstantQueryResponse_Result_Item, using the provided ScalarOrString -func (t *LogInstantQueryResponse_Result_Item) MergeScalarOrString(v ScalarOrString) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsStreamValues returns the union data inside the LogInstantQueryResponse_Result_Item as a StreamValues -func (t LogInstantQueryResponse_Result_Item) AsStreamValues() (StreamValues, error) { - var body StreamValues - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromStreamValues overwrites any union data inside the LogInstantQueryResponse_Result_Item as the provided StreamValues -func (t *LogInstantQueryResponse_Result_Item) FromStreamValues(v StreamValues) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeStreamValues performs a merge with any union data inside the LogInstantQueryResponse_Result_Item, using the provided StreamValues -func (t *LogInstantQueryResponse_Result_Item) MergeStreamValues(v StreamValues) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t LogInstantQueryResponse_Result_Item) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *LogInstantQueryResponse_Result_Item) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} - -// AsRangeVectors returns the union data inside the LogRangeQueryResponse_Result_Item as a RangeVectors -func (t LogRangeQueryResponse_Result_Item) AsRangeVectors() (RangeVectors, error) { - var body RangeVectors - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromRangeVectors overwrites any union data inside the LogRangeQueryResponse_Result_Item as the provided RangeVectors -func (t *LogRangeQueryResponse_Result_Item) FromRangeVectors(v RangeVectors) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeRangeVectors performs a merge with any union data inside the LogRangeQueryResponse_Result_Item, using the provided RangeVectors -func (t *LogRangeQueryResponse_Result_Item) MergeRangeVectors(v RangeVectors) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t LogRangeQueryResponse_Result_Item) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *LogRangeQueryResponse_Result_Item) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} - -// AsRangeVectors returns the union data inside the MetricInstantQueryResponse_Result_Item as a RangeVectors -func (t MetricInstantQueryResponse_Result_Item) AsRangeVectors() (RangeVectors, error) { - var body RangeVectors - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromRangeVectors overwrites any union data inside the MetricInstantQueryResponse_Result_Item as the provided RangeVectors -func (t *MetricInstantQueryResponse_Result_Item) FromRangeVectors(v RangeVectors) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeRangeVectors performs a merge with any union data inside the MetricInstantQueryResponse_Result_Item, using the provided RangeVectors -func (t *MetricInstantQueryResponse_Result_Item) MergeRangeVectors(v RangeVectors) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsInstantVectors returns the union data inside the MetricInstantQueryResponse_Result_Item as a InstantVectors -func (t MetricInstantQueryResponse_Result_Item) AsInstantVectors() (InstantVectors, error) { - var body InstantVectors - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromInstantVectors overwrites any union data inside the MetricInstantQueryResponse_Result_Item as the provided InstantVectors -func (t *MetricInstantQueryResponse_Result_Item) FromInstantVectors(v InstantVectors) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeInstantVectors performs a merge with any union data inside the MetricInstantQueryResponse_Result_Item, using the provided InstantVectors -func (t *MetricInstantQueryResponse_Result_Item) MergeInstantVectors(v InstantVectors) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsScalarOrString returns the union data inside the MetricInstantQueryResponse_Result_Item as a ScalarOrString -func (t MetricInstantQueryResponse_Result_Item) AsScalarOrString() (ScalarOrString, error) { - var body ScalarOrString - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromScalarOrString overwrites any union data inside the MetricInstantQueryResponse_Result_Item as the provided ScalarOrString -func (t *MetricInstantQueryResponse_Result_Item) FromScalarOrString(v ScalarOrString) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeScalarOrString performs a merge with any union data inside the MetricInstantQueryResponse_Result_Item, using the provided ScalarOrString -func (t *MetricInstantQueryResponse_Result_Item) MergeScalarOrString(v ScalarOrString) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsStreamValues returns the union data inside the MetricInstantQueryResponse_Result_Item as a StreamValues -func (t MetricInstantQueryResponse_Result_Item) AsStreamValues() (StreamValues, error) { - var body StreamValues - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromStreamValues overwrites any union data inside the MetricInstantQueryResponse_Result_Item as the provided StreamValues -func (t *MetricInstantQueryResponse_Result_Item) FromStreamValues(v StreamValues) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeStreamValues performs a merge with any union data inside the MetricInstantQueryResponse_Result_Item, using the provided StreamValues -func (t *MetricInstantQueryResponse_Result_Item) MergeStreamValues(v StreamValues) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t MetricInstantQueryResponse_Result_Item) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *MetricInstantQueryResponse_Result_Item) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} - -// AsRangeVectors returns the union data inside the MetricRangeQueryResponse_Result_Item as a RangeVectors -func (t MetricRangeQueryResponse_Result_Item) AsRangeVectors() (RangeVectors, error) { - var body RangeVectors - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromRangeVectors overwrites any union data inside the MetricRangeQueryResponse_Result_Item as the provided RangeVectors -func (t *MetricRangeQueryResponse_Result_Item) FromRangeVectors(v RangeVectors) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeRangeVectors performs a merge with any union data inside the MetricRangeQueryResponse_Result_Item, using the provided RangeVectors -func (t *MetricRangeQueryResponse_Result_Item) MergeRangeVectors(v RangeVectors) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t MetricRangeQueryResponse_Result_Item) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *MetricRangeQueryResponse_Result_Item) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} - -// AsRecordingRule returns the union data inside the RuleGroup_Rules_Item as a RecordingRule -func (t RuleGroup_Rules_Item) AsRecordingRule() (RecordingRule, error) { - var body RecordingRule - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromRecordingRule overwrites any union data inside the RuleGroup_Rules_Item as the provided RecordingRule -func (t *RuleGroup_Rules_Item) FromRecordingRule(v RecordingRule) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeRecordingRule performs a merge with any union data inside the RuleGroup_Rules_Item, using the provided RecordingRule -func (t *RuleGroup_Rules_Item) MergeRecordingRule(v RecordingRule) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsAlertingRule returns the union data inside the RuleGroup_Rules_Item as a AlertingRule -func (t RuleGroup_Rules_Item) AsAlertingRule() (AlertingRule, error) { - var body AlertingRule - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromAlertingRule overwrites any union data inside the RuleGroup_Rules_Item as the provided AlertingRule -func (t *RuleGroup_Rules_Item) FromAlertingRule(v AlertingRule) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeAlertingRule performs a merge with any union data inside the RuleGroup_Rules_Item, using the provided AlertingRule -func (t *RuleGroup_Rules_Item) MergeAlertingRule(v AlertingRule) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t RuleGroup_Rules_Item) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *RuleGroup_Rules_Item) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} - -// AsRecordingRuleEvaluated returns the union data inside the RuleGroupEvaluated_Rules_Item as a RecordingRuleEvaluated -func (t RuleGroupEvaluated_Rules_Item) AsRecordingRuleEvaluated() (RecordingRuleEvaluated, error) { - var body RecordingRuleEvaluated - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromRecordingRuleEvaluated overwrites any union data inside the RuleGroupEvaluated_Rules_Item as the provided RecordingRuleEvaluated -func (t *RuleGroupEvaluated_Rules_Item) FromRecordingRuleEvaluated(v RecordingRuleEvaluated) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeRecordingRuleEvaluated performs a merge with any union data inside the RuleGroupEvaluated_Rules_Item, using the provided RecordingRuleEvaluated -func (t *RuleGroupEvaluated_Rules_Item) MergeRecordingRuleEvaluated(v RecordingRuleEvaluated) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsAlertingRuleEvaluated returns the union data inside the RuleGroupEvaluated_Rules_Item as a AlertingRuleEvaluated -func (t RuleGroupEvaluated_Rules_Item) AsAlertingRuleEvaluated() (AlertingRuleEvaluated, error) { - var body AlertingRuleEvaluated - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromAlertingRuleEvaluated overwrites any union data inside the RuleGroupEvaluated_Rules_Item as the provided AlertingRuleEvaluated -func (t *RuleGroupEvaluated_Rules_Item) FromAlertingRuleEvaluated(v AlertingRuleEvaluated) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeAlertingRuleEvaluated performs a merge with any union data inside the RuleGroupEvaluated_Rules_Item, using the provided AlertingRuleEvaluated -func (t *RuleGroupEvaluated_Rules_Item) MergeAlertingRuleEvaluated(v AlertingRuleEvaluated) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t RuleGroupEvaluated_Rules_Item) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *RuleGroupEvaluated_Rules_Item) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} - -// AsScalarOrString0 returns the union data inside the ScalarOrString_Item as a ScalarOrString0 -func (t ScalarOrString_Item) AsScalarOrString0() (ScalarOrString0, error) { - var body ScalarOrString0 - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromScalarOrString0 overwrites any union data inside the ScalarOrString_Item as the provided ScalarOrString0 -func (t *ScalarOrString_Item) FromScalarOrString0(v ScalarOrString0) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeScalarOrString0 performs a merge with any union data inside the ScalarOrString_Item, using the provided ScalarOrString0 -func (t *ScalarOrString_Item) MergeScalarOrString0(v ScalarOrString0) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsScalarOrString1 returns the union data inside the ScalarOrString_Item as a ScalarOrString1 -func (t ScalarOrString_Item) AsScalarOrString1() (ScalarOrString1, error) { - var body ScalarOrString1 - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromScalarOrString1 overwrites any union data inside the ScalarOrString_Item as the provided ScalarOrString1 -func (t *ScalarOrString_Item) FromScalarOrString1(v ScalarOrString1) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeScalarOrString1 performs a merge with any union data inside the ScalarOrString_Item, using the provided ScalarOrString1 -func (t *ScalarOrString_Item) MergeScalarOrString1(v ScalarOrString1) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t ScalarOrString_Item) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *ScalarOrString_Item) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} diff --git a/client/models/models.yaml b/client/models/models.yaml deleted file mode 100644 index 3758022d8..000000000 --- a/client/models/models.yaml +++ /dev/null @@ -1,372 +0,0 @@ -components: - schemas: - Rules: - type: object - required: - - groups - properties: - groups: - type: array - items: - $ref: "#/components/schemas/RuleGroupEvaluated" - RulesRaw: - type: object - required: - - groups - properties: - groups: - type: array - items: - $ref: "#/components/schemas/RuleGroup" - RuleGroup: - type: object - required: - - name - - rules - properties: - interval: - type: number - name: - type: string - example: "telemeter.rules" - rules: - type: array - items: - oneOf: - - $ref: "#/components/schemas/RecordingRule" - - $ref: "#/components/schemas/AlertingRule" - RuleGroupEvaluated: - type: object - required: - - name - - rules - properties: - interval: - type: number - name: - type: string - example: "telemeter.rules" - file: - type: string - example: "rules.yaml" - limit: - type: number - example: 0 - evaluationTime: - type: number - example: 0.002900887 - lastEvaluation: - type: string - example: "2022-02-20T15:32:12.759781322Z" - partialResponseStrategy: - type: string - example: "WARN" - rules: - type: array - items: - oneOf: - - $ref: "#/components/schemas/RecordingRuleEvaluated" - - $ref: "#/components/schemas/AlertingRuleEvaluated" - RecordingRule: - type: object - required: - - expr - - record - properties: - expr: - type: string - example: 'count by (name) (cluster{condition="halted"} == 1)' - record: - type: string - example: "count:cluster_halted" - labels: - type: object - additionalProperties: - type: string - RecordingRuleEvaluated: - type: object - required: - - query - - name - properties: - query: - type: string - example: 'count by (name) (cluster{condition="halted"} == 1)' - name: - type: string - example: "count:cluster_halted" - health: - type: string - example: "ok" - evaluationTime: - type: number - example: 0.002900887 - lastError: - type: string - lastEvaluation: - type: string - example: "2022-02-20T15:32:12.759781322Z" - type: - type: string - enum: - - recording - labels: - type: object - additionalProperties: - type: string - AlertingRule: - type: object - required: - - alert - - expr - properties: - alert: - type: string - example: "HighRequestLatency" - expr: - type: string - example: 'job:request_latency_seconds:mean5m{job="myjob"} > 0.5' - for: - type: string - example: "10m" - labels: - type: object - additionalProperties: - type: string - annotations: - type: object - additionalProperties: - type: string - AlertingRuleEvaluated: - type: object - required: - - query - - name - properties: - alerts: - type: array - items: - $ref: "#/components/schemas/ActiveAlert" - query: - type: string - example: 'job:request_latency_seconds:mean5m{job="myjob"} > 0.5' - name: - type: string - example: "count:cluster_halted" - health: - type: string - example: "ok" - evaluationTime: - type: number - example: 0.002900887 - lastError: - type: string - lastEvaluation: - type: string - example: "2022-02-20T15:32:12.759781322Z" - type: - type: string - enum: - - alerting - duration: - type: number - example: 600 - labels: - type: object - additionalProperties: - type: string - annotations: - type: object - additionalProperties: - type: string - ActiveAlert: - type: object - required: - - activeAt - - state - - value - properties: - activeAt: - type: string - example: "2018-07-04T20:27:12.60602144+02:00" - labels: - type: object - additionalProperties: - type: string - annotations: - type: object - additionalProperties: - type: string - state: - type: string - example: "firing" - value: - type: string - example: "1e+00" - MetricInstantQueryResponse: - type: object - required: - - resultType - - result - properties: - resultType: - type: string - enum: - - matrix - - vector - - scalar - - string - - streams - result: - type: array - items: - oneOf: - - $ref: "#/components/schemas/RangeVectors" #matrix - - $ref: "#/components/schemas/InstantVectors" #vector - - $ref: "#/components/schemas/ScalarOrString" # scalar or string - - $ref: "#/components/schemas/StreamValues" #streams - MetricRangeQueryResponse: - type: object - required: - - resultType - - result - properties: - resultType: - type: string - enum: - - matrix - result: - type: array - items: - oneOf: - - $ref: "#/components/schemas/RangeVectors" - RangeVectors: - type: object - required: - - metric - - values - properties: - metric: - type: object - additionalProperties: - type: string - values: - type: array - items: - type: array - $ref: "#/components/schemas/ScalarOrString" - InstantVectors: - type: object - required: - - metric - - values - properties: - metric: - type: object - additionalProperties: - type: string - values: - type: array - items: - $ref: "#/components/schemas/ScalarOrString" - StreamValues: - type: object - required: - - stream - - values - properties: - stream: - type: object - additionalProperties: - type: string - values: - type: array - items: - $ref: "#/components/schemas/ScalarOrString" - PushLogs: - type: object - required: - - stream - - values - properties: - stream: - type: object - additionalProperties: - type: string - values: - type: array - items: - $ref: "#/components/schemas/ScalarOrString" - TailLogs: - type: object - required: - - labels - - timestamp - properties: - labels: - type: object - additionalProperties: - type: string - timestamp: - type: string - format: unix_timestamp - ScalarOrString: - type: array - items: - oneOf: - - type: string - format: unix_timestamp - - type: string - format: sample_value - LogSeriesRequest: - type: object - required: - - match[] - properties: - match[]: - type: array - items: - type: string - start: - type: string - format: rfc3339 | unix_timestamp - end: - type: string - format: rfc3339 | unix_timestamp - LogInstantQueryResponse: - type: object - required: - - resultType - - result - properties: - resultType: - type: string - enum: - - matrix - - vector - - scalar - - string - - streams - result: - type: array - items: - oneOf: - - $ref: "#/components/schemas/RangeVectors" #matrix - - $ref: "#/components/schemas/InstantVectors" #vector - - $ref: "#/components/schemas/ScalarOrString" # scalar or string - - $ref: "#/components/schemas/StreamValues" #streams - LogRangeQueryResponse: - type: object - required: - - resultType - - result - properties: - resultType: - type: string - enum: - - matrix - result: - type: array - items: - oneOf: - - $ref: "#/components/schemas/RangeVectors" diff --git a/client/parameters/parameters.gen.go b/client/parameters/parameters.gen.go deleted file mode 100644 index f638e821f..000000000 --- a/client/parameters/parameters.gen.go +++ /dev/null @@ -1,43 +0,0 @@ -// Package parameters provides primitives to interact with the openapi HTTP API. -// -// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.1 DO NOT EDIT. -package parameters - -// EndTS defines model for endTS. -type EndTS = string - -// Limit defines model for limit. -type Limit = float32 - -// LogRulesGroup defines model for logRulesGroup. -type LogRulesGroup = string - -// LogRulesNamespace defines model for logRulesNamespace. -type LogRulesNamespace = string - -// LogqlQuery defines model for logqlQuery. -type LogqlQuery = string - -// OptionalSeriesMatcher defines model for optionalSeriesMatcher. -type OptionalSeriesMatcher = []string - -// PromqlQuery defines model for promqlQuery. -type PromqlQuery = string - -// QueryDedup defines model for queryDedup. -type QueryDedup = bool - -// QueryPartialResponse defines model for queryPartialResponse. -type QueryPartialResponse = bool - -// QueryTimeout defines model for queryTimeout. -type QueryTimeout = string - -// SeriesMatcher defines model for seriesMatcher. -type SeriesMatcher = []string - -// StartTS defines model for startTS. -type StartTS = string - -// Tenant defines model for tenant. -type Tenant = string diff --git a/client/parameters/parameters.yaml b/client/parameters/parameters.yaml deleted file mode 100644 index a02ff118f..000000000 --- a/client/parameters/parameters.yaml +++ /dev/null @@ -1,90 +0,0 @@ -components: - parameters: - tenant: - in: path - name: tenant - description: name of the tenant - required: true - schema: - type: string - seriesMatcher: - in: query - name: match[] - description: Repeated series selector argument - required: true - schema: - type: array - items: - type: string - optionalSeriesMatcher: - in: query - name: match[] - description: Repeated series selector argument - schema: - type: array - items: - type: string - startTS: - in: query - name: start - description: Start timestamp - schema: - type: string - format: rfc3339 | unix_timestamp - endTS: - in: query - name: end - description: End timestamp - schema: - type: string - format: rfc3339 | unix_timestamp - promqlQuery: - in: query - name: query - description: PromQL query to fetch result for metrics - schema: - type: string - logqlQuery: - in: query - name: query - description: LogQL query to fetch result for logs - schema: - type: string - queryTimeout: - in: query - name: timeout - description: Evaluation timeout - schema: - type: string - limit: - in: query - name: limit - description: Max number of entries - schema: - type: number - queryDedup: - in: query - name: dedup - description: Query deduplication (Thanos) - schema: - type: boolean - queryPartialResponse: - in: query - name: partial_response - description: Query partial response (Thanos) - schema: - type: boolean - logRulesNamespace: - in: path - name: namespace - description: namespace of the log rule group - required: true - schema: - type: string - logRulesGroup: - in: path - name: group - description: group of the log rule - required: true - schema: - type: string diff --git a/client/responses/responses.gen.go b/client/responses/responses.gen.go deleted file mode 100644 index 1b4c3de6c..000000000 --- a/client/responses/responses.gen.go +++ /dev/null @@ -1,151 +0,0 @@ -// Package responses provides primitives to interact with the openapi HTTP API. -// -// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.1 DO NOT EDIT. -package responses - -import ( - externalRef0 "github.com/observatorium/api/client/models" -) - -// AllLogRulesResponse defines model for AllLogRulesResponse. -type AllLogRulesResponse = map[string]interface{} - -// LogLabelValuesResponse defines model for LogLabelValuesResponse. -type LogLabelValuesResponse struct { - Data []string `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// LogLabelsResponse defines model for LogLabelsResponse. -type LogLabelsResponse struct { - Data []string `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// LogQueryRangeResponse defines model for LogQueryRangeResponse. -type LogQueryRangeResponse struct { - Data externalRef0.LogRangeQueryResponse `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// LogQueryResponse defines model for LogQueryResponse. -type LogQueryResponse struct { - Data externalRef0.LogInstantQueryResponse `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// LogReadResponse defines model for LogReadResponse. -type LogReadResponse struct { - DroppedEntries *[]externalRef0.TailLogs `json:"dropped_entries,omitempty"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Items *string `json:"items,omitempty"` - Status string `json:"status"` - Streams []externalRef0.PushLogs `json:"streams"` - Warnings *[]interface{} `json:"warnings,omitempty"` -} - -// LogRulesGroupResponse defines model for LogRulesGroupResponse. -type LogRulesGroupResponse struct { - Interval *string `json:"interval,omitempty"` - Name string `json:"name"` - Rules []externalRef0.RulesRaw `json:"rules"` -} - -// LogRulesNamespaceResponse defines model for LogRulesNamespaceResponse. -type LogRulesNamespaceResponse struct { - Groups []externalRef0.RuleGroup `json:"groups"` -} - -// LogRulesPrometheusResponse defines model for LogRulesPrometheusResponse. -type LogRulesPrometheusResponse struct { - Data externalRef0.Rules `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// LogSeriesResponse defines model for LogSeriesResponse. -type LogSeriesResponse struct { - Data []map[string]string `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// LogWriteResponse defines model for LogWriteResponse. -type LogWriteResponse struct { - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Streams []externalRef0.PushLogs `json:"streams"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// MetricLabelValuesResponse defines model for MetricLabelValuesResponse. -type MetricLabelValuesResponse struct { - Data []string `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// MetricLabelsResponse defines model for MetricLabelsResponse. -type MetricLabelsResponse struct { - Data []string `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// MetricQueryRangeResponse defines model for MetricQueryRangeResponse. -type MetricQueryRangeResponse struct { - Data externalRef0.MetricRangeQueryResponse `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// MetricQueryResponse defines model for MetricQueryResponse. -type MetricQueryResponse struct { - Data externalRef0.MetricInstantQueryResponse `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// MetricRulesResponse defines model for MetricRulesResponse. -type MetricRulesResponse struct { - Data externalRef0.Rules `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} - -// MetricSeriesResponse defines model for MetricSeriesResponse. -type MetricSeriesResponse struct { - Data []map[string]string `json:"data"` - Error *string `json:"error,omitempty"` - ErrorType *string `json:"errorType,omitempty"` - Status string `json:"status"` - Warnings *[]string `json:"warnings,omitempty"` -} diff --git a/client/responses/responses.yaml b/client/responses/responses.yaml deleted file mode 100644 index 34ff724af..000000000 --- a/client/responses/responses.yaml +++ /dev/null @@ -1,330 +0,0 @@ -components: - schemas: - # metrics - MetricSeriesResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - data: - type: array - items: - type: object - additionalProperties: - type: string - MetricQueryResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - data: - type: object - $ref: "../models/models.yaml#/components/schemas/MetricInstantQueryResponse" - MetricQueryRangeResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - data: - type: object - $ref: "../models/models.yaml#/components/schemas/MetricRangeQueryResponse" - MetricLabelsResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - data: - type: array - items: - type: string - MetricLabelValuesResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - data: - type: array - items: - type: string - example: "node" - MetricRulesResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - data: - type: object - $ref: "../models/models.yaml#/components/schemas/Rules" - # Logs - LogSeriesResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - data: - type: array - items: - type: object - additionalProperties: - type: string - LogQueryResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - data: - type: object - $ref: "../models/models.yaml#/components/schemas/LogInstantQueryResponse" - LogQueryRangeResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - data: - type: object - $ref: "../models/models.yaml#/components/schemas/LogRangeQueryResponse" - LogLabelsResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - data: - type: array - items: - type: string - LogLabelValuesResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - data: - type: array - items: - type: string - example: "node" - LogWriteResponse: - type: object - required: - - status - - streams - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - streams: - type: array - items: - type: object - $ref: "../models/models.yaml#/components/schemas/PushLogs" - LogReadResponse: - type: object - required: - - status - - streams - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - streams: - type: array - items: - type: object - $ref: "../models/models.yaml#/components/schemas/PushLogs" - dropped_entries: - type: array - items: - type: object - $ref: "../models/models.yaml#/components/schemas/TailLogs" - AllLogRulesResponse: - type: object - LogRulesNamespaceResponse: - type: object - required: - - groups - properties: - groups: - type: array - items: - type: object - $ref: "../models/models.yaml#/components/schemas/RuleGroup" - LogRulesGroupResponse: - type: object - required: - - name - - rules - properties: - name: - type: string - interval: - type: string - rules: - type: array - items: - type: object - $ref: "../models/models.yaml#/components/schemas/RulesRaw" - LogRulesPrometheusResponse: - type: object - required: - - status - - data - properties: - error: - type: string - errorType: - type: string - warnings: - type: array - items: - type: string - status: - type: string - example: "success" - data: - type: object - $ref: "../models/models.yaml#/components/schemas/Rules" diff --git a/client/spec.yaml b/client/spec.yaml index cef2249a7..4ddaef3e0 100644 --- a/client/spec.yaml +++ b/client/spec.yaml @@ -1,47 +1,25 @@ openapi: 3.0.0 info: description: The Observatorium API - version: "0.0.1" + version: 0.0.1 title: Observatorium API license: name: Apache 2.0 - url: "http://www.apache.org/licenses/LICENSE-2.0.html" + url: http://www.apache.org/licenses/LICENSE-2.0.html x-logo: - url: 'https://observatorium.io/observatorium.png' - altText: 'Observatorium logo' + url: https://observatorium.io/observatorium.png + altText: Observatorium logo tags: - name: observatoriumv1 description: Calls related to Observatorium - - name: metrics - description: Calls related to metric endpoints - - name: logs - description: Calls related to logs endpoint -x-tagGroups: - name: metrics - tags: - - metrics/rulesrawv1 - - metrics/rulesv1 - - metrics/labelsv1 - - metrics/labelvaluesv1 - - metrics/queryv1 - - metrics/seriesv1 + description: Calls related to metric endpoints - name: logs - tags: - - logs/pushv1 - - logs/labelsv1 - - logs/labelvaluesv1 - - logs/queryv1 - - logs/rulesrawv1 - - logs/rulesv1 - - logs/seriesv1 - - logs/tailV1 - -# Keeping all the API paths here, but likely need to separate it out to another file, -# once paths for other signals are also added. + description: Calls related to logs endpoint paths: /api/metrics/v1/{tenant}/api/v1/rules/raw: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant + - $ref: '#/components/parameters/tenant' get: tags: - metrics/rulesrawv1 @@ -50,17 +28,17 @@ paths: description: | You can list all configured rules for a tenant in YAML form responses: - "200": + '200': description: all rules for a tenant content: application/yaml: schema: - $ref: ./models/models.yaml#/components/schemas/RulesRaw - "401": + $ref: '#/components/schemas/RulesRaw' + '401': description: error finding tenant ID - "403": + '403': description: unauthorized - "500": + '500': description: server side error while listing rules put: tags: @@ -69,23 +47,23 @@ paths: operationId: setRawRules description: You can set rules for a tenant responses: - "200": + '200': description: successfully updated rules file - "401": + '401': description: error finding tenant ID - "403": + '403': description: unauthorized - "500": + '500': description: server error while saving rules requestBody: content: application/yaml: schema: - $ref: ./models/models.yaml#/components/schemas/RulesRaw + $ref: '#/components/schemas/RulesRaw' description: Rules to set for a tenant /api/metrics/v1/{tenant}/api/v1/rules: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant + - $ref: '#/components/parameters/tenant' - in: query name: type description: type of Rules @@ -109,22 +87,22 @@ paths: description: | You can get rules for a tenant with health data responses: - "2XX": + 2XX: description: rule for a tenant content: application/json: schema: - $ref: "./responses/responses.yaml#/components/schemas/MetricRulesResponse" - "4XX": + $ref: '#/components/schemas/MetricRulesResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error /api/metrics/v1/{tenant}/api/v1/labels: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant - - $ref: ./parameters/parameters.yaml#/components/parameters/optionalSeriesMatcher - - $ref: ./parameters/parameters.yaml#/components/parameters/startTS - - $ref: ./parameters/parameters.yaml#/components/parameters/endTS + - $ref: '#/components/parameters/tenant' + - $ref: '#/components/parameters/optionalSeriesMatcher' + - $ref: '#/components/parameters/startTS' + - $ref: '#/components/parameters/endTS' get: tags: - metrics/labelsv1 @@ -133,28 +111,28 @@ paths: description: | You can get labels for a tenant responses: - "2XX": + 2XX: description: labels for a tenant content: application/json: schema: - $ref: ./responses/responses.yaml#/components/schemas/MetricLabelsResponse - "4XX": + $ref: '#/components/schemas/MetricLabelsResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error /api/metrics/v1/{tenant}/api/v1/label/{label_name}/values: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant + - $ref: '#/components/parameters/tenant' - in: path name: label_name description: label name to get values for required: true schema: type: string - - $ref: ./parameters/parameters.yaml#/components/parameters/optionalSeriesMatcher - - $ref: ./parameters/parameters.yaml#/components/parameters/startTS - - $ref: ./parameters/parameters.yaml#/components/parameters/endTS + - $ref: '#/components/parameters/optionalSeriesMatcher' + - $ref: '#/components/parameters/startTS' + - $ref: '#/components/parameters/endTS' get: tags: - metrics/labelvaluesv1 @@ -163,23 +141,23 @@ paths: description: | You can get label values for a label of a tenant responses: - "2XX": + 2XX: description: label values for a tenant content: application/json: schema: - $ref: ./responses/responses.yaml#/components/schemas/MetricLabelValuesResponse - "4XX": + $ref: '#/components/schemas/MetricLabelValuesResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error /api/metrics/v1/{tenant}/api/v1/query: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant - - $ref: ./parameters/parameters.yaml#/components/parameters/promqlQuery - - $ref: ./parameters/parameters.yaml#/components/parameters/queryTimeout - - $ref: ./parameters/parameters.yaml#/components/parameters/queryDedup - - $ref: ./parameters/parameters.yaml#/components/parameters/queryPartialResponse + - $ref: '#/components/parameters/tenant' + - $ref: '#/components/parameters/promqlQuery' + - $ref: '#/components/parameters/queryTimeout' + - $ref: '#/components/parameters/queryDedup' + - $ref: '#/components/parameters/queryPartialResponse' - in: query name: time description: Evaluation timestamp @@ -194,25 +172,25 @@ paths: description: | You can evaluate instant queries for a tenant responses: - "2XX": + 2XX: description: instance query result for a tenant content: application/json: schema: - $ref: ./responses/responses.yaml#/components/schemas/MetricQueryResponse - "4XX": + $ref: '#/components/schemas/MetricQueryResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error /api/metrics/v1/{tenant}/api/v1/query_range: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant - - $ref: ./parameters/parameters.yaml#/components/parameters/promqlQuery - - $ref: ./parameters/parameters.yaml#/components/parameters/startTS - - $ref: ./parameters/parameters.yaml#/components/parameters/endTS - - $ref: ./parameters/parameters.yaml#/components/parameters/queryTimeout - - $ref: ./parameters/parameters.yaml#/components/parameters/queryDedup - - $ref: ./parameters/parameters.yaml#/components/parameters/queryPartialResponse + - $ref: '#/components/parameters/tenant' + - $ref: '#/components/parameters/promqlQuery' + - $ref: '#/components/parameters/startTS' + - $ref: '#/components/parameters/endTS' + - $ref: '#/components/parameters/queryTimeout' + - $ref: '#/components/parameters/queryDedup' + - $ref: '#/components/parameters/queryPartialResponse' - in: query name: step description: Query resolution step width @@ -226,22 +204,22 @@ paths: description: | You can evaluate range queries for a tenant responses: - "2XX": + 2XX: description: range query result for a tenant content: application/json: schema: - $ref: ./responses/responses.yaml#/components/schemas/MetricQueryRangeResponse - "4XX": + $ref: '#/components/schemas/MetricQueryRangeResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error /api/metrics/v1/{tenant}/api/v1/series: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant - - $ref: ./parameters/parameters.yaml#/components/parameters/seriesMatcher - - $ref: ./parameters/parameters.yaml#/components/parameters/startTS - - $ref: ./parameters/parameters.yaml#/components/parameters/endTS + - $ref: '#/components/parameters/tenant' + - $ref: '#/components/parameters/seriesMatcher' + - $ref: '#/components/parameters/startTS' + - $ref: '#/components/parameters/endTS' get: tags: - metrics/seriesv1 @@ -250,19 +228,171 @@ paths: description: | You can get series for a tenant responses: - "2XX": + 2XX: description: series for a tenant content: application/json: schema: - $ref: ./responses/responses.yaml#/components/schemas/MetricSeriesResponse - "4XX": + $ref: '#/components/schemas/MetricSeriesResponse' + 4XX: + description: Bad request + 5XX: + description: Server side error + /api/metrics/v1/{tenant}/am/api/v2/alerts: + parameters: + - $ref: '#/components/parameters/tenant' + - in: query + name: active + description: Include active alerts in results. If false, excludes active alerts and returns only suppressed (silenced or inhibited) alerts. + schema: + type: boolean + default: true + - in: query + name: silenced + description: Include silenced alerts in results. If false, excludes silenced alerts. Note that true (default) shows both silenced and non-silenced alerts. + schema: + type: boolean + default: true + - in: query + name: inhibited + description: Include inhibited alerts in results. If false, excludes inhibited alerts. Note that true (default) shows both inhibited and non-inhibited alerts. + schema: + type: boolean + default: true + - in: query + name: unprocessed + description: Include unprocessed alerts in results. If false, excludes unprocessed alerts. Note that true (default) shows both processed and unprocessed alerts. + schema: + type: boolean + default: true + - in: query + name: receiver + description: A regex matching receivers to filter alerts by + schema: + type: string + - in: query + name: filter + description: A matcher expression to filter alerts. For example `alertname="MyAlert"`. It can be repeated to apply multiple matchers. + schema: + type: array + items: + type: string + get: + tags: + - metrics/alertmanagerv2 + summary: Get list of alerts from Alertmanager + operationId: getAlerts + description: | + Get list of alerts from Alertmanager for a tenant + responses: + 2XX: + description: List of alerts + content: + application/json: + schema: + $ref: '#/components/schemas/GettableAlerts' + 4XX: + description: Bad request + 5XX: + description: Server side error + /api/metrics/v1/{tenant}/am/api/v2/silences: + parameters: + - $ref: '#/components/parameters/tenant' + - in: query + name: filter + description: A matcher expression to filter silences. For example `alertname="MyAlert"`. It can be repeated to apply multiple matchers. + schema: + type: array + items: + type: string + get: + tags: + - metrics/alertmanagerv2 + summary: Get list of silences from Alertmanager + operationId: getSilences + description: | + Get list of silences from Alertmanager for a tenant + responses: + 2XX: + description: List of silences + content: + application/json: + schema: + $ref: '#/components/schemas/GettableSilences' + 4XX: description: Bad request - "5XX": + 5XX: + description: Server side error + post: + tags: + - metrics/alertmanagerv2 + summary: Create a new silence in Alertmanager + operationId: postSilence + description: | + Post a new silence or update an existing one + requestBody: + description: The silence to create + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PostableSilence' + responses: + 2XX: + description: Silence created successfully + content: + application/json: + schema: + $ref: '#/components/schemas/PostableSilenceResponse' + 4XX: + description: Bad request + 5XX: + description: Server side error + /api/metrics/v1/{tenant}/am/api/v2/silence/{silenceID}: + parameters: + - $ref: '#/components/parameters/tenant' + - in: path + name: silenceID + required: true + description: ID of the silence to get + schema: + type: string + format: uuid + get: + tags: + - metrics/alertmanagerv2 + summary: Get a silence by its ID + operationId: getSilence + description: | + Get a silence by its ID + responses: + '404': + description: A silence with the specified ID was not found + 2XX: + description: Get silence response + content: + application/json: + schema: + $ref: '#/components/schemas/GettableSilence' + 5XX: + description: Server side error + delete: + tags: + - metrics/alertmanagerv2 + summary: Delete a silence by its ID + operationId: deleteSilence + description: | + Delete a silence by its ID + responses: + '404': + description: A silence with the specified ID was not found + 2XX: + description: Delete silence response + 5XX: description: Server side error /api/logs/v1/{tenant}/loki/api/v1/push: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant + - $ref: '#/components/parameters/tenant' post: tags: - logs/pushv1 @@ -274,21 +404,21 @@ paths: content: application/json: schema: - $ref: ./models/models.yaml#/components/schemas/PushLogs + $ref: '#/components/schemas/PushLogs' responses: - "204": + '204': description: writes all log entries of corresponding tenenat to Loki - "401": + '401': description: error finding tenant ID - "403": + '403': description: unauthorized - "500": + '500': description: server side error while pushing logs /api/logs/v1/{tenant}/loki/api/v1/labels: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant - - $ref: ./parameters/parameters.yaml#/components/parameters/startTS - - $ref: ./parameters/parameters.yaml#/components/parameters/endTS + - $ref: '#/components/parameters/tenant' + - $ref: '#/components/parameters/startTS' + - $ref: '#/components/parameters/endTS' get: tags: - logs/labelsv1 @@ -297,27 +427,27 @@ paths: description: | You can get labels for a tenant responses: - "2XX": + 2XX: description: labels for a tenant content: application/json: schema: - $ref: ./responses/responses.yaml#/components/schemas/LogLabelsResponse - "4XX": + $ref: '#/components/schemas/LogLabelsResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error while getting labels /api/logs/v1/{tenant}/loki/api/v1/label/{name}/values: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant + - $ref: '#/components/parameters/tenant' - in: path name: name description: label name to get values for required: true schema: - type: string - - $ref: ./parameters/parameters.yaml#/components/parameters/startTS - - $ref: ./parameters/parameters.yaml#/components/parameters/endTS + type: string + - $ref: '#/components/parameters/startTS' + - $ref: '#/components/parameters/endTS' get: tags: - logs/labelvaluesv1 @@ -326,22 +456,22 @@ paths: description: | You can get label values for a label of a tenant responses: - "2XX": + 2XX: description: label values for a tenant content: application/json: schema: - $ref: ./responses/responses.yaml#/components/schemas/LogLabelValuesResponse - "4XX": + $ref: '#/components/schemas/LogLabelValuesResponse' + 4XX: description: Bad request - "5XX": - description: Server side error while getting label values + 5XX: + description: Server side error while getting label values /api/logs/v1/{tenant}/loki/api/v1/series: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant - - $ref: ./parameters/parameters.yaml#/components/parameters/seriesMatcher - - $ref: ./parameters/parameters.yaml#/components/parameters/startTS - - $ref: ./parameters/parameters.yaml#/components/parameters/endTS + - $ref: '#/components/parameters/tenant' + - $ref: '#/components/parameters/seriesMatcher' + - $ref: '#/components/parameters/startTS' + - $ref: '#/components/parameters/endTS' get: tags: - logs/seriesv1 @@ -350,16 +480,16 @@ paths: description: | You can get series for a tenant responses: - "2XX": + 2XX: description: series for a tenant content: application/json: schema: - $ref: ./responses/responses.yaml#/components/schemas/LogSeriesResponse - "4XX": + $ref: '#/components/schemas/LogSeriesResponse' + 4XX: description: Bad request - "5XX": - description: Server side error while getting series + 5XX: + description: Server side error while getting series post: tags: - logs/seriesv1 @@ -383,20 +513,19 @@ paths: type: string format: rfc3339 | unix_timestamp responses: - "201": + '201': description: successfully writes series to tenant - "401": + '401': description: error finding tenant ID - "403": + '403': description: unauthorized - "500": - description: server side error while writing series - + '500': + description: server side error while writing series /api/logs/v1/{tenant}/loki/api/v1/query: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant - - $ref: ./parameters/parameters.yaml#/components/parameters/logqlQuery - - $ref: ./parameters/parameters.yaml#/components/parameters/limit + - $ref: '#/components/parameters/tenant' + - $ref: '#/components/parameters/logqlQuery' + - $ref: '#/components/parameters/limit' - in: query name: time description: Evaluation timestamp @@ -416,23 +545,23 @@ paths: description: | You can evaluate instant queries for a tenant responses: - "2XX": + 2XX: description: instance query result for a tenant content: application/json: schema: - $ref: ./responses/responses.yaml#/components/schemas/LogQueryResponse - "4XX": + $ref: '#/components/schemas/LogQueryResponse' + 4XX: description: Bad request - "5XX": - description: Server side error while getting queries + 5XX: + description: Server side error while getting queries /api/logs/v1/{tenant}/loki/api/v1/query_range: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant - - $ref: ./parameters/parameters.yaml#/components/parameters/logqlQuery - - $ref: ./parameters/parameters.yaml#/components/parameters/startTS - - $ref: ./parameters/parameters.yaml#/components/parameters/endTS - - $ref: ./parameters/parameters.yaml#/components/parameters/limit + - $ref: '#/components/parameters/tenant' + - $ref: '#/components/parameters/logqlQuery' + - $ref: '#/components/parameters/startTS' + - $ref: '#/components/parameters/endTS' + - $ref: '#/components/parameters/limit' - in: query name: step description: Query resolution step width @@ -456,24 +585,24 @@ paths: description: | You can evaluate range queries for a tenant responses: - "2XX": + 2XX: description: range query result for a tenant content: application/json: schema: - $ref: ./responses/responses.yaml#/components/schemas/LogQueryRangeResponse - "4XX": + $ref: '#/components/schemas/LogQueryRangeResponse' + 4XX: description: Bad request - "5XX": - description: Server side error while getting range queries + 5XX: + description: Server side error while getting range queries /api/logs/v1/{tenant}/loki/api/v1/tail: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant - - $ref: ./parameters/parameters.yaml#/components/parameters/startTS - - $ref: ./parameters/parameters.yaml#/components/parameters/logqlQuery + - $ref: '#/components/parameters/tenant' + - $ref: '#/components/parameters/startTS' + - $ref: '#/components/parameters/logqlQuery' - in: query name: delay - description: delay retrieving logs + description: delay retrieving logs schema: type: integer oneOf: @@ -482,24 +611,24 @@ paths: get: tags: - logs/tailV1 - summary: lists log messages based on query - operationId: getLogs + summary: lists log messages based on query + operationId: getLogs description: | You can get log messages based on query responses: - "2XX": + 2XX: description: logs for a tenant content: application/json: schema: - $ref: ./responses/responses.yaml#/components/schemas/LogReadResponse - "4XX": + $ref: '#/components/schemas/LogReadResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error while tailing logs /api/logs/v1/{tenant}/loki/api/v1/rules: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant + - $ref: '#/components/parameters/tenant' get: tags: - logs/rulesrawv1 @@ -508,20 +637,20 @@ paths: description: | You can get all logs rules for a tenant in YAML form for all known namespaces and groups. responses: - "2XX": + 2XX: description: All logs rules for a tenant content: application/yaml: schema: - $ref: "./responses/responses.yaml#/components/schemas/AllLogRulesResponse" - "4XX": + $ref: '#/components/schemas/AllLogRulesResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error /api/logs/v1/{tenant}/loki/api/v1/rules/{namespace}: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant - - $ref: ./parameters/parameters.yaml#/components/parameters/logRulesNamespace + - $ref: '#/components/parameters/tenant' + - $ref: '#/components/parameters/logRulesNamespace' get: tags: - logs/rulesrawv1 @@ -530,15 +659,15 @@ paths: description: | You can get all logs rules in a namespace for a tenant. responses: - "2XX": + 2XX: description: All rule groups in a namespace for a tenant content: application/yaml: schema: - $ref: "./responses/responses.yaml#/components/schemas/LogRulesNamespaceResponse" - "4XX": + $ref: '#/components/schemas/LogRulesNamespaceResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error post: tags: @@ -561,14 +690,14 @@ paths: type: array items: anyOf: - - $ref: "./models/models.yaml#/components/schemas/RecordingRule" - - $ref: "./models/models.yaml#/components/schemas/AlertingRule" + - $ref: '#/components/schemas/RecordingRule' + - $ref: '#/components/schemas/AlertingRule' responses: - "2XX": + 2XX: description: Successfully created and/or updated rule groups in a namespace for a tenant - "4XX": + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error delete: tags: @@ -578,17 +707,17 @@ paths: description: | You can delete all the rule groups in a namespace (including the namespace itself). responses: - "202": + '202': description: Successfully deleted all rule groups in a namespace including the namespace itself - "4XX": + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error /api/logs/v1/{tenant}/loki/api/v1/rules/{namespace}/{group}: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant - - $ref: ./parameters/parameters.yaml#/components/parameters/logRulesNamespace - - $ref: ./parameters/parameters.yaml#/components/parameters/logRulesGroup + - $ref: '#/components/parameters/tenant' + - $ref: '#/components/parameters/logRulesNamespace' + - $ref: '#/components/parameters/logRulesGroup' get: tags: - logs/rulesrawv1 @@ -597,15 +726,15 @@ paths: description: | You get the logs Rule group in a namespace for a tenant responses: - "2XX": + 2XX: description: rule group for a tenant content: application/yaml: schema: - $ref: "./responses/responses.yaml#/components/schemas/LogRulesGroupResponse" - "4XX": + $ref: '#/components/schemas/LogRulesGroupResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error delete: tags: @@ -615,15 +744,15 @@ paths: description: | You delete a rule group by namespace and group name for a tenant. responses: - "202": + '202': description: Successfully deleted a rule group in a namespace for a tenant - "4XX": + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error /api/logs/v1/{tenant}/prometheus/api/v1/rules: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant + - $ref: '#/components/parameters/tenant' get: tags: - logs/rulesv1 @@ -632,19 +761,19 @@ paths: description: | Prometheus-compatible rules endpoint to list alerting and recording rules that are currently loaded for a tenant. responses: - "2XX": + 2XX: description: All rules for a tenant content: application/json: schema: - $ref: "./responses/responses.yaml#/components/schemas/LogRulesPrometheusResponse" - "4XX": + $ref: '#/components/schemas/LogRulesPrometheusResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error /api/logs/v1/{tenant}/prometheus/api/v1/alerts: parameters: - - $ref: ./parameters/parameters.yaml#/components/parameters/tenant + - $ref: '#/components/parameters/tenant' get: tags: - logs/rulesv1 @@ -653,13 +782,950 @@ paths: description: | Prometheus-compatible rules endpoint to list all active alerts for a tenant. responses: - "2XX": + 2XX: description: All active alerts for a tenant content: application/json: schema: - $ref: "./responses/responses.yaml#/components/schemas/LogRulesPrometheusResponse" - "4XX": + $ref: '#/components/schemas/LogRulesPrometheusResponse' + 4XX: description: Bad request - "5XX": + 5XX: description: Server side error +components: + parameters: + tenant: + in: path + name: tenant + description: name of the tenant + required: true + schema: + type: string + optionalSeriesMatcher: + in: query + name: match[] + description: Repeated series selector argument + schema: + type: array + items: + type: string + startTS: + in: query + name: start + description: Start timestamp + schema: + type: string + format: rfc3339 | unix_timestamp + endTS: + in: query + name: end + description: End timestamp + schema: + type: string + format: rfc3339 | unix_timestamp + promqlQuery: + in: query + name: query + description: PromQL query to fetch result for metrics + schema: + type: string + queryTimeout: + in: query + name: timeout + description: Evaluation timeout + schema: + type: string + queryDedup: + in: query + name: dedup + description: Query deduplication (Thanos) + schema: + type: boolean + queryPartialResponse: + in: query + name: partial_response + description: Query partial response (Thanos) + schema: + type: boolean + seriesMatcher: + in: query + name: match[] + description: Repeated series selector argument + required: true + schema: + type: array + items: + type: string + logqlQuery: + in: query + name: query + description: LogQL query to fetch result for logs + schema: + type: string + limit: + in: query + name: limit + description: Max number of entries + schema: + type: number + logRulesNamespace: + in: path + name: namespace + description: namespace of the log rule group + required: true + schema: + type: string + logRulesGroup: + in: path + name: group + description: group of the log rule + required: true + schema: + type: string + schemas: + RecordingRule: + type: object + required: + - expr + - record + properties: + expr: + type: string + example: count by (name) (cluster{condition="halted"} == 1) + record: + type: string + example: count:cluster_halted + labels: + type: object + additionalProperties: + type: string + AlertingRule: + type: object + required: + - alert + - expr + properties: + alert: + type: string + example: HighRequestLatency + expr: + type: string + example: job:request_latency_seconds:mean5m{job="myjob"} > 0.5 + for: + type: string + example: 10m + labels: + type: object + additionalProperties: + type: string + annotations: + type: object + additionalProperties: + type: string + RuleGroup: + type: object + required: + - name + - rules + properties: + interval: + type: number + name: + type: string + example: telemeter.rules + rules: + type: array + items: + oneOf: + - $ref: '#/components/schemas/RecordingRule' + - $ref: '#/components/schemas/AlertingRule' + RulesRaw: + type: object + required: + - groups + properties: + groups: + type: array + items: + $ref: '#/components/schemas/RuleGroup' + RecordingRuleEvaluated: + type: object + required: + - query + - name + properties: + query: + type: string + example: count by (name) (cluster{condition="halted"} == 1) + name: + type: string + example: count:cluster_halted + health: + type: string + example: ok + evaluationTime: + type: number + example: 0.002900887 + lastError: + type: string + lastEvaluation: + type: string + example: '2022-02-20T15:32:12.759781322Z' + type: + type: string + enum: + - recording + labels: + type: object + additionalProperties: + type: string + ActiveAlert: + type: object + required: + - activeAt + - state + - value + properties: + activeAt: + type: string + example: '2018-07-04T20:27:12.60602144+02:00' + labels: + type: object + additionalProperties: + type: string + annotations: + type: object + additionalProperties: + type: string + state: + type: string + example: firing + value: + type: string + example: '1e+00' + AlertingRuleEvaluated: + type: object + required: + - query + - name + properties: + alerts: + type: array + items: + $ref: '#/components/schemas/ActiveAlert' + query: + type: string + example: job:request_latency_seconds:mean5m{job="myjob"} > 0.5 + name: + type: string + example: count:cluster_halted + health: + type: string + example: ok + evaluationTime: + type: number + example: 0.002900887 + lastError: + type: string + lastEvaluation: + type: string + example: '2022-02-20T15:32:12.759781322Z' + type: + type: string + enum: + - alerting + duration: + type: number + example: 600 + labels: + type: object + additionalProperties: + type: string + annotations: + type: object + additionalProperties: + type: string + RuleGroupEvaluated: + type: object + required: + - name + - rules + properties: + interval: + type: number + name: + type: string + example: telemeter.rules + file: + type: string + example: rules.yaml + limit: + type: number + example: 0 + evaluationTime: + type: number + example: 0.002900887 + lastEvaluation: + type: string + example: '2022-02-20T15:32:12.759781322Z' + partialResponseStrategy: + type: string + example: WARN + rules: + type: array + items: + oneOf: + - $ref: '#/components/schemas/RecordingRuleEvaluated' + - $ref: '#/components/schemas/AlertingRuleEvaluated' + Rules: + type: object + required: + - groups + properties: + groups: + type: array + items: + $ref: '#/components/schemas/RuleGroupEvaluated' + MetricRulesResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + example: success + data: + type: object + $ref: '#/components/schemas/Rules' + MetricLabelsResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + example: success + data: + type: array + items: + type: string + MetricLabelValuesResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + data: + type: array + items: + type: string + example: node + ScalarOrString: + type: array + items: + oneOf: + - type: string + format: unix_timestamp + - type: string + format: sample_value + RangeVectors: + type: object + required: + - metric + - values + properties: + metric: + type: object + additionalProperties: + type: string + values: + type: array + items: + type: array + $ref: '#/components/schemas/ScalarOrString' + InstantVectors: + type: object + required: + - metric + - values + properties: + metric: + type: object + additionalProperties: + type: string + values: + type: array + items: + $ref: '#/components/schemas/ScalarOrString' + StreamValues: + type: object + required: + - stream + - values + properties: + stream: + type: object + additionalProperties: + type: string + values: + type: array + items: + $ref: '#/components/schemas/ScalarOrString' + MetricInstantQueryResponse: + type: object + required: + - resultType + - result + properties: + resultType: + type: string + enum: + - matrix + - vector + - scalar + - string + - streams + result: + type: array + items: + oneOf: + - $ref: '#/components/schemas/RangeVectors' + - $ref: '#/components/schemas/InstantVectors' + - $ref: '#/components/schemas/ScalarOrString' + - $ref: '#/components/schemas/StreamValues' + MetricQueryResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + example: success + data: + type: object + $ref: '#/components/schemas/MetricInstantQueryResponse' + MetricRangeQueryResponse: + type: object + required: + - resultType + - result + properties: + resultType: + type: string + enum: + - matrix + result: + type: array + items: + oneOf: + - $ref: '#/components/schemas/RangeVectors' + MetricQueryRangeResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + example: success + data: + type: object + $ref: '#/components/schemas/MetricRangeQueryResponse' + MetricSeriesResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + example: success + data: + type: array + items: + type: object + additionalProperties: + type: string + LabelSet: + type: object + additionalProperties: + type: string + Receiver: + type: object + properties: + name: + type: string + required: + - name + AlertStatus: + type: object + properties: + state: + type: string + enum: + - unprocessed + - active + - suppressed + silencedBy: + type: array + items: + type: string + inhibitedBy: + type: array + items: + type: string + mutedBy: + type: array + items: + type: string + required: + - state + - silencedBy + - inhibitedBy + - mutedBy + Alert: + type: object + properties: + labels: + $ref: '#/components/schemas/LabelSet' + generatorURL: + type: string + format: uri + required: + - labels + GettableAlert: + allOf: + - type: object + properties: + annotations: + $ref: '#/components/schemas/LabelSet' + receivers: + type: array + items: + $ref: '#/components/schemas/Receiver' + fingerprint: + type: string + startsAt: + type: string + format: date-time + updatedAt: + type: string + format: date-time + endsAt: + type: string + format: date-time + status: + $ref: '#/components/schemas/AlertStatus' + required: + - receivers + - fingerprint + - startsAt + - updatedAt + - endsAt + - annotations + - status + - $ref: '#/components/schemas/Alert' + GettableAlerts: + type: array + items: + $ref: '#/components/schemas/GettableAlert' + SilenceStatus: + type: object + properties: + state: + type: string + enum: + - expired + - active + - pending + required: + - state + Matcher: + type: object + properties: + name: + type: string + value: + type: string + isRegex: + type: boolean + isEqual: + type: boolean + default: true + required: + - name + - value + - isRegex + Matchers: + type: array + items: + $ref: '#/components/schemas/Matcher' + minItems: 1 + Silence: + type: object + properties: + matchers: + $ref: '#/components/schemas/Matchers' + startsAt: + type: string + format: date-time + endsAt: + type: string + format: date-time + createdBy: + type: string + comment: + type: string + required: + - matchers + - startsAt + - endsAt + - createdBy + - comment + GettableSilence: + allOf: + - type: object + properties: + id: + type: string + status: + $ref: '#/components/schemas/SilenceStatus' + updatedAt: + type: string + format: date-time + required: + - id + - status + - updatedAt + - $ref: '#/components/schemas/Silence' + GettableSilences: + type: array + items: + $ref: '#/components/schemas/GettableSilence' + PostableSilence: + allOf: + - type: object + properties: + id: + type: string + - $ref: '#/components/schemas/Silence' + PostableSilenceResponse: + type: object + properties: + silenceID: + type: string + PushLogs: + type: object + required: + - stream + - values + properties: + stream: + type: object + additionalProperties: + type: string + values: + type: array + items: + $ref: '#/components/schemas/ScalarOrString' + LogLabelsResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + example: success + data: + type: array + items: + type: string + LogLabelValuesResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + data: + type: array + items: + type: string + example: node + LogSeriesResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + example: success + data: + type: array + items: + type: object + additionalProperties: + type: string + LogInstantQueryResponse: + type: object + required: + - resultType + - result + properties: + resultType: + type: string + enum: + - matrix + - vector + - scalar + - string + - streams + result: + type: array + items: + oneOf: + - $ref: '#/components/schemas/RangeVectors' + - $ref: '#/components/schemas/InstantVectors' + - $ref: '#/components/schemas/ScalarOrString' + - $ref: '#/components/schemas/StreamValues' + LogQueryResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + example: success + data: + type: object + $ref: '#/components/schemas/LogInstantQueryResponse' + LogRangeQueryResponse: + type: object + required: + - resultType + - result + properties: + resultType: + type: string + enum: + - matrix + result: + type: array + items: + oneOf: + - $ref: '#/components/schemas/RangeVectors' + LogQueryRangeResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + example: success + data: + type: object + $ref: '#/components/schemas/LogRangeQueryResponse' + TailLogs: + type: object + required: + - labels + - timestamp + properties: + labels: + type: object + additionalProperties: + type: string + timestamp: + type: string + format: unix_timestamp + LogReadResponse: + type: object + required: + - status + - streams + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + example: success + streams: + type: array + items: + type: object + $ref: '#/components/schemas/PushLogs' + dropped_entries: + type: array + items: + type: object + $ref: '#/components/schemas/TailLogs' + AllLogRulesResponse: + type: object + LogRulesNamespaceResponse: + type: object + required: + - groups + properties: + groups: + type: array + items: + type: object + $ref: '#/components/schemas/RuleGroup' + LogRulesGroupResponse: + type: object + required: + - name + - rules + properties: + name: + type: string + interval: + type: string + rules: + type: array + items: + type: object + $ref: '#/components/schemas/RulesRaw' + LogRulesPrometheusResponse: + type: object + required: + - status + - data + properties: + error: + type: string + errorType: + type: string + warnings: + type: array + items: + type: string + status: + type: string + example: success + data: + type: object + $ref: '#/components/schemas/Rules' +x-tagGroups: + - name: metrics + tags: + - metrics/rulesrawv1 + - metrics/rulesv1 + - metrics/labelsv1 + - metrics/labelvaluesv1 + - metrics/queryv1 + - metrics/seriesv1 + - name: logs + tags: + - logs/pushv1 + - logs/labelsv1 + - logs/labelvaluesv1 + - logs/queryv1 + - logs/rulesrawv1 + - logs/rulesv1 + - logs/seriesv1 + - logs/tailV1 diff --git a/docs/benchmark.md b/docs/benchmark.md index 4f6679f91..e18e12696 100644 --- a/docs/benchmark.md +++ b/docs/benchmark.md @@ -1,6 +1,6 @@ # Benchmark baseline results -This document contains baseline benchmark results for Observatorium API under synthetic load. +This document contains baseline benchmark results for Observatorium API under synthetic load. Tested on: @@ -12,8 +12,7 @@ Tested on: Generated using: -[embedmd]:# (../tmp/load_help.txt) -```txt +```txt mdox-exec="./test/load.sh -h" load.sh [-h] [-r n] [-c n] [-m n] [-q n] [-o csv|gnuplot] -- program to test synthetic load on observatorium api and report results. where: @@ -31,33 +30,35 @@ With parameters: $ ./test/load.sh -r 300 -c 1000 -m 3 -q 10 -o gnuplot ``` -> It runs tets for 5 minutes, simulating 3000 machines sending metrics and 10 consumers querying for their data every second. -> Observatorim API GW runs in-front of a mock provider which always responds with a successful response. +> It runs tests for 5 minutes, simulating 3000 machines sending metrics and 10 consumers querying for their data every second. Observatorim API GW runs in-front of a mock provider which always responds with a successful response. ## Results -Most relevant results are the ones on resource consumption. -CPU usage is pretty much stable. -Memory usage correlates with the number of goroutines, which correlates the number of open connections. -Memory usage increases and request latencies increase as the backend services' load increase, which is expected. +Most relevant results are the ones on resource consumption. CPU usage is pretty much stable. Memory usage correlates with the number of goroutines, which correlates the number of open connections. Memory usage increases and request latencies increase as the backend services' load increase, which is expected. ### Resource consumption #### CPU Usage -> `rate(process_cpu_seconds_total{job="observatorium"}[1m]) * 1000` +``` +rate(process_cpu_seconds_total{job="observatorium"}[1m]) * 1000 +``` ![./loadtests/cpu.png](./loadtests/cpu.png) #### Memory Usage -> `process_resident_memory_bytes{job="observatorium"}'` +``` +process_resident_memory_bytes{job="observatorium"} +``` ![./loadtests/mem.png](./loadtests/mem.png) #### Number of Goroutines -> go_goroutines{job="observatorium"}' +``` +go_goroutines{job="observatorium"} +``` ![./loadtests/goroutines.png](./loadtests/goroutines.png) @@ -67,21 +68,27 @@ Memory usage increases and request latencies increase as the backend services' l ##### Write P99 -> histogram_quantile(0.99, sum by (job, le) (rate(http_request_duration_seconds_bucket{job="observatorium", handler="write"}[1m])))' +``` +histogram_quantile(0.99, sum by (job, le) (rate(http_request_duration_seconds_bucket{job="observatorium", handler="write"}[1m]))) +``` ![./loadtests/write_dur_99.png](./loadtests/write_dur_99.png) ##### Write P50 -> histogram_quantile(0.50, sum by (job, le) (rate(http_request_duration_seconds_bucket{job="observatorium", handler="write"}[1m])))' +``` +histogram_quantile(0.50, sum by (job, le) (rate(http_request_duration_seconds_bucket{job="observatorium", handler="write"}[1m]))) +``` ![./loadtests/write_dur_50.png](./loadtests/write_dur_50.png) ##### Write Average -> 100 * (sum by (job) (rate(http_request_duration_seconds_sum{job="observatorium", handler="write"}[1m])) * 100 -> / -> sum by (job) (rate(http_request_duration_seconds_count{job="observatorium", handler="write"}[1m])))' +``` +100 * (sum by (job) (rate(http_request_duration_seconds_sum{job="observatorium", handler="write"}[1m])) * 100 +/ +sum by (job) (rate(http_request_duration_seconds_count{job="observatorium", handler="write"}[1m]))) +``` ![./loadtests/write_dur_avg.png](./loadtests/write_dur_avg.png) @@ -89,19 +96,26 @@ Memory usage increases and request latencies increase as the backend services' l ##### Query P99 -> histogram_quantile(0.99, sum by (job, le) (rate(http_request_duration_seconds_bucket{job="observatorium", handler="query_range"}[1m])))' +``` +histogram_quantile(0.99, sum by (job, le) (rate(http_request_duration_seconds_bucket{job="observatorium", handler="query_range"}[1m]))) +``` ![./loadtests/query_range_dur_99.png](./loadtests/query_range_dur_99.png) ##### Query P50 -> histogram_quantile(0.50, sum by (job, le) (rate(http_request_duration_seconds_bucket{job="observatorium", handler="query_range"}[1m])))' +``` +histogram_quantile(0.50, sum by (job, le) (rate(http_request_duration_seconds_bucket{job="observatorium", handler="query_range"}[1m]))) +``` ![./loadtests/query_range_dur_50.png](./loadtests/query_range_dur_50.png) ##### Query Average -> 100 * (sum by (job) (rate(http_request_duration_seconds_sum{job="observatorium", handler="query_range"}[1m])) -> / -> sum by (job) (rate(http_request_duration_seconds_count{job="observatorium", handler="query_range"}[1m])))' + +``` +100 * (sum by (job) (rate(http_request_duration_seconds_sum{job="observatorium", handler="query_range"}[1m])) +/ +sum by (job) (rate(http_request_duration_seconds_count{job="observatorium", handler="query_range"}[1m]))) +``` ![./loadtests/query_range_dur_avg.png](./loadtests/query_range_dur_avg.png) diff --git a/go.mod b/go.mod index a7885a490..2d6f1526e 100644 --- a/go.mod +++ b/go.mod @@ -1,145 +1,166 @@ module github.com/observatorium/api -go 1.23.8 +go 1.24.9 -toolchain go1.23.9 +toolchain go1.24.13 require ( - github.com/brancz/kube-rbac-proxy v0.19.0 - github.com/coreos/go-oidc/v3 v3.15.0 + github.com/brancz/kube-rbac-proxy v0.20.1 + github.com/coreos/go-oidc/v3 v3.17.0 github.com/efficientgo/core v1.0.0-rc.3.0.20250509094815-bd2ec8febb66 - github.com/efficientgo/e2e v0.14.1-0.20251204144843-44570aa52a90 + github.com/efficientgo/e2e v0.14.1-0.20260204162810-8c75b1e33ef9 github.com/ghodss/yaml v1.0.0 - github.com/go-chi/chi/v5 v5.2.2 - github.com/go-chi/httprate v0.14.1 + github.com/go-chi/chi/v5 v5.2.5 + github.com/go-chi/httprate v0.15.0 github.com/go-kit/log v0.2.1 - github.com/go-openapi/runtime v0.28.0 - github.com/go-openapi/strfmt v0.23.0 + github.com/go-openapi/runtime v0.29.2 + github.com/go-openapi/strfmt v0.25.0 github.com/golang-jwt/jwt/v4 v4.5.2 github.com/golang/protobuf v1.5.4 - github.com/gorilla/websocket v1.5.3 + github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 github.com/grafana/tempo v1.5.1-0.20241219111835-fa9b7ad5ad34 github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 - github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 + github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 github.com/metalmatze/signal v0.0.0-20210307161603-1c9aa721a97a github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c - github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76 + github.com/mwitkow/grpc-proxy v0.0.0-20250813121105-2866842de9a5 github.com/oapi-codegen/runtime v1.1.2 github.com/oklog/run v1.2.0 - github.com/open-policy-agent/opa v1.5.1 + github.com/open-policy-agent/opa v1.13.2 github.com/pkg/errors v0.9.1 - github.com/prometheus-community/prom-label-proxy v0.12.0 - github.com/prometheus/alertmanager v0.28.1 - github.com/prometheus/client_golang v1.23.0 - github.com/prometheus/common v0.65.0 - github.com/prometheus/prometheus v0.305.0 - github.com/redis/rueidis v1.0.45 - github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 - go.opentelemetry.io/contrib/propagators/jaeger v1.31.0 - go.opentelemetry.io/otel v1.36.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0 - go.opentelemetry.io/otel/sdk v1.36.0 - go.opentelemetry.io/otel/trace v1.36.0 + github.com/prometheus-community/prom-label-proxy v0.12.1 + github.com/prometheus/alertmanager v0.31.1 + github.com/prometheus/client_golang v1.23.2 + github.com/prometheus/common v0.67.5 + github.com/prometheus/prometheus v0.309.1 + github.com/redis/rueidis v1.0.72 + github.com/stretchr/testify v1.11.1 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 + go.opentelemetry.io/contrib/propagators/jaeger v1.40.0 + go.opentelemetry.io/otel v1.40.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 + go.opentelemetry.io/otel/sdk v1.40.0 + go.opentelemetry.io/otel/trace v1.40.0 go.uber.org/automaxprocs v1.6.0 - golang.org/x/oauth2 v0.30.0 - google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 - google.golang.org/grpc v1.73.0 - google.golang.org/protobuf v1.36.6 - k8s.io/apimachinery v0.32.3 - k8s.io/apiserver v0.32.2 - k8s.io/client-go v0.32.3 + golang.org/x/oauth2 v0.35.0 + google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 + google.golang.org/grpc v1.79.1 + google.golang.org/protobuf v1.36.11 + k8s.io/apimachinery v0.34.4 + k8s.io/apiserver v0.34.4 + k8s.io/client-go v0.34.4 ) require ( github.com/agnivade/levenshtein v1.2.1 // indirect github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect - github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect - github.com/cenkalti/backoff/v5 v5.0.2 // indirect + github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect github.com/dennwc/varint v1.0.0 // indirect github.com/edsrzf/mmap-go v1.2.0 // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/emicklei/go-restful/v3 v3.12.2 // indirect github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect - github.com/fxamacker/cbor/v2 v2.7.0 // indirect - github.com/go-ini/ini v1.67.0 // indirect - github.com/go-jose/go-jose/v4 v4.0.5 // indirect + github.com/fxamacker/cbor/v2 v2.9.0 // indirect + github.com/go-jose/go-jose/v4 v4.1.3 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-openapi/analysis v0.23.0 // indirect - github.com/go-openapi/errors v0.22.0 // indirect - github.com/go-openapi/jsonpointer v0.21.0 // indirect - github.com/go-openapi/jsonreference v0.21.0 // indirect - github.com/go-openapi/loads v0.22.0 // indirect - github.com/go-openapi/spec v0.21.0 // indirect - github.com/go-openapi/swag v0.23.0 // indirect - github.com/go-openapi/validate v0.24.0 // indirect + github.com/go-openapi/analysis v0.24.2 // indirect + github.com/go-openapi/errors v0.22.6 // indirect + github.com/go-openapi/jsonpointer v0.22.4 // indirect + github.com/go-openapi/jsonreference v0.21.4 // indirect + github.com/go-openapi/loads v0.23.2 // indirect + github.com/go-openapi/spec v0.22.3 // indirect + github.com/go-openapi/swag v0.25.4 // indirect + github.com/go-openapi/swag/cmdutils v0.25.4 // indirect + github.com/go-openapi/swag/conv v0.25.4 // indirect + github.com/go-openapi/swag/fileutils v0.25.4 // indirect + github.com/go-openapi/swag/jsonname v0.25.4 // indirect + github.com/go-openapi/swag/jsonutils v0.25.4 // indirect + github.com/go-openapi/swag/loading v0.25.4 // indirect + github.com/go-openapi/swag/mangling v0.25.4 // indirect + github.com/go-openapi/swag/netutils v0.25.4 // indirect + github.com/go-openapi/swag/stringutils v0.25.4 // indirect + github.com/go-openapi/swag/typeutils v0.25.4 // indirect + github.com/go-openapi/swag/yamlutils v0.25.4 // indirect + github.com/go-openapi/validate v0.25.1 // indirect + github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/gobwas/glob v0.2.3 // indirect + github.com/goccy/go-json v0.10.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/google/gnostic-models v0.6.8 // indirect + github.com/golang-jwt/jwt/v5 v5.3.0 // indirect + github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect - github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/gorilla/mux v1.8.1 // indirect - github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect - github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/josharian/intern v1.0.0 // indirect + github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/mailru/easyjson v0.7.7 // indirect + github.com/klauspost/cpuid/v2 v2.2.10 // indirect + github.com/lestrrat-go/blackmagic v1.0.4 // indirect + github.com/lestrrat-go/dsig v1.0.0 // indirect + github.com/lestrrat-go/dsig-secp256k1 v1.0.0 // indirect + github.com/lestrrat-go/httpcc v1.0.1 // indirect + github.com/lestrrat-go/httprc/v3 v3.0.2 // indirect + github.com/lestrrat-go/jwx/v3 v3.0.13 // indirect + github.com/lestrrat-go/option/v2 v2.0.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/oklog/ulid v1.3.1 // indirect - github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/procfs v0.16.1 // indirect - github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/sirupsen/logrus v1.9.3 // indirect - github.com/spf13/cobra v1.9.1 // indirect - github.com/spf13/pflag v1.0.6 // indirect - github.com/tchap/go-patricia/v2 v2.3.2 // indirect - github.com/vektah/gqlparser/v2 v2.5.28 // indirect + github.com/prometheus/procfs v0.17.0 // indirect + github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 // indirect + github.com/segmentio/asm v1.2.1 // indirect + github.com/sirupsen/logrus v1.9.4 // indirect + github.com/spf13/pflag v1.0.10 // indirect + github.com/tchap/go-patricia/v2 v2.3.3 // indirect + github.com/valyala/fastjson v1.6.7 // indirect + github.com/vektah/gqlparser/v2 v2.5.31 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/yashtewari/glob-intersection v0.2.0 // indirect - go.mongodb.org/mongo-driver v1.15.0 // indirect - go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0 // indirect - go.opentelemetry.io/otel/metric v1.36.0 // indirect - go.opentelemetry.io/proto/otlp v1.6.0 // indirect + github.com/zeebo/xxh3 v1.0.2 // indirect + go.mongodb.org/mongo-driver v1.17.6 // indirect + go.opentelemetry.io/auto/sdk v1.2.1 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0 // indirect + go.opentelemetry.io/otel/metric v1.40.0 // indirect + go.opentelemetry.io/proto/otlp v1.9.0 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/crypto v0.39.0 // indirect - golang.org/x/net v0.41.0 // indirect - golang.org/x/sync v0.15.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/term v0.32.0 // indirect - golang.org/x/text v0.26.0 // indirect - golang.org/x/time v0.12.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/crypto v0.47.0 // indirect + golang.org/x/net v0.49.0 // indirect + golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.40.0 // indirect + golang.org/x/term v0.39.0 // indirect + golang.org/x/text v0.33.0 // indirect + golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/ini.v1 v1.67.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.32.3 // indirect - k8s.io/component-base v0.32.2 // indirect + k8s.io/api v0.34.4 // indirect + k8s.io/component-base v0.34.4 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect - k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect - sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 // indirect - sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect + k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect + k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect + sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/randfill v1.0.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect + sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/go.sum b/go.sum index 51576f6c9..bab3b89d6 100644 --- a/go.sum +++ b/go.sum @@ -1,20 +1,19 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.115.0 h1:CnFSK6Xo3lDYRoBKEcAtia6VSC837/ZkJuRduSFnr14= -cloud.google.com/go/auth v0.16.2 h1:QvBAGFPLrDeoiNjyfVunhQ10HKNYuOwZ5noee0M5df4= -cloud.google.com/go/auth v0.16.2/go.mod h1:sRBas2Y1fB1vZTdurouM0AzuYQBMZinrUYL8EufhtEA= +cloud.google.com/go/auth v0.17.0 h1:74yCm7hCj2rUyyAocqnFzsAYXgJhrG26XCFimrc/Kz4= +cloud.google.com/go/auth v0.17.0/go.mod h1:6wv/t5/6rOPAX4fJiRjKkJCvswLwdet7G8+UGXt7nCQ= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= -cloud.google.com/go/compute v1.23.4 h1:EBT9Nw4q3zyE7G45Wvv3MzolIrCJEuHys5muLY0wvAw= -cloud.google.com/go/compute/metadata v0.7.0 h1:PBWF+iiAerVNe8UCHxdOt6eHLVc3ydFeOCw78U8ytSU= -cloud.google.com/go/compute/metadata v0.7.0/go.mod h1:j5MvL9PprKL39t166CoB1uVHfQMs4tFQZZcKwksXUjo= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 h1:B+blDbyVIG3WaikNxPnhPiJ1MThR03b3vKGtER95TP4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= +cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0 h1:JXg2dwJUmPB9JmtVmdEB16APJ7jurfbY5jnfXpJoRMc= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0/go.mod h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 h1:Hk5QBxZQC1jb2Fwj6mpzme37xbCDdNTxU7O9eb5+LB4= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1/go.mod h1:IYus9qsFobWIc2YVwe/WPjcnyCkPKtnHAqUYeebc8z0= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 h1:9iefClla7iYpfYWdzPCRDozdmndjTm8DXdpCzPajMgA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2/go.mod h1:XtLgD3ZD34DAaVIIAyG3objl5DynM3CQ/vMcbBNJZGI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0 h1:XRzhVemXdgvJqCH0sFfrBUTnUJSBrBf7++ypk+twtRs= +github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DATA-DOG/go-sqlmock v1.4.1 h1:ThlnYciV1iM/V0OSF/dtkqWb6xo5qITT1TJBG1MRDJM= github.com/DATA-DOG/go-sqlmock v1.4.1/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= @@ -33,34 +32,34 @@ github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7D github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk= github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q= github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= -github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= -github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM= -github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= -github.com/aws/aws-sdk-go-v2/config v1.29.14 h1:f+eEi/2cKCg9pqKBoAIwRGzVb70MRKqWX4dg1BDcSJM= -github.com/aws/aws-sdk-go-v2/config v1.29.14/go.mod h1:wVPHWcIFv3WO89w0rE10gzf17ZYy+UVS1Geq8Iei34g= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67 h1:9KxtdcIA/5xPNQyZRgUSpYOE6j9Bc4+D7nZua0KGYOM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67/go.mod h1:p3C44m+cfnbv763s52gCqrjaqyPikj9Sg47kUVaNZQQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34/go.mod h1:dFZsC0BLo346mvKQLWmoJxT+Sjp+qcVR1tRVHQGOH9Q= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2F1JbDaGooxTq18wmmFzbJRfXfVfy96/1CXM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 h1:1XuUZ8mYJw9B6lzAkXhqHlJd/XvaX32evhproijJEZY= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= -github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= -github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/aws-sdk-go-v2 v1.41.1 h1:ABlyEARCDLN034NhxlRUSZr4l71mh+T5KAeGh6cerhU= +github.com/aws/aws-sdk-go-v2 v1.41.1/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0= +github.com/aws/aws-sdk-go-v2/config v1.32.7 h1:vxUyWGUwmkQ2g19n7JY/9YL8MfAIl7bTesIUykECXmY= +github.com/aws/aws-sdk-go-v2/config v1.32.7/go.mod h1:2/Qm5vKUU/r7Y+zUk/Ptt2MDAEKAfUtKc1+3U1Mo3oY= +github.com/aws/aws-sdk-go-v2/credentials v1.19.7 h1:tHK47VqqtJxOymRrNtUXN5SP/zUTvZKeLx4tH6PGQc8= +github.com/aws/aws-sdk-go-v2/credentials v1.19.7/go.mod h1:qOZk8sPDrxhf+4Wf4oT2urYJrYt3RejHSzgAquYeppw= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.17 h1:I0GyV8wiYrP8XpA70g1HBcQO1JlQxCMTW9npl5UbDHY= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.17/go.mod h1:tyw7BOl5bBe/oqvoIeECFJjMdzXoa/dfVz3QQ5lgHGA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 h1:xOLELNKGp2vsiteLsvLPwxC+mYmO6OZ8PYgiuPJzF8U= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17/go.mod h1:5M5CI3D12dNOtH3/mk6minaRwI2/37ifCURZISxA/IQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 h1:WWLqlh79iO48yLkj1v3ISRNiv+3KdQoZ6JWyfcsyQik= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17/go.mod h1:EhG22vHRrvF8oXSTYStZhJc1aUgKtnJe+aOiFEV90cM= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 h1:0ryTNEdJbzUCEWkVXEXoqlXV72J5keC1GvILMOuD00E= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4/go.mod h1:HQ4qwNZh32C3CBeO6iJLQlgtMzqeG17ziAA/3KDJFow= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17 h1:RuNSMoozM8oXlgLG/n6WLaFGoea7/CddrCfIiSA+xdY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17/go.mod h1:F2xxQ9TZz5gDWsclCtPQscGpP0VUOc8RqgFM3vDENmU= +github.com/aws/aws-sdk-go-v2/service/signin v1.0.5 h1:VrhDvQib/i0lxvr3zqlUwLwJP4fpmpyD9wYG1vfSu+Y= +github.com/aws/aws-sdk-go-v2/service/signin v1.0.5/go.mod h1:k029+U8SY30/3/ras4G/Fnv/b88N4mAfliNn08Dem4M= +github.com/aws/aws-sdk-go-v2/service/sso v1.30.9 h1:v6EiMvhEYBoHABfbGB4alOYmCIrcgyPPiBE1wZAEbqk= +github.com/aws/aws-sdk-go-v2/service/sso v1.30.9/go.mod h1:yifAsgBxgJWn3ggx70A3urX2AN49Y5sJTD1UQFlfqBw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.13 h1:gd84Omyu9JLriJVCbGApcLzVR3XtmC4ZDPcAI6Ftvds= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.13/go.mod h1:sTGThjphYE4Ohw8vJiRStAcu3rbjtXRsdNB0TvZ5wwo= +github.com/aws/aws-sdk-go-v2/service/sts v1.41.6 h1:5fFjR/ToSOzB2OQ/XqWpZBmNvmP/pJ1jOWYlFDJTjRQ= +github.com/aws/aws-sdk-go-v2/service/sts v1.41.6/go.mod h1:qgFDZQSD/Kys7nJnVqYlWKnh0SSdMjAi0uSwON4wgYQ= +github.com/aws/smithy-go v1.24.0 h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk= +github.com/aws/smithy-go v1.24.0/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 h1:6df1vn4bBlDDo4tARvBm7l6KA9iVMnE3NWizDeWSrps= github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3/go.mod h1:CIWtjkly68+yqLPbvwwR/fjNJA/idrtULjZWh2v1ys0= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -71,29 +70,30 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= -github.com/brancz/kube-rbac-proxy v0.19.0 h1:kJJ8iBizMY5igkRm7rfZaxC7G9Sl16CYs9iGiVZusX4= -github.com/brancz/kube-rbac-proxy v0.19.0/go.mod h1:sXKotVwImF+ZxC/GOoi9+0AEg9Zbbl5xumH3lfHCOaY= -github.com/bytecodealliance/wasmtime-go/v3 v3.0.2 h1:3uZCA/BLTIu+DqCfguByNMJa2HVHpXvjfy0Dy7g6fuA= -github.com/bytecodealliance/wasmtime-go/v3 v3.0.2/go.mod h1:RnUjnIXxEJcL6BgCvNyzCCRzZcxCgsZCi+RNlvYor5Q= -github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8= -github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= +github.com/brancz/kube-rbac-proxy v0.20.1 h1:8XV3jj/at0pA53NE4miPS5kQ8c96dgFeFGpY7iKKvB8= +github.com/brancz/kube-rbac-proxy v0.20.1/go.mod h1:I/ZixtXsBjOKbSN0VoBjPQYvecYhmiQNRag0U8JxSZE= +github.com/bytecodealliance/wasmtime-go/v39 v39.0.1 h1:RibaT47yiyCRxMOj/l2cvL8cWiWBSqDXHyqsa9sGcCE= +github.com/bytecodealliance/wasmtime-go/v39 v39.0.1/go.mod h1:miR4NYIEBXeDNamZIzpskhJ0z/p8al+lwMWylQ/ZJb4= +github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= +github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/coreos/go-oidc/v3 v3.15.0 h1:R6Oz8Z4bqWR7VFQ+sPSvZPQv4x8M+sJkDO5ojgwlyAg= -github.com/coreos/go-oidc/v3 v3.15.0/go.mod h1:HaZ3szPaZ0e4r6ebqvsLWlk2Tn+aejfmrfah6hnSYEU= -github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/coreos/go-oidc/v3 v3.17.0 h1:hWBGaQfbi0iVviX4ibC7bk8OKT5qNr4klBaCHVNvehc= +github.com/coreos/go-oidc/v3 v3.17.0/go.mod h1:wqPbKFrVnE90vty060SB40FCJ8fTHTxSwyXJqZH+sI8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40= github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= -github.com/dgraph-io/badger/v4 v4.7.0 h1:Q+J8HApYAY7UMpL8d9owqiB+odzEc0zn/aqOD9jhc6Y= -github.com/dgraph-io/badger/v4 v4.7.0/go.mod h1:He7TzG3YBy3j4f5baj5B7Zl2XyfNe5bl4Udl0aPemVA= +github.com/dgraph-io/badger/v4 v4.9.0 h1:tpqWb0NewSrCYqTvywbcXOhQdWcqephkVkbBmaaqHzc= +github.com/dgraph-io/badger/v4 v4.9.0/go.mod h1:5/MEx97uzdPUHR4KtkNt8asfI2T4JiEiQlV7kWUo8c0= github.com/dgraph-io/ristretto/v2 v2.2.0 h1:bkY3XzJcXoMuELV8F+vS8kzNgicwQFAaGINAEJdWGOM= github.com/dgraph-io/ristretto/v2 v2.2.0/go.mod h1:RZrm63UmcBAaYWC1DotLYBmTvgkrs0+XhBd7Npn7/zI= github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo= @@ -104,10 +104,10 @@ github.com/edsrzf/mmap-go v1.2.0 h1:hXLYlkbaPzt1SaQk+anYwKSRNhufIDCchSPkUD6dD84= github.com/edsrzf/mmap-go v1.2.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= github.com/efficientgo/core v1.0.0-rc.3.0.20250509094815-bd2ec8febb66 h1:dbyJxOkY0GfW7gCJw2T0XPkxUeal/eKKI24jMJVEd0w= github.com/efficientgo/core v1.0.0-rc.3.0.20250509094815-bd2ec8febb66/go.mod h1:FfGdkzWarkuzOlY04VY+bGfb1lWrjaL6x/GLcQ4vJps= -github.com/efficientgo/e2e v0.14.1-0.20251204144843-44570aa52a90 h1:IxIFadkrIijEI41AgVvLjx7ePtBi+c7Fhmq/Zwkrb9g= -github.com/efficientgo/e2e v0.14.1-0.20251204144843-44570aa52a90/go.mod h1:plsKU0YHE9uX+7utvr7SiDtVBSHJyEfHRO4UnUgDmts= -github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= -github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/efficientgo/e2e v0.14.1-0.20260204162810-8c75b1e33ef9 h1:ubLDovsdOv7n27IV6J+ITPW+VjkbJs/DfAbVqfIFkzQ= +github.com/efficientgo/e2e v0.14.1-0.20260204162810-8c75b1e33ef9/go.mod h1:uQC+38Vj8iASSYXRVkBYXfwUxKiYerKw88G+CH8nsUs= +github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU= +github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -118,22 +118,22 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI= -github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= +github.com/foxcpp/go-mockdns v1.2.0 h1:omK3OrHRD1IWJz1FuFBCFquhXslXoF17OvBS6JPzZF0= +github.com/foxcpp/go-mockdns v1.2.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= -github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= -github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= +github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-chi/chi/v5 v5.2.2 h1:CMwsvRVTbXVytCk1Wd72Zy1LAsAh9GxMmSNWLHCG618= -github.com/go-chi/chi/v5 v5.2.2/go.mod h1:L2yAIGWB3H+phAw1NxKwWM+7eUH/lU8pOMm5hHcoops= -github.com/go-chi/httprate v0.14.1 h1:EKZHYEZ58Cg6hWcYzoZILsv7ppb46Wt4uQ738IRtpZs= -github.com/go-chi/httprate v0.14.1/go.mod h1:TUepLXaz/pCjmCtf/obgOQJ2Sz6rC8fSf5cAt5cnTt0= +github.com/go-chi/chi/v5 v5.2.5 h1:Eg4myHZBjyvJmAFjFvWgrqDTXFyOzjj7YIm3L3mu6Ug= +github.com/go-chi/chi/v5 v5.2.5/go.mod h1:X7Gx4mteadT3eDOMTsXzmI4/rwUpOwBHLpAfupzFJP0= +github.com/go-chi/httprate v0.15.0 h1:j54xcWV9KGmPf/X4H32/aTH+wBlrvxL7P+SdnRqxh5g= +github.com/go-chi/httprate v0.15.0/go.mod h1:rzGHhVrsBn3IMLYDOZQsSU4fJNWcjui4fWKJcCId1R4= github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= -github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= +github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs= +github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= 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= @@ -149,40 +149,70 @@ github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-openapi/analysis v0.23.0 h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU= -github.com/go-openapi/analysis v0.23.0/go.mod h1:9mz9ZWaSlV8TvjQHLl2mUW2PbZtemkE8yA5v22ohupo= -github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w= -github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE= -github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= -github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= -github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= -github.com/go-openapi/loads v0.22.0 h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8Aco= -github.com/go-openapi/loads v0.22.0/go.mod h1:yLsaTCS92mnSAZX5WWoxszLj0u+Ojl+Zs5Stn1oF+rs= -github.com/go-openapi/runtime v0.28.0 h1:gpPPmWSNGo214l6n8hzdXYhPuJcGtziTOgUpvsFWGIQ= -github.com/go-openapi/runtime v0.28.0/go.mod h1:QN7OzcS+XuYmkQLw05akXk0jRH/eZ3kb18+1KwW9gyc= -github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= -github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= -github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= -github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= -github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= -github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= -github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= -github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= +github.com/go-openapi/analysis v0.24.2 h1:6p7WXEuKy1llDgOH8FooVeO+Uq2za9qoAOq4ZN08B50= +github.com/go-openapi/analysis v0.24.2/go.mod h1:x27OOHKANE0lutg2ml4kzYLoHGMKgRm1Cj2ijVOjJuE= +github.com/go-openapi/errors v0.22.6 h1:eDxcf89O8odEnohIXwEjY1IB4ph5vmbUsBMsFNwXWPo= +github.com/go-openapi/errors v0.22.6/go.mod h1:z9S8ASTUqx7+CP1Q8dD8ewGH/1JWFFLX/2PmAYNQLgk= +github.com/go-openapi/jsonpointer v0.22.4 h1:dZtK82WlNpVLDW2jlA1YCiVJFVqkED1MegOUy9kR5T4= +github.com/go-openapi/jsonpointer v0.22.4/go.mod h1:elX9+UgznpFhgBuaMQ7iu4lvvX1nvNsesQ3oxmYTw80= +github.com/go-openapi/jsonreference v0.21.4 h1:24qaE2y9bx/q3uRK/qN+TDwbok1NhbSmGjjySRCHtC8= +github.com/go-openapi/jsonreference v0.21.4/go.mod h1:rIENPTjDbLpzQmQWCj5kKj3ZlmEh+EFVbz3RTUh30/4= +github.com/go-openapi/loads v0.23.2 h1:rJXAcP7g1+lWyBHC7iTY+WAF0rprtM+pm8Jxv1uQJp4= +github.com/go-openapi/loads v0.23.2/go.mod h1:IEVw1GfRt/P2Pplkelxzj9BYFajiWOtY2nHZNj4UnWY= +github.com/go-openapi/runtime v0.29.2 h1:UmwSGWNmWQqKm1c2MGgXVpC2FTGwPDQeUsBMufc5Yj0= +github.com/go-openapi/runtime v0.29.2/go.mod h1:biq5kJXRJKBJxTDJXAa00DOTa/anflQPhT0/wmjuy+0= +github.com/go-openapi/spec v0.22.3 h1:qRSmj6Smz2rEBxMnLRBMeBWxbbOvuOoElvSvObIgwQc= +github.com/go-openapi/spec v0.22.3/go.mod h1:iIImLODL2loCh3Vnox8TY2YWYJZjMAKYyLH2Mu8lOZs= +github.com/go-openapi/strfmt v0.25.0 h1:7R0RX7mbKLa9EYCTHRcCuIPcaqlyQiWNPTXwClK0saQ= +github.com/go-openapi/strfmt v0.25.0/go.mod h1:nNXct7OzbwrMY9+5tLX4I21pzcmE6ccMGXl3jFdPfn8= +github.com/go-openapi/swag v0.25.4 h1:OyUPUFYDPDBMkqyxOTkqDYFnrhuhi9NR6QVUvIochMU= +github.com/go-openapi/swag v0.25.4/go.mod h1:zNfJ9WZABGHCFg2RnY0S4IOkAcVTzJ6z2Bi+Q4i6qFQ= +github.com/go-openapi/swag/cmdutils v0.25.4 h1:8rYhB5n6WawR192/BfUu2iVlxqVR9aRgGJP6WaBoW+4= +github.com/go-openapi/swag/cmdutils v0.25.4/go.mod h1:pdae/AFo6WxLl5L0rq87eRzVPm/XRHM3MoYgRMvG4A0= +github.com/go-openapi/swag/conv v0.25.4 h1:/Dd7p0LZXczgUcC/Ikm1+YqVzkEeCc9LnOWjfkpkfe4= +github.com/go-openapi/swag/conv v0.25.4/go.mod h1:3LXfie/lwoAv0NHoEuY1hjoFAYkvlqI/Bn5EQDD3PPU= +github.com/go-openapi/swag/fileutils v0.25.4 h1:2oI0XNW5y6UWZTC7vAxC8hmsK/tOkWXHJQH4lKjqw+Y= +github.com/go-openapi/swag/fileutils v0.25.4/go.mod h1:cdOT/PKbwcysVQ9Tpr0q20lQKH7MGhOEb6EwmHOirUk= +github.com/go-openapi/swag/jsonname v0.25.4 h1:bZH0+MsS03MbnwBXYhuTttMOqk+5KcQ9869Vye1bNHI= +github.com/go-openapi/swag/jsonname v0.25.4/go.mod h1:GPVEk9CWVhNvWhZgrnvRA6utbAltopbKwDu8mXNUMag= +github.com/go-openapi/swag/jsonutils v0.25.4 h1:VSchfbGhD4UTf4vCdR2F4TLBdLwHyUDTd1/q4i+jGZA= +github.com/go-openapi/swag/jsonutils v0.25.4/go.mod h1:7OYGXpvVFPn4PpaSdPHJBtF0iGnbEaTk8AvBkoWnaAY= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.4 h1:IACsSvBhiNJwlDix7wq39SS2Fh7lUOCJRmx/4SN4sVo= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.4/go.mod h1:Mt0Ost9l3cUzVv4OEZG+WSeoHwjWLnarzMePNDAOBiM= +github.com/go-openapi/swag/loading v0.25.4 h1:jN4MvLj0X6yhCDduRsxDDw1aHe+ZWoLjW+9ZQWIKn2s= +github.com/go-openapi/swag/loading v0.25.4/go.mod h1:rpUM1ZiyEP9+mNLIQUdMiD7dCETXvkkC30z53i+ftTE= +github.com/go-openapi/swag/mangling v0.25.4 h1:2b9kBJk9JvPgxr36V23FxJLdwBrpijI26Bx5JH4Hp48= +github.com/go-openapi/swag/mangling v0.25.4/go.mod h1:6dxwu6QyORHpIIApsdZgb6wBk/DPU15MdyYj/ikn0Hg= +github.com/go-openapi/swag/netutils v0.25.4 h1:Gqe6K71bGRb3ZQLusdI8p/y1KLgV4M/k+/HzVSqT8H0= +github.com/go-openapi/swag/netutils v0.25.4/go.mod h1:m2W8dtdaoX7oj9rEttLyTeEFFEBvnAx9qHd5nJEBzYg= +github.com/go-openapi/swag/stringutils v0.25.4 h1:O6dU1Rd8bej4HPA3/CLPciNBBDwZj9HiEpdVsb8B5A8= +github.com/go-openapi/swag/stringutils v0.25.4/go.mod h1:GTsRvhJW5xM5gkgiFe0fV3PUlFm0dr8vki6/VSRaZK0= +github.com/go-openapi/swag/typeutils v0.25.4 h1:1/fbZOUN472NTc39zpa+YGHn3jzHWhv42wAJSN91wRw= +github.com/go-openapi/swag/typeutils v0.25.4/go.mod h1:Ou7g//Wx8tTLS9vG0UmzfCsjZjKhpjxayRKTHXf2pTE= +github.com/go-openapi/swag/yamlutils v0.25.4 h1:6jdaeSItEUb7ioS9lFoCZ65Cne1/RZtPBZ9A56h92Sw= +github.com/go-openapi/swag/yamlutils v0.25.4/go.mod h1:MNzq1ulQu+yd8Kl7wPOut/YHAAU/H6hL91fF+E2RFwc= +github.com/go-openapi/testify/enable/yaml/v2 v2.0.2 h1:0+Y41Pz1NkbTHz8NngxTuAXxEodtNSI1WG1c/m5Akw4= +github.com/go-openapi/testify/enable/yaml/v2 v2.0.2/go.mod h1:kme83333GCtJQHXQ8UKX3IBZu6z8T5Dvy5+CW3NLUUg= +github.com/go-openapi/testify/v2 v2.0.2 h1:X999g3jeLcoY8qctY/c/Z8iBHTbwLz7R2WXd6Ub6wls= +github.com/go-openapi/testify/v2 v2.0.2/go.mod h1:HCPmvFFnheKK2BuwSA0TbbdxJ3I16pjwMkYkP4Ywn54= +github.com/go-openapi/validate v0.25.1 h1:sSACUI6Jcnbo5IWqbYHgjibrhhmt3vR6lCzKZnmAgBw= +github.com/go-openapi/validate v0.25.1/go.mod h1:RMVyVFYte0gbSTaZ0N4KmTn6u/kClvAFp+mAVfS/DQc= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= +github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= -github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= +github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= +github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -195,47 +225,38 @@ github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/flatbuffers v25.2.10+incompatible h1:F3vclr7C3HpB1k9mxCGRMXq6FdUalZ6H/pNX4FP1v0Q= github.com/google/flatbuffers v25.2.10+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= -github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= +github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= 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.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= -github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a h1://KbezygeMJZCSHH+HgUZiTeSoiuFspbMg1ge+eFj18= -github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a/go.mod h1:5hDyRhoBCxViHszMt12TnOpEI4VVi+U8Gm9iphldiMA= +github.com/google/pprof v0.0.0-20251213031049-b05bdaca462f h1:HU1RgM6NALf/KW9HEY6zry3ADbDKcmpQ+hJedoNGQYQ= +github.com/google/pprof v0.0.0-20251213031049-b05bdaca462f/go.mod h1:67FPmZWbr+KDT/VlpWtw6sO9XSjpJmLuHpoLmWiTGgY= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= -github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= -github.com/googleapis/gax-go/v2 v2.14.2 h1:eBLnkZ9635krYIPD+ag1USrOAI0Nr0QYF3+/3GqO0k0= -github.com/googleapis/gax-go/v2 v2.14.2/go.mod h1:ON64QhlJkhVtSqp4v1uaK92VyZ2gmvDQsweuyLV+8+w= -github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= -github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= -github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= -github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248= -github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= +github.com/googleapis/enterprise-certificate-proxy v0.3.7 h1:zrn2Ee/nWmHulBx5sAVrGgAa0f2/R35S4DJwfFaUPFQ= +github.com/googleapis/enterprise-certificate-proxy v0.3.7/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= +github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo= +github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 h1:cLN4IBkmkYZNnk7EAJ0BHIethd+J6LqxFNw5mSiI2bM= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= github.com/grafana/tempo v1.5.1-0.20241219111835-fa9b7ad5ad34 h1:tB1E1ZPJ760anSvcOgWdE5vM7W910phZwDuI7dA57Sw= github.com/grafana/tempo v1.5.1-0.20241219111835-fa9b7ad5ad34/go.mod h1:98aLwZEvds27PFEqh9JTlZv8GCBnWhRbzAQVTZy22lE= 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-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= -github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 h1:B+8ClL/kCQkRiU82d9xajRPKYMrB7E0MbtzWVi1K4ns= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3/go.mod h1:NbCUVmiS4foBGBHOYlCT25+YmGpJ32dZPi75pGEUpj4= 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/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= -github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= -github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 h1:X+2YciYSxvMQK0UZ7sg45ZVabVZBeBuvMkmuI2V3Fak= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7/go.mod h1:lW34nIZuQ8UDPdkon5fmfp2l3+ZkQ2me/+oecHYLOII= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= 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= @@ -246,10 +267,10 @@ github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPci github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= 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.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= -github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= -github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= -github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/compress v1.18.2 h1:iiPHWW0YrcFgpBYhsA6D1+fqHssJscY/Tm/y2Uqnapk= +github.com/klauspost/compress v1.18.2/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4= +github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE= +github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -261,13 +282,25 @@ 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/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/lestrrat-go/blackmagic v1.0.4 h1:IwQibdnf8l2KoO+qC3uT4OaTWsW7tuRQXy9TRN9QanA= +github.com/lestrrat-go/blackmagic v1.0.4/go.mod h1:6AWFyKNNj0zEXQYfTMPfZrAXUWUfTIZ5ECEUEJaijtw= +github.com/lestrrat-go/dsig v1.0.0 h1:OE09s2r9Z81kxzJYRn07TFM9XA4akrUdoMwr0L8xj38= +github.com/lestrrat-go/dsig v1.0.0/go.mod h1:dEgoOYYEJvW6XGbLasr8TFcAxoWrKlbQvmJgCR0qkDo= +github.com/lestrrat-go/dsig-secp256k1 v1.0.0 h1:JpDe4Aybfl0soBvoVwjqDbp+9S1Y2OM7gcrVVMFPOzY= +github.com/lestrrat-go/dsig-secp256k1 v1.0.0/go.mod h1:CxUgAhssb8FToqbL8NjSPoGQlnO4w3LG1P0qPWQm/NU= +github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE= +github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= +github.com/lestrrat-go/httprc/v3 v3.0.2 h1:7u4HUaD0NQbf2/n5+fyp+T10hNCsAnwKfqn4A4Baif0= +github.com/lestrrat-go/httprc/v3 v3.0.2/go.mod h1:mSMtkZW92Z98M5YoNNztbRGxbXHql7tSitCvaxvo9l0= +github.com/lestrrat-go/jwx/v3 v3.0.13 h1:AdHKiPIYeCSnOJtvdpipPg/0SuFh9rdkN+HF3O0VdSk= +github.com/lestrrat-go/jwx/v3 v3.0.13/go.mod h1:2m0PV1A9tM4b/jVLMx8rh6rBl7F6WGb3EG2hufN9OQU= +github.com/lestrrat-go/option/v2 v2.0.0 h1:XxrcaJESE1fokHy3FpaQ/cXW8ZsIdWcdFzzLOcID3Ss= +github.com/lestrrat-go/option/v2 v2.0.0/go.mod h1:oSySsmzMoR0iRzCDCaUfsCzxQHUEuhOViQObyy7S6Vg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/metalmatze/signal v0.0.0-20210307161603-1c9aa721a97a h1:0usWxe5SGXKQovz3p+BiQ81Jy845xSMu2CWKuXsXuUM= github.com/metalmatze/signal v0.0.0-20210307161603-1c9aa721a97a/go.mod h1:3OETvrxfELvGsU2RoGGWercfeZ4bCL3+SOwzIWtJH/Q= -github.com/miekg/dns v1.1.66 h1:FeZXOS3VCVsKnEAd+wBkjMC3D2K+ww66Cq3VnCINuJE= -github.com/miekg/dns v1.1.66/go.mod h1:jGFzBsSNbJw6z1HYut1RKBKHA9PBdxeHrZG8J+gC2WE= +github.com/miekg/dns v1.1.69 h1:Kb7Y/1Jo+SG+a2GtfoFUfDkG//csdRPwRLkCsxDG9Sc= +github.com/miekg/dns v1.1.69/go.mod h1:7OyjD9nEba5OkqQ/hB4fy3PIoxafSZJtducccIelz3g= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= github.com/minio/minio-go/v7 v7.0.81 h1:SzhMN0TQ6T/xSBu6Nvw3M5M8voM+Ht8RH3hE8S7zxaA= @@ -279,15 +312,16 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w 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/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8= +github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76 h1:0xuRacu/Zr+jX+KyLLPPktbwXqyOvnOPUQmMLzX1jxU= -github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76/go.mod h1:x5OoJHDHqxHS801UIuhqGl6QdSAEJvtausosHSdazIo= +github.com/mwitkow/grpc-proxy v0.0.0-20250813121105-2866842de9a5 h1:lfn6/BOFpIfsiZzud6wi0Gi5iVZiwyUqVHgQJZZq46M= +github.com/mwitkow/grpc-proxy v0.0.0-20250813121105-2866842de9a5/go.mod h1:xQkv7+tlyB565yH6OiKQ7Ylr7mgHdmkMlIDyJqN6x5U= github.com/oapi-codegen/runtime v1.1.2 h1:P2+CubHq8fO4Q6fV1tqDBZHCwpVpvPg7oKiYzQgXIyI= github.com/oapi-codegen/runtime v1.1.2/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg= github.com/oklog/run v1.2.0 h1:O8x3yXwah4A73hJdlrwo/2X6J62gE5qTMusH0dvz60E= @@ -298,13 +332,11 @@ github.com/oklog/ulid/v2 v2.1.1 h1:suPZ4ARWLOJLegGFiZZ1dFAkqzhMjL3J1TzI+5wHz8s= github.com/oklog/ulid/v2 v2.1.1/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ= github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= -github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= -github.com/open-policy-agent/opa v1.5.1 h1:LTxxBJusMVjfs67W4FoRcnMfXADIGFMzpqnfk6D08Cg= -github.com/open-policy-agent/opa v1.5.1/go.mod h1:bYbS7u+uhTI+cxHQIpzvr5hxX0hV7urWtY+38ZtjMgk= +github.com/onsi/gomega v1.38.3 h1:eTX+W6dobAYfFeGC2PV6RwXRu/MyT+cQguijutvkpSM= +github.com/onsi/gomega v1.38.3/go.mod h1:ZCU1pkQcXDO5Sl9/VVEGlDyp+zm0m1cmeG5TOzLgdh4= +github.com/open-policy-agent/opa v1.13.2 h1:c72l7DhxP4g8DEUBOdaU9QBKyA24dZxCcIuZNRZ0yP4= +github.com/open-policy-agent/opa v1.13.2/go.mod h1:M3Asy9yp1YTusUU5VQuENDe92GLmamIuceqjw+C8PHY= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= -github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -316,15 +348,17 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= -github.com/prometheus-community/prom-label-proxy v0.12.0 h1:92FSFQDV0cywBJfhBvm1Ft5ahksyRW72CnnEthD1VyI= -github.com/prometheus-community/prom-label-proxy v0.12.0/go.mod h1:AUSVXf4P3U97Fts7xUAyJmhSGAbrnXErG25WMPD4dD4= -github.com/prometheus/alertmanager v0.28.1 h1:BK5pCoAtaKg01BYRUJhEDV1tqJMEtYBGzPw8QdvnnvA= -github.com/prometheus/alertmanager v0.28.1/go.mod h1:0StpPUDDHi1VXeM7p2yYfeZgLVi/PPlt39vo9LQUHxM= +github.com/prometheus-community/prom-label-proxy v0.12.1 h1:vJ6tGz4NMge140Ua3T/zh3HO0CA3bmnCsfkWK/cujG0= +github.com/prometheus-community/prom-label-proxy v0.12.1/go.mod h1:/tZNtOMcbPbE1VFcY8b48mPqT1bb2jVpXx2WdjjM8TY= +github.com/prometheus/alertmanager v0.31.1 h1:eAmIC42lzbWslHkMt693T36qdxfyZULswiHr681YS3Q= +github.com/prometheus/alertmanager v0.31.1/go.mod h1:zWPQwhbLt2ybee8rL921UONeQ59Oncash+m/hGP17tU= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.23.0 h1:ust4zpdl9r4trLY/gSjlm07PuiBq2ynaXXlptpfy8Uc= -github.com/prometheus/client_golang v1.23.0/go.mod h1:i/o0R9ByOnHX0McrTMTyhYvKE4haaf2mW08I+jGAjEE= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_golang/exp v0.0.0-20251212205219-7ba246a648ca h1:BOxmsLoL2ymn8lXJtorca7N/m+2vDQUDoEtPjf0iAxA= +github.com/prometheus/client_golang/exp v0.0.0-20251212205219-7ba246a648ca/go.mod h1:gndBHh3ZdjBozGcGrjUYjN3UJLRS3l2drALtu4lUt+k= 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= @@ -333,50 +367,60 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE= -github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= +github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= +github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= +github.com/prometheus/otlptranslator v1.0.0 h1:s0LJW/iN9dkIH+EnhiD3BlkkP5QVIUVEoIwkU+A6qos= +github.com/prometheus/otlptranslator v1.0.0/go.mod h1:vRYWnXvI6aWGpsdY/mOT/cbeVRBlPWtBNDb7kGR3uKM= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= -github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/prometheus/prometheus v0.305.0 h1:UO/LsM32/E9yBDtvQj8tN+WwhbyWKR10lO35vmFLx0U= -github.com/prometheus/prometheus v0.305.0/go.mod h1:JG+jKIDUJ9Bn97anZiCjwCxRyAx+lpcEQ0QnZlUlbwY= -github.com/prometheus/sigv4 v0.2.0 h1:qDFKnHYFswJxdzGeRP63c4HlH3Vbn1Yf/Ao2zabtVXk= -github.com/prometheus/sigv4 v0.2.0/go.mod h1:D04rqmAaPPEUkjRQxGqjoxdyJuyCh6E0M18fZr0zBiE= -github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= -github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/redis/rueidis v1.0.45 h1:j7hfcqfLLIqgTK3IkxBhXdeJcP34t3XLXvorDLqXfgM= -github.com/redis/rueidis v1.0.45/go.mod h1:by+34b0cFXndxtYmPAHpoTHO5NkosDlBvhexoTURIxM= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0= +github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw= +github.com/prometheus/prometheus v0.309.1 h1:jutK6eCYDpWdPTUbVbkcQsNCMO9CCkSwjQRMLds4jSo= +github.com/prometheus/prometheus v0.309.1/go.mod h1:d+dOGiVhuNDa4MaFXHVdnUBy/CzqlcNTooR8oM1wdTU= +github.com/prometheus/sigv4 v0.4.0 h1:s8oiq+S4ORkpjftnBvzObLrz5Hw49YwEhumNGBdfg4M= +github.com/prometheus/sigv4 v0.4.0/go.mod h1:D6dQeKEsDyUWzoNGjby5HgXshiOAbsz7vuApHTCmOxA= +github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 h1:bsUq1dX0N8AOIL7EB/X911+m4EHsnWEHeJ0c+3TTBrg= +github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/redis/rueidis v1.0.72 h1:rc1ZUha266B7PYAeZp0OafXFcGz69WKy0aHtbkZzrJg= +github.com/redis/rueidis v1.0.72/go.mod h1:lfdcZzJ1oKGKL37vh9fO3ymwt+0TdjkkUCJxbgpmcgQ= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/rs/xid v1.6.0 h1:fV591PaemRlL6JfRxGDEPl69wICngIQ3shQtzfy2gxU= github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= -github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0= +github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= +github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw= +github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= 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.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= -github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= +github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0= 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/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= 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.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tchap/go-patricia/v2 v2.3.2 h1:xTHFutuitO2zqKAQ5rCROYgUb7Or/+IC3fts9/Yc7nM= -github.com/tchap/go-patricia/v2 v2.3.2/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k= -github.com/vektah/gqlparser/v2 v2.5.28 h1:bIulcl3LF69ba6EiZVGD88y4MkM+Jxrf3P2MX8xLRkY= -github.com/vektah/gqlparser/v2 v2.5.28/go.mod h1:D1/VCZtV3LPnQrcPBeR/q5jkSQIPti0uYCP/RI0gIeo= +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.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/tchap/go-patricia/v2 v2.3.3 h1:xfNEsODumaEcCcY3gI0hYPZ/PcpVv5ju6RMAhgwZDDc= +github.com/tchap/go-patricia/v2 v2.3.3/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k= +github.com/valyala/fastjson v1.6.7 h1:ZE4tRy0CIkh+qDc5McjatheGX2czdn8slQjomexVpBM= +github.com/valyala/fastjson v1.6.7/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= +github.com/vektah/gqlparser/v2 v2.5.31 h1:YhWGA1mfTjID7qJhd1+Vxhpk5HTgydrGU9IgkWBTJ7k= +github.com/vektah/gqlparser/v2 v2.5.31/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= @@ -387,32 +431,36 @@ github.com/yashtewari/glob-intersection v0.2.0 h1:8iuHdN88yYuCzCdjt0gDe+6bAhUwBe github.com/yashtewari/glob-intersection v0.2.0/go.mod h1:LK7pIC3piUjovexikBbJ26Yml7g8xa5bsjfx2v1fwok= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= -go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= -go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= -go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= -go.opentelemetry.io/contrib/propagators/jaeger v1.31.0 h1:k9P5RQEWIKUP6N18/ouSvPD/uTjc7s+8WPnuVK6lWOI= -go.opentelemetry.io/contrib/propagators/jaeger v1.31.0/go.mod h1:OpgiBRssaVKOTM5lSKkOBIGQh/ixvfZRmxQXARK/kGQ= -go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= -go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 h1:dNzwXjZKpMpE2JhmO+9HsPl42NIXFIFSUSSs0fiqra0= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0/go.mod h1:90PoxvaEB5n6AOdZvi+yWJQoE95U8Dhhw2bSyRqnTD0= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0 h1:JgtbA0xkWHnTmYk7YusopJFX6uleBmAuZ8n05NEh8nQ= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0/go.mod h1:179AK5aar5R3eS9FucPy6rggvU0g52cvKId8pv4+v0c= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0 h1:nRVXXvf78e00EwY6Wp0YII8ww2JVWshZ20HfTlE11AM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0/go.mod h1:r49hO7CgrxY9Voaj3Xe8pANWtr0Oq916d0XAmOoCZAQ= -go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= -go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= -go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= -go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= -go.opentelemetry.io/otel/sdk/metric v1.36.0 h1:r0ntwwGosWGaa0CrSt8cuNuTcccMXERFwHX4dThiPis= -go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4= -go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= -go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= -go.opentelemetry.io/proto/otlp v1.6.0 h1:jQjP+AQyTf+Fe7OKj/MfkDrmK4MNVtw2NpXsf9fefDI= -go.opentelemetry.io/proto/otlp v1.6.0/go.mod h1:cicgGehlFuNdgZkcALOCh3VE6K/u2tAjzlRhDwmVpZc= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= +go.mongodb.org/mongo-driver v1.17.6 h1:87JUG1wZfWsr6rIz3ZmpH90rL5tea7O3IHuSwHUpsss= +go.mongodb.org/mongo-driver v1.17.6/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 h1:7iP2uCb7sGddAr30RRS6xjKy7AZ2JtTOPA3oolgVSw8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0/go.mod h1:c7hN3ddxs/z6q9xwvfLPk+UHlWRQyaeR1LdgfL/66l0= +go.opentelemetry.io/contrib/propagators/jaeger v1.40.0 h1:aXl9uobjJs5vquMLt9ZkI/3zIuz8XQ3TqOKSWx0/xdU= +go.opentelemetry.io/contrib/propagators/jaeger v1.40.0/go.mod h1:ioMePqe6k6c/ovXSkmkMr1mbN5qRBGJxNTVop7/2XO0= +go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms= +go.opentelemetry.io/otel v1.40.0/go.mod h1:IMb+uXZUKkMXdPddhwAHm6UfOwJyh4ct1ybIlV14J0g= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0 h1:in9O8ESIOlwJAEGTkkf34DesGRAc/Pn8qJ7k3r/42LM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0/go.mod h1:Rp0EXBm5tfnv0WL+ARyO/PHBEaEAT8UUHQ6AGJcSq6c= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40= +go.opentelemetry.io/otel/metric v1.40.0 h1:rcZe317KPftE2rstWIBitCdVp89A2HqjkxR3c11+p9g= +go.opentelemetry.io/otel/metric v1.40.0/go.mod h1:ib/crwQH7N3r5kfiBZQbwrTge743UDc7DTFVZrrXnqc= +go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= +go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= +go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= +go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZYblVjw= +go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA= +go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A= +go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= @@ -423,23 +471,27 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= 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-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= -golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= +golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= +golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a h1:Y+7uR/b1Mw2iSXZ3G//1haIiSElDQZ8KWh0h+sZPG90= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a/go.mod h1:rT6SFzZ7oxADUDx58pcaKFTcZ+inxAa9fTrYx/uVYwg= 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-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 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.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= -golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= +golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= 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-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -450,19 +502,19 @@ 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-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= -golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= +golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= +golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= +golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= 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-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-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= -golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= 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-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -472,17 +524,16 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= -golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY= +golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= -golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= -golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= -golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= 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= @@ -492,32 +543,34 @@ golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= -golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= +golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc= +golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg= 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= -google.golang.org/api v0.238.0 h1:+EldkglWIg/pWjkq97sd+XxH7PxakNYoe/rkSTbnvOs= -google.golang.org/api v0.238.0/go.mod h1:cOVEm2TpdAGHL2z+UwyS+kmlGr3bVWQQ6sYEqkKje50= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/api v0.257.0 h1:8Y0lzvHlZps53PEaw+G29SsQIkuKrumGWs9puiexNAA= +google.golang.org/api v0.257.0/go.mod h1:4eJrr+vbVaZSqs7vovFd1Jb/A6ml6iw2e6FBYf3GAO4= 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/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 h1:oWVWY3NzT7KJppx2UKhKmzPq4SRe0LdCijVRwvGeikY= -google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822/go.mod h1:h3c4v36UTKzUiuaOKQ6gr3S+0hovBtUrXzTG/i3+XEc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 h1:merA0rdPeUV3YIIfHHcH4qBkiQAc1nfCKSI7lB4cV2M= +google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409/go.mod h1:fl8J1IvUjCilwZzQowmw2b7HQB2eAuYBabMXzWurF+I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 h1:H86B94AW+VfJWDqFeEbBPhEtHzJwJfTbgE2lZa54ZAQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= -google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= -google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= -google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY= +google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= 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= @@ -528,6 +581,8 @@ gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSP gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= 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.67.1 h1:tVBILHy0R6e4wkYOn3XmiITt/hEVH4TFMYvAX2Ytz6k= +gopkg.in/ini.v1 v1.67.1/go.mod h1:x/cyOwCgZqOkJoDIJ3c1KNHMo10+nLGAhh+kn3Zizss= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -543,27 +598,29 @@ gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls= -k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k= -k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U= -k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/apiserver v0.32.2 h1:WzyxAu4mvLkQxwD9hGa4ZfExo3yZZaYzoYvvVDlM6vw= -k8s.io/apiserver v0.32.2/go.mod h1:PEwREHiHNU2oFdte7BjzA1ZyjWjuckORLIK/wLV5goM= -k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU= -k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY= -k8s.io/component-base v0.32.2 h1:1aUL5Vdmu7qNo4ZsE+569PV5zFatM9hl+lb3dEea2zU= -k8s.io/component-base v0.32.2/go.mod h1:PXJ61Vx9Lg+P5mS8TLd7bCIr+eMJRQTyXe8KvkrvJq0= +k8s.io/api v0.34.4 h1:Z5hsoQcZ2yBjelb9j5JKzCVo9qv9XLkVm5llnqS4h+0= +k8s.io/api v0.34.4/go.mod h1:6SaGYuGPkMqqCgg8rPG/OQoCrhgSEV+wWn9v21fDP3o= +k8s.io/apimachinery v0.34.4 h1:C5SiSzLEMyWIk53sSbnk0WlOOyqv/MFnWvuc/d6M+xc= +k8s.io/apimachinery v0.34.4/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= +k8s.io/apiserver v0.34.4 h1:QmMakuCjlFBJpsXKIUom8OUE7+PhZk7hyNiLqlyDH58= +k8s.io/apiserver v0.34.4/go.mod h1:4dM2Pfd+VQQA/4pLVPorZJbIadaTLcvgQn2GYYcA6Ic= +k8s.io/client-go v0.34.4 h1:IXhvzFdm0e897kXtLbeyMpAGzontcShJ/gi/XCCsOLc= +k8s.io/client-go v0.34.4/go.mod h1:tXIVJTQabT5QRGlFdxZQFxrIhcGUPpKL5DAc4gSWTE8= +k8s.io/component-base v0.34.4 h1:jP4XqR48YelfXIlRpOHQgms5GebU23zSE6xcvTwpXDE= +k8s.io/component-base v0.34.4/go.mod h1:uujRfLNOwNiFWz47eBjNZEj/Swn2cdhqI7lW2MeFdrU= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 h1:CPT0ExVicCzcpeN4baWEV2ko2Z/AsiZgEdwgcfwLgMo= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/logql/v2/ast.go b/logql/v2/ast.go index f39edec68..d6fc1f151 100644 --- a/logql/v2/ast.go +++ b/logql/v2/ast.go @@ -340,7 +340,7 @@ func (l *LogFormatExpr) String() string { i int ) - sb.WriteString(fmt.Sprintf("| %s ", ParserLabelFormat)) + fmt.Fprintf(&sb, "| %s ", ParserLabelFormat) keys := make([]string, 0, len(l.kv)) for key := range l.kv { @@ -356,7 +356,7 @@ func (l *LogFormatExpr) String() string { } if l.operation != "" { - sb.WriteString(fmt.Sprintf("%s(", l.operation)) + fmt.Fprintf(&sb, "%s(", l.operation) } lmv := l.kv[key] @@ -414,7 +414,7 @@ func (l *LogParserExpr) String() string { sb.WriteString(l.parser) if l.operation != "" { - sb.WriteString(fmt.Sprintf(" %s(", l.operation)) + fmt.Fprintf(&sb, " %s(", l.operation) } switch l.parser { @@ -1013,7 +1013,7 @@ type LogOffsetExpr struct { func (o *LogOffsetExpr) String() string { var sb strings.Builder - sb.WriteString(fmt.Sprintf(" %s %s", "offset", o.Offset.String())) + fmt.Fprintf(&sb, " %s %s", "offset", o.Offset.String()) return sb.String() } diff --git a/main.go b/main.go index 66a5d86e3..94c08333b 100644 --- a/main.go +++ b/main.go @@ -54,6 +54,7 @@ import ( tracesv1 "github.com/observatorium/api/api/traces/v1" "github.com/observatorium/api/authentication" "github.com/observatorium/api/authorization" + "github.com/observatorium/api/client" "github.com/observatorium/api/httperr" "github.com/observatorium/api/logger" "github.com/observatorium/api/opa" @@ -680,7 +681,6 @@ func main() { metricslegacy.WithRegistry(reg), metricslegacy.WithHandlerInstrumenter(instrumenter), metricslegacy.WithGlobalMiddleware(metricsMiddlewares...), - metricslegacy.WithSpanRoutePrefix("/api/v1/{tenant}"), metricslegacy.WithQueryMiddleware(authorization.WithAuthorizers(authorizers, rbac.Read, "metrics")), metricslegacy.WithQueryMiddleware(metricsv1.WithEnforceTenancyOnQuery(cfg.metrics.tenantLabel, queryParamName)), metricslegacy.WithUIMiddleware(authorization.WithAuthorizers(authorizers, rbac.Read, "metrics")), @@ -738,7 +738,6 @@ func main() { metricsv1.WithLogger(logger), metricsv1.WithRegistry(reg), metricsv1.WithHandlerInstrumenter(instrumenter), - metricsv1.WithSpanRoutePrefix("/api/metrics/v1/{tenant}"), metricsv1.WithTenantLabel(cfg.metrics.tenantLabel), metricsv1.WithWriteMiddleware(writePathRedirectProtection), metricsv1.WithGlobalMiddleware(metricsMiddlewares...), @@ -801,7 +800,6 @@ func main() { logsv1.Logger(logger), logsv1.WithRegistry(reg), logsv1.WithHandlerInstrumenter(instrumenter), - logsv1.WithSpanRoutePrefix("/api/logs/v1/{tenant}"), logsv1.WithWriteMiddleware(writePathRedirectProtection), logsv1.WithGlobalMiddleware(authentication.WithTenantMiddlewares(pm.Middlewares)), logsv1.WithGlobalMiddleware(authentication.WithTenantHeader(cfg.logs.tenantHeader, tenantIDs)), @@ -918,6 +916,9 @@ func main() { }) } + r.Get("/openapi.yaml", func(w http.ResponseWriter, _ *http.Request) { + _, _ = w.Write(client.OpenAPISpecification) + }) r.Get("/", server.PathsHandlerFunc(logger, r.Routes())) s := http.Server{ @@ -1470,12 +1471,12 @@ func parseFlags() (config, error) { } } - if cfg.traces.enabled && cfg.server.grpcListen == "" { - return cfg, fmt.Errorf("-traces.write.endpoint is set to %q but -grpc.listen is not set", cfg.traces.writeOTLPGRPCEndpoint) + if cfg.traces.writeOTLPGRPCEndpoint != "" && cfg.server.grpcListen == "" { + return cfg, fmt.Errorf("--traces.write.endpoint is set to %q but --grpc.listen is not set", cfg.traces.writeOTLPGRPCEndpoint) } - if !cfg.traces.enabled && cfg.server.grpcListen != "" { - return cfg, fmt.Errorf("-traces.write.endpoint is not set but -grpc.listen is set to %q", cfg.server.grpcListen) + if cfg.traces.writeOTLPGRPCEndpoint == "" && cfg.server.grpcListen != "" { + return cfg, fmt.Errorf("--traces.write.endpoint is not set but --grpc.listen is set to %q", cfg.server.grpcListen) } if rawTLSCipherSuites != "" { @@ -1574,7 +1575,7 @@ func newGRPCServer(cfg *config, tenantHeader string, tenantIDs map[string]string tracesv1.TraceRoute: connOtel, } - director := func(ctx context.Context, fullMethodName string) (context.Context, *grpc.ClientConn, error) { + director := func(ctx context.Context, fullMethodName string) (context.Context, grpc.ClientConnInterface, error) { md, _ := metadata.FromIncomingContext(ctx) outCtx := metadata.NewOutgoingContext(ctx, md.Copy()) diff --git a/test/e2e/openapi_test.go b/test/e2e/openapi_test.go new file mode 100644 index 000000000..6c41b70f6 --- /dev/null +++ b/test/e2e/openapi_test.go @@ -0,0 +1,56 @@ +//go:build integration + +package e2e + +import ( + "io" + "net/http" + "testing" + + "github.com/efficientgo/core/testutil" + "github.com/efficientgo/e2e" + "github.com/ghodss/yaml" +) + +func TestOpenAPIEndpoint(t *testing.T) { + t.Parallel() + + e, err := e2e.New(e2e.WithName(envMetricsName)) + testutil.Ok(t, err) + t.Cleanup(e.Close) + + prepareConfigsAndCerts(t, metrics, e) + _, _, _ = startBaseServices(t, e, metrics) + readEndpoint, writeEndpoint, _ := startServicesForMetrics(t, e) + + api, err := newObservatoriumAPIService( + e, + withMetricsEndpoints("http://"+readEndpoint, "http://"+writeEndpoint), + ) + testutil.Ok(t, err) + testutil.Ok(t, e2e.StartAndWaitReady(api)) + + t.Run("get OpenAPI", func(t *testing.T) { + r, err := http.NewRequest(http.MethodGet, "https://"+api.Endpoint("https")+"/openapi.yaml", nil) + testutil.Ok(t, err) + + c := &http.Client{ + Transport: &http.Transport{ + TLSClientConfig: getTLSClientConfig(t, e), + }, + } + resp, err := c.Do(r) + testutil.Ok(t, err) + + yamlSpec, err := io.ReadAll(resp.Body) + testutil.Ok(t, err) + + var spec map[string]interface{} + err = yaml.Unmarshal(yamlSpec, &spec) + testutil.Ok(t, err) + _, found := spec["openapi"] + testutil.Assert(t, found) + + defer resp.Body.Close() + }) +} diff --git a/test/load.sh b/test/load.sh index 4f24b5f01..616c10e4a 100755 --- a/test/load.sh +++ b/test/load.sh @@ -9,8 +9,6 @@ PROMETHEUS=${PROMETHEUS:-prometheus} MOCKPROVIDER=${MOCKPROVIDER:-mockprovider} PROMREMOTEBENCH=${PROMREMOTEBENCH:-promremotebench} -trap 'kill $(jobs -p); exit 0' EXIT - generate_report() { printf "\tGenerating report...\n" @@ -67,9 +65,8 @@ plot() { done } -# --- - -( +run_observatorium() { + ( # In order to collect process metrics, it needs to run in container. os x doesn't support it. platform="$(uname -s | tr '[:upper:]' '[:lower:]')" case $platform in @@ -91,19 +88,24 @@ plot() { echo "unknown platform: $platform" ;; esac -) & + ) & +} -( +run_mock() { + ( $MOCKPROVIDER \ --listen=0.0.0.0:8888 -) & + ) & +} -( +run_prometheus() { + ( $PROMETHEUS \ --log.level=warn \ --config.file=./test/config/prometheus.yml \ --storage.tsdb.path="$(mktemp -d)" -) & + ) & +} usage="$(basename "$0") [-h] [-r n] [-c n] [-m n] [-q n] [-o csv|gnuplot] -- program to test synthetic load on observatorium api and report results. @@ -160,6 +162,12 @@ while getopts "h?o:r:c:m:q:" opt; do done shift $((OPTIND - 1)) +trap 'kill $(jobs -p); exit 0' EXIT + +run_observatorium +run_mock +run_prometheus + hosts=$((number_of_clusters * number_of_machines)) printf "\tStarting with %s clusters, will run for %s.\n", "$hosts", "$run_for" diff --git a/tls/ca_watcher.go b/tls/ca_watcher.go index 0b3ce1698..115dfaabe 100644 --- a/tls/ca_watcher.go +++ b/tls/ca_watcher.go @@ -78,10 +78,13 @@ func (w *caCertificateWatcher) loadCA() error { } w.mutex.Lock() defer w.mutex.Unlock() - if !w.certPool.AppendCertsFromPEM(caPEM) { + newPool := w.certPool.Clone() + if !newPool.AppendCertsFromPEM(caPEM) { level.Error(w.logger).Log("failed to parse CA %s", w.CAPath) return err } + w.certPool = newPool + w.fileHashContent = hash } return nil } diff --git a/tracing/chi_route_pattern.go b/tracing/chi_route_pattern.go new file mode 100644 index 000000000..d3a9e309c --- /dev/null +++ b/tracing/chi_route_pattern.go @@ -0,0 +1,31 @@ +package tracing + +import ( + "net/http" + + "github.com/go-chi/chi/v5" + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/trace" +) + +// WithChiRoutePattern annotates spans and otelhttp metrics using Chi's matched route pattern. +func WithChiRoutePattern(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + next.ServeHTTP(w, r) + + pattern := chi.RouteContext(r.Context()).RoutePattern() + if pattern == "" { + return + } + + // Align with net/http convention used by otelhttp route extraction. + r.Pattern = r.Method + " " + pattern + + routeAttr := attribute.String("http.route", pattern) + trace.SpanFromContext(r.Context()).SetAttributes(routeAttr) + + labeler, _ := otelhttp.LabelerFromContext(r.Context()) + labeler.Add(routeAttr) + }) +} diff --git a/tracing/chi_route_pattern_test.go b/tracing/chi_route_pattern_test.go new file mode 100644 index 000000000..e38887655 --- /dev/null +++ b/tracing/chi_route_pattern_test.go @@ -0,0 +1,57 @@ +package tracing + +import ( + "context" + "net/http" + "net/http/httptest" + "slices" + "testing" + + "github.com/go-chi/chi/v5" + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" + "go.opentelemetry.io/otel/attribute" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/sdk/trace/tracetest" +) + +func TestWithChiRoutePattern(t *testing.T) { + recorder := tracetest.NewSpanRecorder() + tp := sdktrace.NewTracerProvider(sdktrace.WithSpanProcessor(recorder)) + t.Cleanup(func() { + _ = tp.Shutdown(context.Background()) + }) + + r := chi.NewRouter() + r.Use(WithChiRoutePattern) + r.Get("/api/test/{tenant}", func(w http.ResponseWriter, _ *http.Request) { + w.WriteHeader(http.StatusNoContent) + }) + + ctx, span := tp.Tracer("test").Start(context.Background(), "request") + labeler := &otelhttp.Labeler{} + ctx = otelhttp.ContextWithLabeler(ctx, labeler) + + req := httptest.NewRequest(http.MethodGet, "/api/test/acme", nil).WithContext(ctx) + w := httptest.NewRecorder() + r.ServeHTTP(w, req) + span.End() + + if w.Code != http.StatusNoContent { + t.Fatalf("unexpected status code: got %d, want %d", w.Code, http.StatusNoContent) + } + + attr := attribute.String("http.route", "/api/test/{tenant}") + + if !slices.Contains(labeler.Get(), attr) { + t.Fatalf("expected labeler to contain %q route attribute", attr.Value.AsString()) + } + + ended := recorder.Ended() + if len(ended) != 1 { + t.Fatalf("unexpected ended spans count: got %d, want 1", len(ended)) + } + + if !slices.Contains(ended[0].Attributes(), attr) { + t.Fatalf("expected span to contain %q route attribute", attr.Value.AsString()) + } +}